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

谢谢你, IDO。

有帮助吗?

解决方案

查看 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位于内部包中,因此您将获得<!> quot; Discouraged access <!> quot;警告。只要您了解我建议使用此类型的风险。 <!> QUOT;泄气QUOT <!>;警告不是错误,实际上Eclipse会引入OpenTypeSelectionDialog 2 ,而不是更改当前的签名。 Eclipse平台和主要产品尽可能地保持兼容性以鼓励创新(参见策略。 通常,在不鼓励访问的情况下,通过使用帮助程序来保护代码的其余部分免受API更改是有意义的。这意味着如果引用的类型发生变化,您必须更改一个点。

替代方法是让您自己实现对话框及其父对象,但父对象FilteredTypesSelectionDialog有超过20个内部引用,因此会使问题变得更糟。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top