Моя древовидная структура выглядит так, содержит три класса Index, Key, Value
Индекс1
|
-- Key1
|
-- Value1
index2
|
-- Key2
|
-- Value2
Я создаю контекстное меню для элемента указателя, в котором должно быть три действия (newKeyAction, newValueAction, removeAction)
и, щелкнув правой кнопкой мыши на пустом месте, должно появиться addAction.
Ответственный код:
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 пуст, а затем, щелкнув правой кнопкой мыши пустое пространство, выбирается последний выбранный в дереве узел, и отображаются соответствующие действия.
Пожалуйста, дайте мне знать, где я иду не так.