我在项目浏览器中创建了菜单项,用户可以右键单击任何java项目,然后从上下文菜单中选择“弹出菜单”。问题是,当我点击它时,它给我一个信息对话框,显示“所选操作当前不可用”它应该实际显示hello world对话框,但事实并非如此。任何人都可以在我的代码中看到问题:
这适用于plugin.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");
}.....
答案 0 :(得分:0)
您可能需要指定
adaptable="true"
作为objectContribution
的一部分:
<objectContribution
id ="org.eclipse.ui.examples.project"
objectClass="org.eclipse.core.resources.IProject"
adaptable="true">
这是因为大多数用户界面对象不直接实现IProject
等工作空间对象。相反,他们提供了一个适配器&#39;要转换为对象,您必须指定&#39; adaptable&#39;使菜单代码查找适配器的属性。
注意:org.eclipse.ui.popupMenus
现已弃用。