Eclipse插件会创建信息对话框错误

时间:2014-11-20 06:18:46

标签: java eclipse eclipse-plugin

我在项目浏览器中创建了菜单项,用户可以右键单击任何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");
}.....

1 个答案:

答案 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现已弃用。