2014-11-21 33 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