IWizard.canFinish 什么时候执行
When is IWizard.canFinish executed
我已经覆盖了 IWizard
的 canFinish()
方法。 API可以找到here
这是我的代码:
@Override
public boolean canFinish(){
if(templatePage.isPageComplete()
&& jenkinsPage.isPageComplete()
&& containerPage.isPageComplete()
&& dataSourcePage.isPageComplete()
&& queuePage.isPageComplete()
&& deploymentPage.isPageComplete()){
return true;
}
else if(model.isDeployOnly()){
return true;
}
return false;
}
还有像addPages()
这样的其他方法也被执行了。
真的,我想知道什么时候执行canFinish()
?有执行顺序的列表吗?
每当需要更新按钮栏上的按钮(返回、下一步和完成按钮)时,canFinish
就会被 WizardDialog
调用。当向导首次显示时以及您在页面之间移动时会有调用。个别向导也可以在需要更新按钮状态时调用 IWizardContainer.updateButtons
。
注意:canFinish
的默认代码是:
public boolean canFinish() {
// Default implementation is to check if all pages are complete.
for (int i = 0; i < pages.size(); i++) {
if (!pages.get(i).isPageComplete()) {
return false;
}
}
return true;
}
因此,如果您只想在所有页面上调用 isPageComplete
,只需调用 super.canFinish
我已经覆盖了 IWizard
的 canFinish()
方法。 API可以找到here
这是我的代码:
@Override
public boolean canFinish(){
if(templatePage.isPageComplete()
&& jenkinsPage.isPageComplete()
&& containerPage.isPageComplete()
&& dataSourcePage.isPageComplete()
&& queuePage.isPageComplete()
&& deploymentPage.isPageComplete()){
return true;
}
else if(model.isDeployOnly()){
return true;
}
return false;
}
还有像addPages()
这样的其他方法也被执行了。
真的,我想知道什么时候执行canFinish()
?有执行顺序的列表吗?
canFinish
就会被 WizardDialog
调用。当向导首次显示时以及您在页面之间移动时会有调用。个别向导也可以在需要更新按钮状态时调用 IWizardContainer.updateButtons
。
注意:canFinish
的默认代码是:
public boolean canFinish() {
// Default implementation is to check if all pages are complete.
for (int i = 0; i < pages.size(); i++) {
if (!pages.get(i).isPageComplete()) {
return false;
}
}
return true;
}
因此,如果您只想在所有页面上调用 isPageComplete
,只需调用 super.canFinish