如何以编程方式从eclipse插件调用importwizard

如何以编程方式从eclipse插件调用importwizard,eclipse,eclipse-rcp,Eclipse,Eclipse Rcp,我需要以编程方式从eclipse插件项目中调用eclipse importwizard。我遵循的例子,似乎不起作用 然后在我的代码中,它显示向导数组为空,我需要注册importwizard吗?怎么做 IWizardDescriptor[] wizards= PlatformUI.getWorkbench().getImportWizardRegistry().getPrimaryWizards(); “导入”对话框不使用“主”向导。您需要知道要使用的向导的id,并调用向导注册表findWiz

我需要以编程方式从eclipse插件项目中调用eclipse importwizard。我遵循的例子,似乎不起作用

然后在我的代码中,它显示向导数组为空,我需要注册importwizard吗?怎么做

IWizardDescriptor[] wizards= PlatformUI.getWorkbench().getImportWizardRegistry().getPrimaryWizards();

“导入”对话框不使用“主”向导。您需要知道要使用的向导的id,并调用向导注册表
findWizard
方法

导入项目向导id为
org.eclipse.ui.wizards.Import.ExternalProject
,因此代码如下所示:

String id=“org.eclipse.ui.wizards.import.ExternalProject”
IWizardDescriptor descriptor=PlatformUI.getWorkbench().getImportWizardRegistry().findWizard(id);
IWizard wizard=descriptor.createWizard();
WizardDialog wd=新建WizardDialog(display.getActiveShell(),向导);
setTitle(wizard.getWindowTitle());
wd.open();
私有void openProject(String projectfolder)引发异常{ //TODO:检查项目是否已经创建并打开,如果是,则不执行任何操作或只是刷新

    IProjectDescription description = null;
    IProject project = null;
    description = ResourcesPlugin.getWorkspace().loadProjectDescription(
            new Path(new File(projectfolder).getAbsolutePath()
                    + "/.project"));
    project = ResourcesPlugin.getWorkspace().getRoot()
            .getProject(description.getName());
    project.create(description, null);

    project.open(null);

}

您要显示哪个导入向导?导入对话框没有任何“主”向导,您需要知道向导的id。我需要使用将现有项目导入工作区(但不将源代码复制到eclipse工作区)谢谢,我将尝试一下。我发现似乎还有另一种方法,没有GUI,我尝试了您建议的方法,但在descriptor.createWizard()处出现空点异常;似乎未找到/创建描述符。是否必须在插件中进行一些设置才能注册导入向导?代码的
id
行中有一个空格-应该是
org.eclipse.ui.wizards.import.ExternalProject
(无空格)感谢它的工作,ImportWizard被成功调用,还有一件事,如何以编程方式选择项目而不是手动选择项目?我认为没有API可以做到这一点。您必须检查单个向导源代码,看看是否有什么可以做的。