2008-09-05 7 views
6

Eclipse RCPアプリケーション用のウィザードを作成しています。ファイルに対して何らかの処理を行い、ユーザの入力を受けた後、私はユーザが変更を行うために戻ってくることを望まない。この時点で、彼らはシステムに加えようとしている変更を承認するか、却下する必要があります。JFaceウィザードで戻るボタンを無効にすることはできますか?

私が見つけられないように見えるのは、表示されるボタンや戻るボタンを押すユーザーの能力を無効にするメソッド呼び出しです。私はそれがそこにないか、少なくとも無効にすることを好むだろう。

JFace WizardWizardPageを使用して誰でもこれを行う方法が見つかりましたか?

ユーザビリティの観点から、私はウィザードの慣習を守っていますか?私はこの問題に対する別のアプローチを検討すべきでしょうか?

答えて

11

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

3

UIの観点からは、これはむしろ悪いようです。あなたのユーザーは、間違いを犯して戻って修正したいと思っていて、あなたはそれらを放棄しなければならなくなります。私は、アプリケーションを変更して、それを防ぐ方法を探し出すのではなく、戻ることができるようにする方がはるかに良いと思います。

0

標準のJFaceウィザードAPIを使用してこれを行う方法はありません。私のチームはカスタムWizardDialogを作成してこれを達成しました。 Eclipse RCPアプリケーションではこれを行いましたが、eclipseプラグインでは実行しませんでした。 「戻る」ボタンを無効にすることは規約違反ですが、私たちのビジネスアナリストは本当にその機能を望んでいました。 jodonellの答えに拡大

6

戻るボタンを無効にするには、それは)、WizardPage.getPreviousPage(のデフォルトの実装では非直感的な動作のために必要以上に困難です。 setPreviousPage(null)を呼び出すことができ、getPreviousPage()はそれでも前のページを返します。

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

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ウィザードのヒントやトリックのための私のブログの記事を参照してください:あなたは、戻るボタンを無効にするために、getPreviousPage()の実装をオーバーライドする必要があります

関連する問題