调用addPages()后添加JFace向导页面?

时间:2013-10-16 07:24:05

标签: java eclipse-plugin jface wizard

我正在尝试创建一个jface向导。 在我的向导中,我有我的" startpage"。我在" startpage"中选择的选项取决于将跟随多少页面。但在我看来,不可能这样做。因为在向导启动后调用 addPages() 方法。 addPage() 方法是私有的。但我需要在那里添加我的页面,因为当我在其他地方执行此操作时, createControl(复合父级) 不会被调用。

有没有解决方法如何解决这个问题? 我想过写一个自己的方法......像这样:

public void addNewPage() {
Page page = new Page("pagename");
page.createControl(parent);
page.setDescription("");}
...

但它不起作用。 你们有解决我问题的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以在向导addPages中添加所有页面,然后覆盖getNextPage以控制按下“下一步”时显示的页面。

如果这还不够,您可以随时编写自己的IWizard界面实现。

答案 1 :(得分:0)

如果符合条件(org.eclipse.jface.wizard.Wizard.getNextPage在下面的代码段中),您可以通过覆盖conditionForMorePages来返回新页面来执行此操作:

@Override
public IWizardPage getNextPage() {
   IWizardPage nextPage = super.getNextPage(page);
   if (nextPage == null) {
      if (conditionForMorePages){
         // we need an additional page.
         IWizardPage nextPage = new MyAdditionalPage();
      }
   }
   return nextPage;
}

如果您的向导仅以一页开头,那么"返回"和" next"默认情况下不显示按钮。如果有可能动态地启动更多步骤,则需要显示导航按钮。您可以通过使用API​​

设置正确的标志来实现
public void setForcePreviousAndNextButtons(boolean b)