3.5 Snippet005TreeCustomMenu
就是一个根据节点类型增加不同菜单的例子。
cyper的代码:
private void createContextMenu(Composite parent) {
final MenuManager mm = new MenuManager();
mm.setRemoveAllWhenShown(true);
mm.addMenuListener(new IMenuListener() {
public void menuAboutToShow(IMenuManager manager) {
IStructuredSelection selection = (IStructuredSelection) serverTree
.getSelection();
if (!selection.isEmpty()) {
Node node = (Node) selection.getFirstElement();
if (node instanceof TableNode) {
mm.add(new QueryDataAction());
mm.add(new ExportDataAction());
mm.add(new Separator());
mm.add(new RefreshMetaDataAction());
mm.add(new Separator());
mm.add(new CodeGenerationAction());
}
}
}
});
serverTree.getControl().setMenu(mm.createContextMenu(serverTree.getControl()));
}
效果如下:
一年以后。。。