我目前正在尝试使用JFace向导为应用程序实现“导入向导”。
基本上我必须根据用户的输入“及时”添加下一页,因为向导中的每个“步骤”都取决于之前的步骤。
因此,在WizardImport的构造函数中,我将添加第一页,使用:
addPage(new WizardImportSourcePage(data));
在这个页面(WizardImportSourcePage)中,我想添加下一页,具体取决于所选择的来源,例如:
btnCsv.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent arg0) {
data.getWizard().addPage(new WizardImportSourcePage(data));
setPageComplete(true);
}
});
正如您所看到的,所有这些都发生在相应的Listener中。不幸的是,这不起作用。向导缺少“下一步”按钮,但仅显示“完成”按钮,因为在实际按下按钮之前,它不知道下一页的任何内容。我已经尝试调用updateButtons()
,但它没有改变任何内容。
那么,有什么建议如何使它工作?动态构建向导页面的正确方法是什么?大多数教程似乎都假设页面是在开头创建的,只是使用getNextPage()
更改了排序。
答案 0 :(得分:0)
在扩展Wizard
的代码中,您可以覆盖
public IWizardPage getNextPage(IWizardPage page)
可让您根据当前向导页面决定接下来要返回的页面(还有getPreviousPage
。