如何在eclipse中使用工具栏按钮打开向导页面?

时间:2012-02-07 08:41:33

标签: java eclipse eclipse-plugin

我正在做一个GUI项目,它包含一个向导和一个 wizardpage。使用eclipse插件创建向导页面 “org.eclipse.jface.wizard.WizardPage”我可以使用带有eclipse插件的工具栏按钮打开向导 “org.eclipse.jface.wizard.WizardDialog”,但我无法使用相同的插件打开向导页。

还有其他任何插件吗? 向导页面。任何人都可以帮我这样做吗?

3 个答案:

答案 0 :(得分:2)

除非是向导的第一页,否则无法转到特定的向导页面。

要打开特定向导 - 而不是“向导选择器” - 然后将newWizardId参数添加到菜单定义...

<extension point="org.eclipse.ui.menus">
   <menuContribution
         allPopups="false"
         locationURI="menu:org.eclipse.ui.main.toolbar">
      <toolbar id="id.of..toolbar">
         <command commandId="org.eclipse.ui.newWizard">
            <parameter name="newWizardId" value="id.of.wizard" />
         </command>
      </toolbar>
   </menuContribution>
</extension>

答案 1 :(得分:2)

在处理程序类(扩展org.eclipse.core.commands.AbstractHandler)中的覆盖执行方法中,尝试以下代码:

    IWizard wizard = new YourWizard();
    WizardDialog dialog = new WizardDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), wizard);
    dialog.open();

- )

答案 2 :(得分:1)

你可以这样做:

 public  void openWizard(String id) {
 // First see if this is a "new wizard".
 IWizardDescriptor descriptor = PlatformUI.getWorkbench()
   .getNewWizardRegistry().findWizard(id);
 // If not check if it is an "import wizard".
 if  (descriptor == null) {
   descriptor = PlatformUI.getWorkbench().getImportWizardRegistry()
   .findWizard(id);
 }
 // Or maybe an export wizard
 if  (descriptor == null) {
   descriptor = PlatformUI.getWorkbench().getExportWizardRegistry()
   .findWizard(id);
 }
 try  {
   // Then if we have a wizard, open it.
   if  (descriptor != null) {
     **IWizard wizard = descriptor.createWizard();**   
                                 **//here you can set the first show page**

     WizardDialog wd = new  WizardDialog(getStandardDisplay()
       .getActiveShell(), wizard);
     wd.setTitle(wizard.getWindowTitle());
     wd.open();
   }
 } catch  (CoreException e) {
   e.printStackTrace();
 }
}