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:
parent
67c79cacd5
commit
45be116add
8 changed files with 86 additions and 3 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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}'
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Add table
Reference in a new issue