0
我有一个TreePanel,它分层显示不同类型的对象。地区,城市,地点...如何防止在GXT中显示空的上下文菜单
我希望能够在不同级别显示不同的上下文菜单项。例如:对的miR区,MIC为市,MIL的位置... 我用这个剪断,以实现动态结构:
contextMenu.addListener(Events.BeforeShow, new Listener<MenuEvent>() {
@Override
public void handleEvent(MenuEvent be) {
//First make all menu items invisible
List<Component> menuItems = contextMenu.getItems();
for (Component c : menuItems) {
c.setVisible(false);
}
//And make apprepriate menu items visible
TopologyTreeElement s = tree.getSelectionModel().getSelectedItem();
if (s instanceof TopologyTreeElement.Region) {
miR.setVisible(true);
}
if (s instanceof TopologyTreeElement.City) {
miC.setVisible(true);
}
}
});
但是,在任何级别的,如果所有的项目都是无形的,它显示了一个空盒子。我希望它不要完全显示菜单。我试着将这段代码片段添加到方法中,但它没有提供任何帮助。
//Do not show menu if no menu item is invisible
boolean isMenuShouldBeVisible = miC.isVisible() || miR.isVisible();
if (!isMenuShouldBeVisible) {
be.preventDefault();
be.stopEvent();
}
任何人都可以提出不同的方法?