0

我编写了一个 Eclipse 插件,并在 Eclipse“帮助”菜单中添加了帮助选项。单击该帮助时,将出现 MessageBox。

当我通过 Eclipse 应用程序运行或调试时会出现此 MessageBox,但是当我在其他 PC 上部署此插件并单击帮助时,MessageBox 不会出现。

这是我的代码:

public class MyHelp implements IWorkbenchWindowActionDelegate {

    public void run(IAction arg0) {

        try {

        String message = "This is demo data";

        // TODO Auto-generated method stub
        MessageBox box = new MessageBox(new Shell(), SWT.OK);
        box.setMessage(message);
        box.setText("Help title");
        box.open();

        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
}

谁能帮我解决这个问题..?

为了获得帮助,我在我的插件中添加了一个 ActionSet:

<extension
         point="org.eclipse.ui.actionSets">
      <actionSet
            id="com.my.plugin.actionSet"
            label="My ActionSet"
            visible="true">
         <menu
               id="mymenu"
               label="My Menu" 
               path="help/helpStart">
            <groupMarker
                  name="start">
            </groupMarker>
            <separator
                  name="additions">
            </separator>
         </menu>
         <action
               class="com.myexample.MyHelp"
               id="MyHelp"
               label="Use Help"
               icon="icons/plugin_help.png"
               menubarPath="help/mymenu/start"
               style="push">
         </action>
        </actionSet>
   </extension>

我还需要做什么吗?

4

1 回答 1

0

如果您正在运行 eclipse >= 3.3,那么您可以将其放到 plugins 文件夹中。另外,尝试使用-clean option.

我建议您使用 dropins 文件夹进行手动安装。请参阅文档:http ://wiki.eclipse.org/Equinox_p2_Getting_Started#Dropins

Upd1: 为了运行您的代码,我必须添加一些未实现的方法(我使用的是 eclipse 3.6 版):

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.IWorkbenchWindowActionDelegate;

public class MyHelp implements IWorkbenchWindowActionDelegate {

    public void run(final IAction arg0) {

        final String message = "This is demo data";

      // TODO Auto-generated method stub
        final MessageBox box = new MessageBox(new Shell(), SWT.OK);
        box.setMessage(message);
        box.setText("Help title");
        box.open();

   }

    public void selectionChanged(final IAction action, final ISelection selection) {
        // TODO Auto-generated method stub

    }

    public void dispose() {
        // TODO Auto-generated method stub

    }

    public void init(final IWorkbenchWindow window) {
        // TODO Auto-generated method stub

    }
}

另外,检查您的插件清单是否有以下行: Bundle-SymbolicName: your_plugin_id;singleton:=true 我刚刚将插件从工作区复制到我的 Eclipse 实例的 dropins 文件夹中,它开箱即用。

您确定该插件清单在 jar 文件中吗?检查 Bin 选项卡或 build.properties 以确保所有内容都正确导出。

希望这可以帮助

于 2013-03-18T10:00:16.920 回答