2012-01-15 3 views
1

Моя структура дерева выглядит следующим образом, содержащий три класса Index, Key, ValueКак вызвать контекстное меню для пустого выбора?

Индекс1

| 
    -- Key1 

| 
    -- Value1 

index2

| 
    -- Key2 

| 
    -- Value2 

Я создаю контекстное меню для записи индекса, который должен имеют три действия (newKeyAction, newValueAction, removeAction)

и щелкнув правой кнопкой мыши на пустое пространство addAction sh выйдет.

Это код отвечает:

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.

Смежные вопросы