2012-01-15 8 views
1

私のツリー構造は、私がどの位置のインデックスエントリのコンテキストメニューを作成してい空の選択に対してコンテキストメニューを呼び出す方法は?

| 
    -- Key2 

| 
    -- Value2 

INDEX2

| 
    -- Key1 

| 
    -- Value1 

index1の三つのクラスインデックス、キー、値

を含む、このようになります3つのアクション(newKeyAction、newValueAction、removeAction)

を右クリックし、空白を右クリックしてaddAction sh ouldがポップアップします。

これは責任のコードです:

protected void fillContextMenu(IMenuManager manager) 
{ 
    ITreeSelection mySelection = (ITreeSelection) viewer.getSelection(); 
    if(mySelection.size() == 1) 
     { 
     if(mySelection.getFirstElement() instanceof Index) 
     { 
      manager.add(newKeyAction); 

      manager.add(newValueAction); 

      manager.add(removeAction); 

    } 
     } 
    else 
    { 
     manager.add(addAction); 

    } 

} 

空きスペースを右クリックした後、そこにすべてが正常に動作しますが、treeViewerが空のときにaddActionは一度だけ呼び出されて、そして、ノードで選択された最後のツリーが選択され、それぞれのアクションが表示されます。

私が間違っている場所を教えてください。

答えて

0

その後、空のスペースを右クリックすると、ツリー内で最後に選択されたノードが選択され、それぞれのアクションが表示されます。

これはあなたの問題であり、何もできません。このような選択をクリアすることはできません。 addActionを利用できる別の方法があります。

関連する問題