我想在eclipse插件中以编程方式打开“Ctrl-Shift-T”对话框(查找类型)。 我尝试了FilteredItemsSelectionDialog和ResourceListSelectionDialog,但是如何获取工作区中的所有类型?
谢谢你, IDO。
答案 0 :(得分:3)
查看 org.eclipse.jdt.internal.ui.actions.OpenTypeAction ,了解它如何处理它。关键部分是:
SelectionDialog dialog= new OpenTypeSelectionDialog(parent, true,
PlatformUI.getWorkbench().getProgressService(), null,
IJavaSearchConstants.TYPE);
dialog.setTitle(JavaUIMessages.OpenTypeAction_dialogTitle);
dialog.setMessage(JavaUIMessages.OpenTypeAction_dialogMessage);
int result= dialog.open();
其中parent是要打开对话框的复合。通常是活动工作台shell,通过以下方式获得:
Shell parent= JavaPlugin.getActiveWorkbenchShell();
OpenTypeSelectionDialog位于内部包中,因此您将收到“不鼓励访问”警告。只要您了解我建议使用此类型的风险。 “气馁”是一个警告而非错误,实际上Eclipse会引入一个OpenTypeSelectionDialog 2 ,而不是改变当前的签名。 Eclipse平台和主要产品尽可能地保持兼容性以鼓励创新(参见wiki中的policy)。 通常,在不鼓励访问的情况下,通过使用帮助程序来保护代码的其余部分免受API更改是有意义的。这意味着如果引用的类型发生变化,您必须更改一个点。
替代方法是让您自己实现对话框及其父对象,但父对象FilteredTypesSelectionDialog有超过20个内部引用,因此会使问题变得更糟。