java - How to prevent empty context menu from showing in GXT -
i have treepanel shows different kind of objects hierarchically. region, city, location...
i want able show different context menu items in different levels. example: mir region, mic city, mil location... used snipped achieve dynamic structure:
contextmenu.addlistener(events.beforeshow, new listener<menuevent>() { @override public void handleevent(menuevent be) { //first make menu items invisible list<component> menuitems = contextmenu.getitems(); (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); } } }); but, in level if of items invisible, shows empty box. want not show menu totally. tried adding code snippet method, gave no help.
//do not show menu if no menu item invisible boolean ismenushouldbevisible = mic.isvisible() || mir.isvisible(); if (!ismenushouldbevisible) { be.preventdefault(); be.stopevent(); } anyone can suggest different approach?
since listening beforeshow event, allowed cancel event , stop actual show event happening. check see if items invisible, , if so, call be.setcancelled(true).
any event starts in before can used cancel later event - why these before- events exist @ all.
Comments
Post a Comment