带有子菜单的Eclipse-Plugin。 如何处理JavaProjects和Projects?
我想编写一个Eclipse插件,它使用选定的Project执行Action。 我使用插件模板和子菜单。 我的plugin.xml看起来像这样:
这适用于除javaProjects之外的所有内容。 事实certificate,javaProjects不是Projects。 我希望在选择javaProjects或普通项目时显示此Action,而不是在选择其他项目时显示。
如果选择了javaProject或Project,如何才能使子菜单准确显示?
我没有测试它,但也许这有效:
您也可以尝试“启用”而不是“可见性”。
弹出菜单上的eclipse帮助页面
您不应该引用对象类中的内部类。 您应该使用公共接口
objectClass="org.eclipse.core.internal.resources.Project"
尝试
objectClass="org.eclipse.core.IProject"
我没有尝试过这个,但IJavaProject
应该适应IProject
,所以这应该适用于两者。
确保对象贡献的adaptable属性设置为true (默认为false ):
adaptable="true"
@iain建议以接口为目标也是不错的做法。
刚试过你的例子,菜单在Java项目中按预期显示。
始终牢记org.eclipse.core.resources.IResource的可附加性,以确保您的菜单,操作始终如一地显示和启用(无论是正在呈现的资源管理器还是实际的对象类)。
最后,请注意不推荐使用org.eclipse.ui.popupMenus扩展点。
虽然根据我使用它的经验比推荐的org.eclipse.ui.commands更快更容易,但是当删除它时(也就是说, 如果它在某些时候被删除),你最终可能很难迁移所有菜单。
干杯,