2012-01-15 6 views
1

내 트리 구조는빈 선택을 위해 상황에 맞는 메뉴를 호출하는 방법?

| 
    -- Key1 

| 
    -- Value1 

| 
    -- Key2 

| 
    -- Value2 

Index2 내가 색인 항목에 대한 컨텍스트 메뉴를 만드는거야 index1의 세 가지 클래스 인덱스, 키, 값

을 포함, 같이 보이는해야 세 가지 작업 (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); 

    } 

} 

모든 것이 잘 작동하지만, addAction 한 번만 treeViewer 후 선택 빈 공간에 마우스 오른쪽 버튼을 클릭, 마지막 노드가 비어, 그리고 때 호출되는 트리가 선택되고 각각의 조치가 표시됩니다.

내가 어디로 잘못 가고 있는지 알려주세요.

답변

0

빈 공간을 마우스 오른쪽 버튼으로 클릭하면 트리에서 마지막으로 선택된 노드가 선택되고 해당 작업이 표시됩니다.

그게 문제가되어서 그것에 대해 아무 것도 할 수 없습니다. 이와 같은 선택을 취소 할 수 없습니다. addAction을 사용할 수있는 또 다른 방법을 찾아야합니다.

관련 문제