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

Popular posts from this blog

user interface - Python attempting to create a simple gui, getting "AttributeError: 'MainMenu' object has no attribute 'intro_screen'" -

jquery - Common JavaScript snippet to share files on Google Drive, Dropbox, Box.net or SkyDrive -

Android Gson.fromJson error -