2014-11-21 80 views
1

我开发了自己的eclipse插件,它可以创建一个新的自定义向导。在向导结束时,一旦完成所有任务,我想启动“导入maven项目”向导。如何从我的eclipse插件中启动“import maven project”?

例如,对于一个正常的项目,我可以做这样的事情

 IWizard wizard = new ExternalProjectImportWizard(page1.getTxtPathLocation().getText()); 

     WizardDialog dialog = new WizardDialog(getShell(), wizard); 
     dialog.open(); 

什么是行家相当于导入向导类名?

非常感谢。

回答

1

类是MavenImportWizard

org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard 

和是M2E插件的一部分。


如何找到通过谷歌/ grepcode

  1. 谷歌grepcode import existing maven project
    导致你plugin.properties,在那里你看到下面一行:

    m2.wizard.import.description = Import Existing Maven Projects 
    
  2. 在同一项目在grepcode中,您将看到plugin.xml以及包含类名称的片段:

    <wizard id="org.eclipse.m2e.core.wizards.Maven2ImportWizard" 
         class="org.eclipse.m2e.core.ui.internal.wizards.MavenImportWizard" 
         icon="icons/import_m2_project.gif" 
         category="org.eclipse.m2e" 
         name="%m2.wizard.import.name"> 
        <description>%m2.wizard.import.description</description> 
    </wizard> 
    

如何实例化一个导入向导在一个通用的方式

由于格雷格指出,该类在internal包,不应该直接使用。 相反,您应该使用Eclipse API通过其ID来获取向导描述符,然后使用描述符实例化向导。您将在plugin.xml中找到向导描述符标识符(参见上文)。你的情况是org.eclipse.m2e.core.wizards.Maven2ImportWizard

下面的代码片段其完成任务:

final String MAVEN_IMPORT_WIZARD_ID = 
    "org.eclipse.m2e.core.wizards.Maven2ImportWizard"; 

final IWizardDescriptor mavenImportWizardDescriptor = 
    PlatformUI 
    .getWorkbench() 
    .getImportWizardRegistry() 
    .findWizard(MAVEN_IMPORT_WIZARD_ID); 

if (mavenImportWizardDescriptor != null) { 
    final IWizard mavenImportWizard = mavenImportWizardDescriptor.createWizard(); 
    final WizardDialog mavenImportWizardDialog = new WizardDialog(getShell(), mavenImportWizard); 
    mavenImportWizardDialog.open(); 
} 
else { 
    // Wizard not found - e.g. if m2e is not installed. 
    // Notify user. 
} 

参见:

+1

注意,SI这是一个**内部**类,你不应该使用它! – 2014-11-21 14:24:49

+0

谢谢亚历克斯我会给它一个镜头。 @ greg-449,你有其他选择吗?请记住,我所要求的是一项要求,所以我需要启动该向导。 – Elio 2014-11-21 14:40:23

+0

@ greg-449,谢谢你指出,我已经更新了答案。 – 2014-11-21 14:55:54