Eclipse 插件 - 使菜单项仅在选择特定元素时可见

标签 eclipse eclipse-plugin eclipse-rcp

我想要的是向 Package Explorer 和 Eclipse 的 Project Explorer 添加一个菜单项,该菜单项仅当我右键单击项目元素时才可见。

到目前为止我所做的是 - 向包和项目资源管理器添加了一个菜单项,但从任何地方右键单击它们都可见。

我想要的是仅当从项目/包资源管理器中右键单击项目元素时才显示该命令。

如果有人右键单击包或任何项目中的任何文件夹,我不希望菜单项可见。

即。

Right Click on Project -> Menu Item Visible
Right Click on any other resource in the project -> Menu Item not present

通过添加属性可以实现这一点吗?我对如何使用它感到困惑。我需要为 Package 和 Project Explorer 添加点击监听器吗?

我正在为 Eclipse Indigo 编写这个插件。

最佳答案

您可以使用 org.eclipse.ui.menus 扩展点中 commandvisibleWhen 元素来控制可见性。

对于项目,您需要检查当前选择是否适应IProject界面:

<visibleWhen
       checkEnabled="false">
   <iterate>
      <adapt
          type="org.eclipse.core.resources.IProject">
      </adapt>
   </iterate>
</visibleWhen>

它正在迭代当前选择中的对象。

所选对象将是属于当前 View 的一些用户界面对象,通常这些对象不直接实现IProject接口(interface)。相反,可以使用 Eclipse 适配器管理器使对象“适应”接口(interface)(请参阅 IAdapterManager、IAdapterFactory、IAdaptable 接口(interface)) 。 adapt 元素正在测试选择对象是否可以调整。

关于Eclipse 插件 - 使菜单项仅在选择特定元素时可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42762312/

相关文章:

eclipse - 无法切换断点 eclipse 标记 id 未找到

eclipse - 为什么我在Eclipse中收到此错误-可能是Java运行时版本不兼容吗?

java - 启动 bundle org.eclipse.jetty.osgi.boot 时出错(Eclipse 中的 OSGi 框架)

java - 从弹出窗口复制 eclipse 中的变量值的任何插件或快捷方式?

java - 如何在 Eclipse 插件中刷新表?

java - eclipse RCP : How to download delta pack from software site in the Target Definition file?

eclipse - Eclipse 中的Tomcat 将扩展后的WAR 存放在哪里?

eclipse 开普勒 "Cannot install remote marketplace locations"

java - <ClassName> 扩展非 API 类型 <SuperclassName>

java - JFace PopupDialog 中小部件的背景颜色