WizardNewFileCreationPage 命令
WizardNewFileCreationPage order
我正在创建一个导出向导,包括让用户选择导出格式然后使用 WizardNewFileCreationPage 选择导出位置的可能性。
为此,我创建了 3 个页面,一个扩展 wizardPage 并带有无线电以设置要调用的下一个页面,另外 2 个页面等待格式化并扩展 WizardNewFileCreationPage。
它几乎完美地工作,我唯一的问题是 "Finish" 按钮,即使我覆盖了函数 isPageComplete 以将页面验证仅限于函数 validatePage ,它也需要可点击以确保所有导出格式都已完成.
看起来函数 validatePage 不仅对它自己的控件有效,而且对向导中 class WizardNewFileCreationPage 实现的所有控件都无效。
我是不是哪里出错了,有人知道解决办法吗?
此致,
沃尔多
所以,我认为我的问题是因为我没有实现 canFinish 方法,而该方法在默认实现中需要实现向导中包含的所有页面。为了避免我的问题,我这样做了:
@Override
public boolean canFinish() {
if (this.getContainer().getCurrentPage() == mainPage)
return false;
return this.getContainer().getCurrentPage().isPageComplete();
}
注意:我的 "mainPage" 属性是定义导出格式的属性,然后是要使用的下一页。
此外,我一直通过这种方式调用 WizardNewFileCreationPage 来验证我的页面是否已完成:
@Override
public boolean isPageComplete() {
return this.validatePage();
}
显示对话框的 WizardDialog
驱动按钮启用。在不同的点它调用它的 updateButtons
方法。这又会调用 Wizard
canFinish
方法来设置“完成”按钮状态。
canFinish
的默认设置是为 每个 页面调用 WizardPage
isPageComplete
方法,即使对于当前未激活的页面也是如此。
对于WizardNewFileCreationPage
,isPageComplete
方法参考validatePage
方法的结果。
因此您可以覆盖 Wizard
canFinish
方法以仅测试您关心的页面。或者您可以覆盖单个页面 isPageComplete
方法以 return 您想要的结果。
我正在创建一个导出向导,包括让用户选择导出格式然后使用 WizardNewFileCreationPage 选择导出位置的可能性。
为此,我创建了 3 个页面,一个扩展 wizardPage 并带有无线电以设置要调用的下一个页面,另外 2 个页面等待格式化并扩展 WizardNewFileCreationPage。
它几乎完美地工作,我唯一的问题是 "Finish" 按钮,即使我覆盖了函数 isPageComplete 以将页面验证仅限于函数 validatePage ,它也需要可点击以确保所有导出格式都已完成.
看起来函数 validatePage 不仅对它自己的控件有效,而且对向导中 class WizardNewFileCreationPage 实现的所有控件都无效。
我是不是哪里出错了,有人知道解决办法吗?
此致, 沃尔多
所以,我认为我的问题是因为我没有实现 canFinish 方法,而该方法在默认实现中需要实现向导中包含的所有页面。为了避免我的问题,我这样做了:
@Override
public boolean canFinish() {
if (this.getContainer().getCurrentPage() == mainPage)
return false;
return this.getContainer().getCurrentPage().isPageComplete();
}
注意:我的 "mainPage" 属性是定义导出格式的属性,然后是要使用的下一页。
此外,我一直通过这种方式调用 WizardNewFileCreationPage 来验证我的页面是否已完成:
@Override
public boolean isPageComplete() {
return this.validatePage();
}
显示对话框的 WizardDialog
驱动按钮启用。在不同的点它调用它的 updateButtons
方法。这又会调用 Wizard
canFinish
方法来设置“完成”按钮状态。
canFinish
的默认设置是为 每个 页面调用 WizardPage
isPageComplete
方法,即使对于当前未激活的页面也是如此。
对于WizardNewFileCreationPage
,isPageComplete
方法参考validatePage
方法的结果。
因此您可以覆盖 Wizard
canFinish
方法以仅测试您关心的页面。或者您可以覆盖单个页面 isPageComplete
方法以 return 您想要的结果。