我想要的是将一个菜单项添加到Package Explorer和Eclipse的Project Explorer中,只有在我右键单击项目元素时才能看到它。
到目前为止我所做的是 - 在Package和Project Explorer中添加了一个菜单项,但是从任何地方右键都可以看到它们。
我想要的是仅在从项目/包浏览器右键单击项目元素时才出现的命令。
如果有人右键点击了包或任何项目中的任何文件夹,我都不希望菜单项可见。
即
Right Click on Project -> Menu Item Visible
Right Click on any other resource in the project -> Menu Item not present
这可以通过添加属性来实现吗?我很困惑如何使用它。我是否需要为Package and Project Explorers添加一个点击监听器?
我正在为Eclipse Indigo编写这个插件。
答案 0 :(得分:1)
您使用visibleWhen
扩展点中command
的{{1}}元素来控制可见性。
对于项目,您需要检查当前选择是否适应org.eclipse.ui.menus
界面:
IProject
迭代当前选择中的对象。
所选对象将是属于当前视图的一些用户界面对象,通常这些对象不直接实现<visibleWhen
checkEnabled="false">
<iterate>
<adapt
type="org.eclipse.core.resources.IProject">
</adapt>
</iterate>
</visibleWhen>
界面。相反,可以使用Eclipse适配器管理器将对象“调整”到接口(请参阅IProject
,IAdapterManager
,IAdapterFactory
接口)。 IAdaptable
元素正在测试是否可以调整选择对象。
答案 1 :(得分:0)
checkEnabled指示在使弹出菜单可见之前是否检查处理程序的enableWhen约束。 如果checkEnabled为true,则当条件满足时,eclipse会检查相应的Handler的启用,如果满足条件,则弹出菜单可见,否则不可见。 如果checkEnabled为false,则弹出菜单菜单将可见,而无需检查处理程序的enableWhen条件。但是visibleWhen可以具有自己的表达式来启用或禁用菜单。