2009-08-02 83 views
2

我想在eclipse插件中以编程方式打开“Ctrl-Shift-T”对话框(查找类型)。 我试过FilteredItemsSelectionDialog和ResourceListSelectionDialog,但是如何获取工作区中的所有类型?如何在eclipse中以编程方式打开查找类型对话框

谢谢, 伊多。

+0

你确实想打开对话框还是直接检索所有结果? – 2009-08-02 12:28:54

+0

我想打开对话框,让用户选择他想要的类型,并且在他选择后,我想以完全限定名称的字符串形式得到结果。看起来OpenTypeSelectionDialog完成了这项工作,但不鼓励。 – Ido 2009-08-02 14:13:58

回答

3

请看org.eclipse.jdt.internal.ui.actions.OpenTypeAction了解Eclipse如何处理它。关键部分是这样的:

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 parent= JavaPlugin.getActiveWorkbenchShell(); 

OpenTypeSelectionDialog是在内部包,所以你会得到一个“望而却步访问”的警告。只要你意识到我推荐使用这种类型的风险。 “沮丧”是一个警告,不是一个错误,实际上Eclipse会引入一个OpenTypeSelectionDialog,而不是改变当前的签名。 Eclipse平台和主要产品尽可能保持兼容性以鼓励创新(请参阅Wiki中的policy)。 一般来说,如果您不愿意使用帮助程序,则可以通过使用帮助程序来屏蔽代码的其余部分,以避免API更改。这意味着如果引用类型发生更改,则必须更改单个点。

另一种方法是让你自己实现对话框及其父类,但父类FilteredTypesSelectionDialog有超过20个内部引用,这会使问题变得更糟。

相关问题