「ファイル」メニューのメニュー項目をコマンドとして作成しました。このコマンドには、IHandler
インターフェイスを実装するハンドラがあります。このハンドラにはisEnabled
メソッドが含まれています。このメソッドを使用してメニュー項目を有効/無効にしようとしていますが、「File」メニューをクリックするとそのメソッドが呼び出されます。 2回目、3回目などのときにクリックすると、以前にページの状態を変更しても、isEnabled
メソッドが再度呼び出されることはありません。Eclipseメニュー項目を有効にした状態を更新します。
どうすればよいですか?たぶん、このメソッドは、コントロールメニュー項目を意図していない?
MenuManagerのハンドルを持っている場合、メニューアイテムをプログラムで有効/無効にするにはどうすればよいですか?変数の値を変更します – Neel
@Neelまあ、(前述の例では)あなたがCommandState.setNotLoaded(呼び出す必要があります)今度はハンドラ内で条件によって検出されるNOT_LOADEDに「myapp.commands.sourceprovider.active」 。ハンドラの条件では、 "myapp.commands.sourceprovider.active"がPLAYINGまたはPAUSEDと等しくない場合、ボタンは非アクティブ(無効)にする必要があります。 要するに、プロバイダクラス(ここではCommandState)を使用して、ハンドラをトリガする変数の値を変更します。 –