添加导出向导以eclipse RCP独立应用程序

Pro*_*ome 3 java eclipse eclipse-plugin eclipse-rcp

您好我正在尝试添加导出向导,类似于Eclipse中可用的导出向导到独立的RCP应用程序.我在plugin.xml中输入以下代码:

   <extension
     id="exportScript"
     point="org.eclipse.ui.exportWizards">
  <wizard
        class="com.myApplication.scriptGenerator.ExportWizard"
        id="com.myApplication.scriptGenerator.exid"
        name="Export as Script">
  </wizard>
Run Code Online (Sandbox Code Playgroud)

但是在文件菜单条目中看不到任何向导..我缺少什么?

谢谢 :)

Fav*_*ius 6

你必须做两件事:

  • 使用org.eclipse.ui.exportWizards扩展点(你已经做过)

  • 在Applications action bar advisor类中,首先创建用于导出的标准工作台操作,然后将其添加到任何菜单中.

代码片段

// Creating and registering the action 
IWorkbenchAction export = ActionFactory.EXPORT.create(window);
register(export);

 // adding it to standard file menu
fileMenu.add(export);
Run Code Online (Sandbox Code Playgroud)

>>完整代码 - ApplicationActionBarAdvisor

package wiztest;

import org.eclipse.jface.action.GroupMarker;
import org.eclipse.jface.action.ICoolBarManager;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.jface.action.MenuManager;
import org.eclipse.ui.IWorkbenchActionConstants;
import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.actions.ActionFactory;
import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction;
import org.eclipse.ui.application.ActionBarAdvisor;
import org.eclipse.ui.application.IActionBarConfigurer;

public class ApplicationActionBarAdvisor extends ActionBarAdvisor {

    private IWorkbenchAction exitAction;
    private IWorkbenchAction export;

    public ApplicationActionBarAdvisor(IActionBarConfigurer configurer) {
        super(configurer);
    }

    protected void makeActions(final IWorkbenchWindow window) {

        exitAction = ActionFactory.QUIT.create(window);
        register(exitAction);


        export = ActionFactory.EXPORT.create(window);
        register(export);
    }

    protected void fillMenuBar(IMenuManager menuBar) {
        MenuManager fileMenu = new MenuManager("&File", IWorkbenchActionConstants.M_FILE);

        menuBar.add(fileMenu);
        menuBar.add(new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS));
        fileMenu.add(export);
        fileMenu.add(exitAction);        
    }

    protected void fillCoolBar(ICoolBarManager coolBar) {

    }
}
Run Code Online (Sandbox Code Playgroud)

>>菜单输入

在此输入图像描述

>>导出向导

在此输入图像描述