你可以在JFace向导中禁用后退按钮吗?

Ton*_*nzi 6 java eclipse rcp jface wizard

我正在为Eclipse RCP应用程序编写一个向导.在对文件进行一些处理并进行一些用户输入之后,我不想让用户返回进行更改.此时,他们必须接受或拒绝他们将要对系统进行的更改.

我似乎找不到的是一个方法调用,它允许我覆盖显示的按钮或用户点击后退按钮的能力.我宁愿它不存在或至少被禁用.

有没有人找到使用JFace向导WizardPage这样做的方法?

可用性方面,我是否打破了向导惯例?我应该考虑采用不同的方法解决问题吗?

jod*_*ell 11

您可以从向导页面实现中的getPreviousPage()方法返回null.


Nic*_*sky 6

扩展jodonell的答案:

由于WizardPage.getPreviousPage()的默认实现中的非直观行为,禁用后退按钮比应该更难.您可以调用setPreviousPage(null),getPreviousPage()仍然返回上一页.您需要覆盖getPreviousPage()的实现以禁用后退按钮:

public abstract class MyWizardPage extends WizardPage {
    private boolean backButtonEnabled = true;

    public void setBackButtonEnabled(boolean enabled) {
        backButtonEnabled = enabled;
        getContainer().updateButtons();
    }

    @Override
    public IWizardPage getPreviousPage() {
        if (!backButtonEnabled) {
            return null;
        }
        return super.getPreviousPage();
    }
}
Run Code Online (Sandbox Code Playgroud)

请参阅我的博客文章,了解更多JFace向导提示和技巧:

http://nsawadsky.blogspot.com/2011/07/jface-wizard-tips-and-tricks.html