2017-01-23 4 views
0

私はtoggleスタイルを持っている私のmenuContributionに新しいコマンドを提供するために、org.eclipse.ui.commandsを拡張しています。Eclipse UIコマンドの初期状態をプログラムで設定する方法はありますか。

は今、私は初期状態を設定したいが、それはハードコードされた状態であってはなりません。その結果、以下の状態を提供することはオプションではありません。状態は設定ページでプロパティを反映すべき

<state 
     class="org.eclipse.ui.handlers.RegistryToggleState:true" 
     id="org.eclipse.ui.commands.toggleState"> 
    </state> 

、何かを永続化する必要はありません。私は初めてのコマンドをクリックして、私はできるだけ早くstartメソッドにジャンプしますので、プラグインでメソッドを呼び出すことによって、手動で状態を設定Activator、動作しませんが、それは、コンテキストメニューが既に正しいを反映しなければならないので、手遅れ優先プロパティの状態

どうすればこの問題を解決できますか?

答えて

0

org.eclipse.jface.commands.ToggleStateを拡張し、setStateメソッドをオーバーライドする独自のStateクラスを実装する必要があると思います。これは、任意の値を取り、それを無視して、あなたは、私はちょうど推測、それを行うにしようとしていない

(などの好みを読む)やりたいことができます。

+0

私はすでにこれを試してみましたが、問題は私の実装( 'setState')が呼び出されないことです。 –

+0

どうやら状態のIDは 'org.eclipse.ui.commands.toggleState'でなければなりません。私は自分のカスタムIDを提供していたので、私のコードは決して呼び出されませんでした。 –

+0

ああ、 'ToggleState'は' setState'ではなく 'setValue'メソッドを持っています。私はちょうど混乱している) – Zefick

関連する問題