【问题标题】:how to open the find type dialog programmatically in eclipse如何在eclipse中以编程方式打开查找类型对话框
【发布时间】:2010-11-16 04:04:53
【问题描述】:

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

谢谢你, 伊多。

【问题讨论】:

  • 您真的要打开对话框还是直接检索所有结果?
  • 我想打开对话框,让用户选择他想要的类型,然后在他选择后,我想将结果作为具有完全限定名称的字符串。似乎 OpenTypeSelectionDialog 可以完成这项工作,但不鼓励这样做。

标签: java eclipse eclipse-plugin dialog eclipse-rcp


【解决方案1】:

查看 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 会引入 OpenTypeSelectionDialog2 而不是更改当前的签名。 Eclipse 平台和主要产品尽量保持兼容性以鼓励创新(请参阅 wiki 中的policy)。 一般来说,不鼓励访问对您来说是有意义的,您可以使用帮助程序来保护其余代码免受 API 更改的影响。这意味着如果引用的类型发生更改,您必须更改一个点。

另一种方法是您自己实现对话框及其父级,但父级 FilteredTypesSelectionDialog 有 20 多个内部引用,因此会使问题变得更糟。

【讨论】:

  • OpenTypeSelectionDialog 似乎是“不鼓励访问”。这是什么意思?
  • 每当您引用不属于 API 的包中的类型(通常是 *.internal 包)时,您都会收到不鼓励访问警告。 “不鼓励访问”是一个指标,表明您应该尽可能寻找 API 替代方案。请注意,您可能容易受到 Eclipse 更高版本中的更改的影响。更多详情请见help.eclipse.org/galileo/index.jsp
  • 您好,我在使用它时,在 jdt 插件中添加了一个依赖项。我正在使用伽利略进行开发。当我将它安装到使用 Ganymede 的客户端时,它不起作用。我应该如何配置它来支持它?
  • 非常感谢您的评论,home4film。但是,您可能要粘贴的链接是:help.eclipse.org/galileo/index.jsp?topic=/…(我知道,页面上的框架集总是使链接复制变得困难;)
猜你喜欢
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多