/** * Hides this menu and optionally all parent menus * * @param deep true to close all parent menus * @return this */ public Menu hide(boolean deep) { if (showing) { MenuEvent me = new MenuEvent(this); if (fireEvent(Events.BeforeHide, me)) { if (activeItem != null) { activeItem.deactivate(); activeItem = null; } onHide(); RootPanel.get().remove(this); eventPreview.remove(); showing = false; hidden = true; fireEvent(Events.Hide, me); if (deep && parentItem != null) { parentItem.parentMenu.hide(true); } } } return this; }