Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将导出向导添加到eclipse RCP独立应用程序_Java_Eclipse_Eclipse Plugin_Eclipse Rcp - Fatal编程技术网

Java 将导出向导添加到eclipse RCP独立应用程序

Java 将导出向导添加到eclipse RCP独立应用程序,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,嗨 我正在尝试向独立的RCP应用程序添加一个导出向导,类似于Eclipse中提供的导出向导。 我将以下代码放在plugin.xml中: <extension id="exportScript" point="org.eclipse.ui.exportWizards"> <wizard class="com.myApplication.scriptGenerator.ExportWizard" id="com.myAp

嗨 我正在尝试向独立的RCP应用程序添加一个导出向导,类似于Eclipse中提供的导出向导。 我将以下代码放在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>

但在“文件”菜单项中看不到向导。。 我错过了什么

谢谢:)

()您尚未在plugin.xml中指定文件的类别
()如果您没有看到文件->新建项本身,则需要通过ActionFactory.New或ActionFactory.New\u向导下拉操作或通过命令提供来创建它们,您必须做两件事:

  • 使用
    org.eclipse.ui.exportWizards
    扩展点(您已经这样做了)

  • 在您的应用程序
    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);
>完整代码-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) {

    }
}
>菜单项

>导出向导


您应该在向导中在向导中实现此界面,如:

公共类LoadDataWizard扩展向导在向导{}中实现

并添加此扩展名:

org.eclipse.ui.newWizards

创建一个菜单

2.在菜单上添加一个侦听器

例如:-

mntmExportProject.addSelectionListener(
new SelectionAdapter() {

        @Override
        public void widgetSelected(SelectionEvent e) {
            ImportExportWizard wizard = new ImportExportWizard(ImportExportWizard.EXPORT);
            IStructuredSelection selectionToPass = new StructuredSelection(treeViewer.getSelection());

            wizard.init(PlatformUI.getWorkbench(), selectionToPass);
            IDialogSettings workbenchSettings = WorkbenchPlugin.getDefault().getDialogSettings();
            IDialogSettings wizardSettings = workbenchSettings.getSection("ImportExportAction"); //$NON-NLS-1$
            if (wizardSettings == null) {
                wizardSettings = workbenchSettings.addNewSection("ImportExportAction"); //$NON-NLS-1$
            }
            wizard.setDialogSettings(wizardSettings);
            wizard.setForcePreviousAndNextButtons(true);
            Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
            WizardDialog dialog = new WizardDialog(parent, wizard);
            dialog.create();
            dialog.getShell().setSize(Math.max(470, dialog.getShell().getSize().x), 550);
            dialog.open();
        }
    });

您好,谢谢您的回复:-)很遗憾,我找不到ApplicationActionBarAdvisor类。我怀疑其原因是我的RCP实际上(应该在前面提到它…)是一个转基因食品应用。你知道在这种情况下该怎么办吗?@Protostome:寻找一个扩展
org.eclipse.ui.application.ActionBarAdvisor
的类。我提到的
ApplicationActionBarAdvisor
来自我的虚拟应用程序。