我在项目资源管理器中制作了菜单项,用户可以右键单击任何java项目,然后从上下文菜单中选择"弹出菜单"。问题是当我单击它时,它给了我一个信息对话框,上面写着"所选操作当前不可用",它实际上应该显示 hello world 对话框,但它没有。任何人都可以在我的代码中看到问题吗:
这适用于插件.xml:
<plugin>
<extension
point="org.eclipse.ui.popupMenus">
<objectContribution
id ="org.eclipse.ui.examples.project"
objectClass="org.eclipse.core.resources.IProject">
<action id="org.eclipse.ui.examples.project.action1"
label = "popup menu"
menubarPath = "additions"
class = "org.eclipse.examples.HelloWorld"
definitonId = "org.eclipse.ui.examples.project.action1"
enablesFor ="1">
</action>
</objectContribution>
这是helloworld.java文件的代码:
public class HelloWorld implements IWorkbenchWindowActionDelegate {
private IWorkbenchWindow window;
public void run(IAction action) {
MessageDialog.openInformation(
window.getShell(),
"HelloWorld",
"Hello, Eclipse world");
}.....
您可能需要
指定
adaptable="true"
作为objectContribution
的一部分:
<objectContribution
id ="org.eclipse.ui.examples.project"
objectClass="org.eclipse.core.resources.IProject"
adaptable="true">
这是因为大多数用户界面对象不直接实现工作区对象(如IProject
)。相反,它们提供了一个"适配器"来转换为对象,您必须指定"adaptable"属性以使菜单代码查找适配器。
注意:该org.eclipse.ui.popupMenus
现已弃用。