public FavoritesButton() { super(CoreGUI.getMessages().favorites()); // this is the main menu - the "favorites" button shown in the UI the user initially clicks favoritesMenu = new Menu(); favoritesMenu.setSubmenuDirection("left"); setMenu(favoritesMenu); setAutoFit(true); // these are the child menus directly under the main favorites button favoriteResourcesMenu = new Menu(); favoriteGroupsMenu = new Menu(); recentlyViewedMenu = new Menu(); favoriteResourcesMenu.setSubmenuDirection("left"); favoriteResourcesMenu.setAutoWidth(); favoriteGroupsMenu.setSubmenuDirection("left"); favoriteGroupsMenu.setAutoWidth(); recentlyViewedMenu.setSubmenuDirection("left"); recentlyViewedMenu.setAutoWidth(); MenuItem favoriteResourcesMenuItem = new MenuItem(MSG.favorites_resources(), "Favorite_Resource_16.png"); favoriteResourcesMenuItem.setSubmenu(favoriteResourcesMenu); favoriteResourcesMenu.setEmptyMessage(MSG.common_val_none()); MenuItem favoriteGroupsMenuItem = new MenuItem(MSG.favorites_groups(), "Favorite_Group_16.png"); favoriteGroupsMenuItem.setSubmenu(favoriteGroupsMenu); favoriteGroupsMenu.setEmptyMessage(MSG.common_val_none()); MenuItem recentlyViewedMenuItem = new MenuItem(MSG.favorites_recentlyViewed(), "global/Recent_16.png"); recentlyViewedMenuItem.setSubmenu(recentlyViewedMenu); recentlyViewedMenu.setEmptyMessage(MSG.common_val_none()); favoritesMenu.setItems( favoriteResourcesMenuItem, favoriteGroupsMenuItem, recentlyViewedMenuItem); addClickHandler( new ClickHandler() { public void onClick(ClickEvent clickEvent) { // Cancel the click event. We'll call show() on the menu ourselves only if we're able to // load the // favorite Resources successfully. clickEvent.cancel(); showMenu(); } }); }