2016-04-28 9 views
0

"Add File1"、 "Add File2"、 "Save"というメニュー項目があります。それぞれに関連するハンドラとコマンドがあります。 「File1を追加する」と「File2を追加する」の両方が1回以上実行されるまでは、どのようにすればよいでしょうか?RCP e4は他のメニュー項目に基づいてメニュー項目を無効にする

コア式を使用して実行できると思いますが、特にプラグインを行う方法を理解できません.xmlファイルの変更私は、上記のケースのための非常に簡単な使用例を必要とする

答えて

0

それはおそらくこれを行うには、あなたの「保存」ハンドラで@CanExecuteメソッドを使用する最も簡単だろうような何か:。。。

public class SaveHandler 
{ 
    @CanExecute 
    public boolean canExecute() 
    { 
    boolean enable; 

    // TODO your code to test if the menus have run and set the enable flag 

    return enable; 
    } 

    @Execute 
    public void execute() 
    { 
    // TODO your execute code 
    } 
} 
+0

メニューが実行されているかどうかをテストするにはどうすればよいですか? IWorkbenchPart part = PlatformUI.getWorkbench()。getActiveWorkbenchWindow()。getActivePage()。getActivePart();を使用して、パーツがアクティブであるかどうかを確認しようとしました。しかし、それは働かない。 「Workbenchは作成されていません」というエラーが表示されます。メニュー項目が少なくとも1回クリックされたかどうかを知る方法はありますか? – anjalli

+0

そのコードは3.x互換モードで、e4で使用することはできません。メニュー項目がクリックされたことを記憶するものは何もありません。あなた自身でコードを作成する必要があります。アクティブな部分を取得するにはe4の方法がありますが、それはメニュー項目とは関係ありません。 –

関連する問題