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

python - How to create a legend for 3D bar in matplotlib? -

java - Multi-Label Document Classification -

php - Dynamic url re-writing using htaccess -