我已经覆盖了canFinish()IWizard方法。可以找到该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

09-09 17:20