7

Eclipse RCP アプリケーションのウィザードを作成しています。ファイルに対して何らかの処理を行い、ユーザー入力を取得した後、ユーザーが戻って変更を加えることを望んでいません。この時点で、システムに加えようとしている変更を受け入れるか拒否する必要があります。

私が見つけられないように見えるのは、表示されるボタンまたはユーザーが戻るボタンを押す機能をオーバーライドできるメソッド呼び出しです。そこにないか、少なくとも無効にすることをお勧めします。

JFace WizardWizardPageを使用してこれを行う方法を見つけた人はいますか?

使いやすさに関しては、ウィザードの規則を破っていますか? 問題への別のアプローチを検討する必要がありますか?

4

4 に答える 4

12

ウィザード ページの実装では、getPreviousPage() メソッドから null を返すことができます。

于 2008-09-05T13:51:12.907 に答える
7

ジョドネルの答えを拡張する:

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();
    }
}

JFace ウィザードのその他のヒントとコツについては、私のブログ投稿を参照してください。

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

于 2011-07-21T18:06:35.207 に答える
3

UI の観点からは、これはかなり悪いように見えます。ユーザーが間違いを犯し、戻って修正したいのに、それを許可しない場合、ユーザーは不満を感じるでしょう。それを防ぐ方法を探すよりも、元に戻ることができるようにアプリケーションを変更する方がはるかに良いと思います。

于 2008-09-05T13:57:44.500 に答える
0

標準の JFace ウィザード API を使用してこれを行う方法はありません。私のチームは、カスタムの WizardDialog を作成することでこれを実現しました。これは、Eclipse プラグインではなく、Eclipse RCP アプリケーションで行いました。戻るボタンを無効にすることは慣習を破っていますが、ビジネス アナリストはこの機能を本当に望んでいました。

于 2008-09-18T13:10:28.997 に答える