Eclipse 插件 - 使菜单项仅在选择特定元素时可见
Eclipse Plugin - Make a menu Item visible only when a particular element is selected
我想要的是在Eclipse的Package Explorer和Project Explorer中添加一个菜单项,只有当我右键单击一个项目Element时才可见。
到目前为止我所做的是 - 向 Package 和 Project Explorer 添加了一个菜单项,但是从任何地方右键单击都可以看到它们。
我想要的是仅当从 project/package 资源管理器中右键单击项目元素时才显示的命令。
如果有人右键单击任何项目中的包或任何文件夹,我不希望菜单项可见。
即
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
扩展点中使用 command
的 visibleWhen
元素来控制可见性。
对于项目,您需要检查当前选择是否适配IProject
界面:
<visibleWhen
checkEnabled="false">
<iterate>
<adapt
type="org.eclipse.core.resources.IProject">
</adapt>
</iterate>
</visibleWhen>
循环遍历当前选择中的对象。
被选中的对象将是一些属于当前视图的用户界面对象,通常这些对象不直接实现IProject
接口。相反,可以使用 Eclipse 适配器管理器将对象 'adapt' 连接到接口(请参阅 IAdapterManager
、IAdapterFactory
、IAdaptable
接口)。 adapt
元素正在测试是否可以调整选择对象。
checkEnabled 指示在使弹出菜单可见之前是否检查处理程序的enableWhen 约束。
如果 checkEnabled 为真,则 eclipse 会检查相应的 Handler 是否已启用,如果满足条件,则弹出菜单可见,否则不可见。
如果 checkEnabled 为 false,则弹出菜单菜单将在不检查处理程序的 enableWhen 的情况下可见 criteria.However visibleWhen 可以有自己的表达式来启用或禁用菜单。
我想要的是在Eclipse的Package Explorer和Project Explorer中添加一个菜单项,只有当我右键单击一个项目Element时才可见。
到目前为止我所做的是 - 向 Package 和 Project Explorer 添加了一个菜单项,但是从任何地方右键单击都可以看到它们。
我想要的是仅当从 project/package 资源管理器中右键单击项目元素时才显示的命令。
如果有人右键单击任何项目中的包或任何文件夹,我不希望菜单项可见。
即
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
扩展点中使用 command
的 visibleWhen
元素来控制可见性。
对于项目,您需要检查当前选择是否适配IProject
界面:
<visibleWhen
checkEnabled="false">
<iterate>
<adapt
type="org.eclipse.core.resources.IProject">
</adapt>
</iterate>
</visibleWhen>
循环遍历当前选择中的对象。
被选中的对象将是一些属于当前视图的用户界面对象,通常这些对象不直接实现IProject
接口。相反,可以使用 Eclipse 适配器管理器将对象 'adapt' 连接到接口(请参阅 IAdapterManager
、IAdapterFactory
、IAdaptable
接口)。 adapt
元素正在测试是否可以调整选择对象。
checkEnabled 指示在使弹出菜单可见之前是否检查处理程序的enableWhen 约束。 如果 checkEnabled 为真,则 eclipse 会检查相应的 Handler 是否已启用,如果满足条件,则弹出菜单可见,否则不可见。 如果 checkEnabled 为 false,则弹出菜单菜单将在不检查处理程序的 enableWhen 的情况下可见 criteria.However visibleWhen 可以有自己的表达式来启用或禁用菜单。