1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-24 01:15:29 +02:00

Fix for 83868, populate search field in open type dialog.

This commit is contained in:
Markus Schorn 2007-04-17 14:59:51 +00:00
parent 67c79cacd5
commit 45be116add
8 changed files with 86 additions and 3 deletions

View file

@ -16,9 +16,12 @@ import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.PartInitException;
@ -28,12 +31,13 @@ import org.eclipse.cdt.core.browser.ITypeInfo;
import org.eclipse.cdt.core.browser.ITypeReference;
import org.eclipse.cdt.core.model.CModelException;
import org.eclipse.cdt.core.model.ITranslationUnit;
import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.internal.ui.util.EditorUtility;
public class OpenTypeAction implements IWorkbenchWindowActionDelegate {
private IWorkbenchWindow fWorkbenchWindow;
public OpenTypeAction() {
super();
}
@ -45,6 +49,7 @@ public class OpenTypeAction implements IWorkbenchWindowActionDelegate {
*/
public void run(IAction action) {
OpenTypeDialog dialog = new OpenTypeDialog(getShell());
configureDialog(dialog);
int result = dialog.open();
if (result != IDialogConstants.OK_ID)
return;
@ -67,8 +72,26 @@ public class OpenTypeAction implements IWorkbenchWindowActionDelegate {
}
}
private void configureDialog(OpenTypeDialog dialog) {
if (fWorkbenchWindow != null) {
IWorkbenchPage page= fWorkbenchWindow.getActivePage();
if (page != null) {
IWorkbenchPart part= page.getActivePart();
if (part instanceof ITextEditor) {
ISelection sel= ((ITextEditor) part).getSelectionProvider().getSelection();
if (sel instanceof ITextSelection) {
String txt= ((ITextSelection) sel).getText();
if (txt.length() > 0 && txt.length() < 80) {
dialog.setFilter(txt, true);
}
}
}
}
}
}
protected Shell getShell() {
return CUIPlugin.getActiveWorkbenchShell();
return fWorkbenchWindow.getShell();
}
/**
@ -127,6 +150,7 @@ public class OpenTypeAction implements IWorkbenchWindowActionDelegate {
* @see org.eclipse.ui.IWorkbenchWindowActionDelegate#dispose()
*/
public void dispose() {
fWorkbenchWindow= null;
}
/*
@ -135,6 +159,7 @@ public class OpenTypeAction implements IWorkbenchWindowActionDelegate {
* @see org.eclipse.ui.IWorkbenchWindowActionDelegate#init(org.eclipse.ui.IWorkbenchWindow)
*/
public void init(IWorkbenchWindow window) {
fWorkbenchWindow= window;
}
/*

View file

@ -116,7 +116,7 @@ public class OpenTypeDialog extends TypeSelectionDialog {
}
protected void handleEmptyList() {
// override super-class behaviour with no-op
update(getFilter());
}
protected Text createFilterText(Composite parent) {

View file

@ -53,6 +53,9 @@ public class CHMessages extends NLS {
public static String OpenCallHierarchyAction_tooltip;
public static String OpenElementInCallHierarchyAction_errorDlgTitle;
public static String OpenElementInCallHierarchyAction_errorNoDefinition;
public static String OpenElementInCallHierarchyAction_message;
public static String OpenElementInCallHierarchyAction_title;
public static String OpenElementInCallHierarchyAction_upperListLabel;
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, CHMessages.class);

View file

@ -45,4 +45,7 @@ OpenCallHierarchyAction_tooltip=Open Call Hierarchy
CallHierarchyUI_label=Open Call Hierarchy
CallHierarchyUI_selectMessage=Select one element from the list
OpenElementInCallHierarchyAction_errorDlgTitle=Open Element in Call Hierarchy
OpenElementInCallHierarchyAction_title=Open Element in Call Hierarchy
OpenElementInCallHierarchyAction_upperListLabel=&Matching Elements:
OpenElementInCallHierarchyAction_message=&Choose an element (? = any character, * = any string):
OpenElementInCallHierarchyAction_errorNoDefinition=Could not locate definition of element '{0}'

View file

@ -14,11 +14,15 @@ package org.eclipse.cdt.internal.ui.callhierarchy;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.cdt.core.browser.ITypeInfo;
import org.eclipse.cdt.core.browser.ITypeReference;
@ -65,6 +69,25 @@ public class OpenElementInCallHierarchyAction implements IWorkbenchWindowActionD
private void configureDialog(OpenTypeDialog dialog) {
dialog.setVisibleTypes(VISIBLE_TYPES);
dialog.setTitle(CHMessages.OpenElementInCallHierarchyAction_title);
dialog.setUpperListLabel(CHMessages.OpenElementInCallHierarchyAction_upperListLabel);
dialog.setMessage(CHMessages.OpenElementInCallHierarchyAction_message);
if (fWorkbenchWindow != null) {
IWorkbenchPage page= fWorkbenchWindow.getActivePage();
if (page != null) {
IWorkbenchPart part= page.getActivePart();
if (part instanceof ITextEditor) {
ISelection sel= ((ITextEditor) part).getSelectionProvider().getSelection();
if (sel instanceof ITextSelection) {
String txt= ((ITextSelection) sel).getText();
if (txt.length() > 0 && txt.length() < 80) {
dialog.setFilter(txt, true);
}
}
}
}
}
}
private Shell getShell() {

View file

@ -19,6 +19,9 @@ public class Messages extends NLS {
public static String OpenTypeHierarchyAction_tooltip;
public static String OpenTypeInHierarchyAction_errorNoDefinition;
public static String OpenTypeInHierarchyAction_errorTitle;
public static String OpenTypeInHierarchyAction_message;
public static String OpenTypeInHierarchyAction_title;
public static String OpenTypeInHierarchyAction_upperListLabel;
public static String THGraph_error_elementNotFound;
public static String THHierarchyModel_errorComputingHierarchy;
public static String THHierarchyModel_Job_title;

View file

@ -14,11 +14,15 @@ package org.eclipse.cdt.internal.ui.typehierarchy;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.osgi.util.NLS;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.IWorkbenchPart;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;
import org.eclipse.ui.texteditor.ITextEditor;
import org.eclipse.cdt.core.browser.ITypeInfo;
import org.eclipse.cdt.core.browser.ITypeReference;
@ -65,6 +69,25 @@ public class OpenTypeInHierarchyAction implements IWorkbenchWindowActionDelegate
private void configureDialog(OpenTypeDialog dialog) {
dialog.setVisibleTypes(VISIBLE_TYPES);
dialog.setTitle(Messages.OpenTypeInHierarchyAction_title);
dialog.setUpperListLabel(Messages.OpenTypeInHierarchyAction_upperListLabel);
dialog.setMessage(Messages.OpenTypeInHierarchyAction_message);
if (fWorkbenchWindow != null) {
IWorkbenchPage page= fWorkbenchWindow.getActivePage();
if (page != null) {
IWorkbenchPart part= page.getActivePart();
if (part instanceof ITextEditor) {
ISelection sel= ((ITextEditor) part).getSelectionProvider().getSelection();
if (sel instanceof ITextSelection) {
String txt= ((ITextSelection) sel).getText();
if (txt.length() > 0 && txt.length() < 80) {
dialog.setFilter(txt, true);
}
}
}
}
}
}
private Shell getShell() {

View file

@ -52,6 +52,9 @@ TypeHierarchyUI_SelectFromList=Select one element from the list
OpenTypeHierarchyAction_label=Open Type Hierarchy
OpenTypeHierarchyAction_tooltip=Open Type Hierarchy
OpenTypeInHierarchyAction_errorTitle=Open Type in Hierarchy
OpenTypeInHierarchyAction_title=Open Type in Hierarchy
OpenTypeInHierarchyAction_message=&Choose a type (? = any character, * = any string):
THInformationControl_regularTitle=Type Hierarchy of {0}
THInformationControl_showDefiningTypesTitle=Types defining or implementing {0}
OpenTypeInHierarchyAction_errorNoDefinition=Could not locate definition of type '{0}'
OpenTypeInHierarchyAction_upperListLabel=&Matching Types: