public class

MenuBar

extends Widget
implements HasCloseHandlers<T> HasAnimation PopupListener
java.lang.Object
   ↳ com.google.gwt.user.client.ui.UIObject
     ↳ com.google.gwt.user.client.ui.Widget
       ↳ com.google.gwt.user.client.ui.MenuBar

Class Overview

A standard menu bar widget. A menu bar can contain any number of menu items, each of which can either fire a Command or open a cascaded menu bar.

CSS Style Rules

.gwt-MenuBar
the menu bar itself
.gwt-MenuBar-horizontal
dependent style applied to horizontal menu bars
.gwt-MenuBar-vertical
dependent style applied to vertical menu bars
.gwt-MenuBar .gwt-MenuItem
menu items
.gwt-MenuBar .gwt-MenuItem-selected
selected menu items
.gwt-MenuBar .gwt-MenuItemSeparator
section breaks between menu items
.gwt-MenuBar .gwt-MenuItemSeparator .menuSeparatorInner
inner component of section separators
.gwt-MenuBarPopup .menuPopupTopLeft
the top left cell
.gwt-MenuBarPopup .menuPopupTopLeftInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupTopCenter
the top center cell
.gwt-MenuBarPopup .menuPopupTopCenterInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupTopRight
the top right cell
.gwt-MenuBarPopup .menuPopupTopRightInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupMiddleLeft
the middle left cell
.gwt-MenuBarPopup .menuPopupMiddleLeftInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupMiddleCenter
the middle center cell
.gwt-MenuBarPopup .menuPopupMiddleCenterInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupMiddleRight
the middle right cell
.gwt-MenuBarPopup .menuPopupMiddleRightInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupBottomLeft
the bottom left cell
.gwt-MenuBarPopup .menuPopupBottomLeftInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupBottomCenter
the bottom center cell
.gwt-MenuBarPopup .menuPopupBottomCenterInner
the inner element of the cell
.gwt-MenuBarPopup .menuPopupBottomRight
the bottom right cell
.gwt-MenuBarPopup .menuPopupBottomRightInner
the inner element of the cell

Example

{@example com.google.gwt.examples.MenuBarExample}

Use in UiBinder Templates

MenuBar elements in UiBinder template files can have a vertical boolean attribute (which defaults to false), and may have only MenuItem elements as children. MenuItems may contain HTML and MenuBars.

For example:

 <g:MenuBar>
   <g:MenuItem>Higgledy
     <g:MenuBar vertical="true">
       <g:MenuItem>able</g:MenuItem>
       <g:MenuItem>baker</g:MenuItem>
       <g:MenuItem>charlie</g:MenuItem>
     </g:MenuBar>
   </g:MenuItem>
   <g:MenuItem>Piggledy
     <g:MenuBar vertical="true">
       <g:MenuItem>foo</g:MenuItem>
       <g:MenuItem>bar</g:MenuItem>
       <g:MenuItem>baz</g:MenuItem>
     </g:MenuBar>
   </g:MenuItem>
   <g:MenuItem><b>Pop!</b>
     <g:MenuBar vertical="true">
       <g:MenuItem>uno</g:MenuItem>
       <g:MenuItem>dos</g:MenuItem>
       <g:MenuItem>tres</g:MenuItem>
     </g:MenuBar>
   </g:MenuItem>
 </g:MenuBar>
 

Summary

Nested Classes
interface MenuBar.MenuBarImages This interface is deprecated. replaced by MenuBar.Resources  
interface MenuBar.Resources A ClientBundle that contains the default resources for this widget. 
[Expand]
Inherited Constants
From class com.google.gwt.user.client.ui.UIObject
Public Constructors
MenuBar()
Creates an empty horizontal menu bar.
MenuBar(boolean vertical)
Creates an empty menu bar.
MenuBar(boolean vertical, MenuBar.MenuBarImages images)
This constructor is deprecated. replaced by MenuBar(boolean, Resources)
MenuBar(boolean vertical, MenuBar.Resources resources)
Creates an empty menu bar that uses the specified ClientBundle for menu images.
MenuBar(MenuBar.MenuBarImages images)
This constructor is deprecated. replaced by MenuBar(Resources)
MenuBar(MenuBar.Resources resources)
Creates an empty horizontal menu bar that uses the specified ClientBundle for menu images.
Public Methods
HandlerRegistration addCloseHandler(CloseHandler<PopupPanel> handler)
MenuItem addItem(MenuItem item)
Adds a menu item to the bar.
MenuItem addItem(SafeHtml html, MenuBar popup)
Adds a menu item to the bar, that will open the specified menu when it is selected.
MenuItem addItem(String text, MenuBar popup)
Adds a menu item to the bar, that will open the specified menu when it is selected.
MenuItem addItem(SafeHtml html, Command cmd)
Adds a menu item to the bar containing SafeHtml, that will fire the given command when it is selected.
MenuItem addItem(String text, boolean asHTML, Command cmd)
Adds a menu item to the bar, that will fire the given command when it is selected.
MenuItem addItem(String text, boolean asHTML, MenuBar popup)
Adds a menu item to the bar, that will open the specified menu when it is selected.
MenuItem addItem(String text, Command cmd)
Adds a menu item to the bar, that will fire the given command when it is selected.
MenuItemSeparator addSeparator()
Adds a thin line to the MenuBar to separate sections of MenuItems.
MenuItemSeparator addSeparator(MenuItemSeparator separator)
Adds a thin line to the MenuBar to separate sections of MenuItems.
void clearItems()
Removes all menu items from this menu bar.
void closeAllChildren(boolean focus)
Closes this menu and all child menu popups.
void focus()
Give this MenuBar focus.
boolean getAutoOpen()
Gets whether this menu bar's child menus will open when the mouse is moved over it.
int getItemIndex(MenuItem item)
Get the index of a MenuItem.
int getSeparatorIndex(MenuItemSeparator item)
Get the index of a MenuItemSeparator.
MenuItem insertItem(MenuItem item, int beforeIndex)
Adds a menu item to the bar at a specific index.
MenuItemSeparator insertSeparator(MenuItemSeparator separator, int beforeIndex)
Adds a thin line to the MenuBar to separate sections of MenuItems at the specified index.
MenuItemSeparator insertSeparator(int beforeIndex)
Adds a thin line to the MenuBar to separate sections of MenuItems at the specified index.
boolean isAnimationEnabled()
Returns true if animations are enabled, false if not.
boolean isFocusOnHoverEnabled()
Check whether or not this widget will steal keyboard focus when the mouse hovers over it.
void moveSelectionDown()
Moves the menu selection down to the next item.
void moveSelectionUp()
Moves the menu selection up to the previous item.
void onBrowserEvent(Event event)
Fired whenever a browser event is received.
void onPopupClosed(PopupPanel sender, boolean autoClosed)
This method is deprecated. Use addCloseHandler(CloseHandler) instead
void removeItem(MenuItem item)
Removes the specified menu item from the bar.
void removeSeparator(MenuItemSeparator separator)
Removes the specified MenuItemSeparator from the bar.
void selectItem(MenuItem item)
Select the given MenuItem, which must be a direct child of this MenuBar.
void setAnimationEnabled(boolean enable)
Enable or disable animations.
void setAutoOpen(boolean autoOpen)
Sets whether this menu bar's child menus will open when the mouse is moved over it.
void setFocusOnHoverEnabled(boolean enabled)
Enable or disable auto focus when the mouse hovers over the MenuBar.
Protected Methods
List<MenuItem> getItems()
Returns a list containing the MenuItem objects in the menu bar.
MenuItem getSelectedItem()
Returns the MenuItem that is currently selected (highlighted) by the user.
void onDetach()

This method is called when a widget is detached from the browser's document.

void onEnsureDebugId(String baseID)
Affected Elements:
  • -item# = the MenuItem at the specified index.
[Expand]
Inherited Methods
From class com.google.gwt.user.client.ui.Widget
From class com.google.gwt.user.client.ui.UIObject
From class java.lang.Object
From interface com.google.gwt.event.logical.shared.HasAttachHandlers
From interface com.google.gwt.event.logical.shared.HasCloseHandlers
From interface com.google.gwt.event.shared.HasHandlers
From interface com.google.gwt.user.client.EventListener
From interface com.google.gwt.user.client.ui.HasAnimation
From interface com.google.gwt.user.client.ui.IsWidget
From interface com.google.gwt.user.client.ui.PopupListener

Public Constructors

public MenuBar ()

Creates an empty horizontal menu bar.

public MenuBar (boolean vertical)

Creates an empty menu bar.

Parameters
vertical true to orient the menu bar vertically

public MenuBar (boolean vertical, MenuBar.MenuBarImages images)

This constructor is deprecated.
replaced by MenuBar(boolean, Resources)

Creates an empty menu bar that uses the specified image bundle for menu images.

Parameters
vertical true to orient the menu bar vertically
images a bundle that provides images for this menu

public MenuBar (boolean vertical, MenuBar.Resources resources)

Creates an empty menu bar that uses the specified ClientBundle for menu images.

Parameters
vertical true to orient the menu bar vertically
resources a bundle that provides images for this menu

public MenuBar (MenuBar.MenuBarImages images)

This constructor is deprecated.
replaced by MenuBar(Resources)

Creates an empty horizontal menu bar that uses the specified image bundle for menu images.

Parameters
images a bundle that provides images for this menu

public MenuBar (MenuBar.Resources resources)

Creates an empty horizontal menu bar that uses the specified ClientBundle for menu images.

Parameters
resources a bundle that provides images for this menu

Public Methods

public HandlerRegistration addCloseHandler (CloseHandler<PopupPanel> handler)

public MenuItem addItem (MenuItem item)

Adds a menu item to the bar.

Parameters
item the item to be added
Returns

public MenuItem addItem (SafeHtml html, MenuBar popup)

Adds a menu item to the bar, that will open the specified menu when it is selected.

Parameters
html the item's html text
popup the menu to be cascaded from it
Returns

public MenuItem addItem (String text, MenuBar popup)

Adds a menu item to the bar, that will open the specified menu when it is selected.

Parameters
text the item's text
popup the menu to be cascaded from it
Returns

public MenuItem addItem (SafeHtml html, Command cmd)

Adds a menu item to the bar containing SafeHtml, that will fire the given command when it is selected.

Parameters
html the item's html text
cmd the command to be fired
Returns

public MenuItem addItem (String text, boolean asHTML, Command cmd)

Adds a menu item to the bar, that will fire the given command when it is selected.

Parameters
text the item's text
asHTML true to treat the specified text as html
cmd the command to be fired
Returns

public MenuItem addItem (String text, boolean asHTML, MenuBar popup)

Adds a menu item to the bar, that will open the specified menu when it is selected.

Parameters
text the item's text
asHTML true to treat the specified text as html
popup the menu to be cascaded from it
Returns

public MenuItem addItem (String text, Command cmd)

Adds a menu item to the bar, that will fire the given command when it is selected.

Parameters
text the item's text
cmd the command to be fired
Returns

public MenuItemSeparator addSeparator ()

Adds a thin line to the MenuBar to separate sections of MenuItems.

Returns

public MenuItemSeparator addSeparator (MenuItemSeparator separator)

Adds a thin line to the MenuBar to separate sections of MenuItems.

Parameters
separator the MenuItemSeparator to be added
Returns

public void clearItems ()

Removes all menu items from this menu bar.

public void closeAllChildren (boolean focus)

Closes this menu and all child menu popups.

Parameters
focus true to move focus to the parent

public void focus ()

Give this MenuBar focus.

public boolean getAutoOpen ()

Gets whether this menu bar's child menus will open when the mouse is moved over it.

Returns
  • true if child menus will auto-open

public int getItemIndex (MenuItem item)

Get the index of a MenuItem.

Returns
  • the index of the item, or -1 if it is not contained by this MenuBar

public int getSeparatorIndex (MenuItemSeparator item)

Get the index of a MenuItemSeparator.

Returns
  • the index of the separator, or -1 if it is not contained by this MenuBar

public MenuItem insertItem (MenuItem item, int beforeIndex)

Adds a menu item to the bar at a specific index.

Parameters
item the item to be inserted
beforeIndex the index where the item should be inserted
Returns
Throws
IndexOutOfBoundsException if beforeIndex is out of range

public MenuItemSeparator insertSeparator (MenuItemSeparator separator, int beforeIndex)

Adds a thin line to the MenuBar to separate sections of MenuItems at the specified index.

Parameters
separator the MenuItemSeparator to be inserted
beforeIndex the index where the separator should be inserted
Returns
Throws
IndexOutOfBoundsException if beforeIndex is out of range

public MenuItemSeparator insertSeparator (int beforeIndex)

Adds a thin line to the MenuBar to separate sections of MenuItems at the specified index.

Parameters
beforeIndex the index where the separator should be inserted
Returns
Throws
IndexOutOfBoundsException if beforeIndex is out of range

public boolean isAnimationEnabled ()

Returns true if animations are enabled, false if not.

public boolean isFocusOnHoverEnabled ()

Check whether or not this widget will steal keyboard focus when the mouse hovers over it.

Returns
  • true if enabled, false if disabled

public void moveSelectionDown ()

Moves the menu selection down to the next item. If there is no selection, selects the first item. If there are no items at all, does nothing.

public void moveSelectionUp ()

Moves the menu selection up to the previous item. If there is no selection, selects the first item. If there are no items at all, does nothing.

public void onBrowserEvent (Event event)

Fired whenever a browser event is received.

Parameters
event the event received

public void onPopupClosed (PopupPanel sender, boolean autoClosed)

This method is deprecated.
Use addCloseHandler(CloseHandler) instead

Closes the menu bar.

Parameters
sender popup being closed.
autoClosed true if the popup was automatically closed; false if it was closed programmatically.

public void removeItem (MenuItem item)

Removes the specified menu item from the bar.

Parameters
item the item to be removed

public void removeSeparator (MenuItemSeparator separator)

Removes the specified MenuItemSeparator from the bar.

Parameters
separator the separator to be removed

public void selectItem (MenuItem item)

Select the given MenuItem, which must be a direct child of this MenuBar.

Parameters
item the MenuItem to select, or null to clear selection

public void setAnimationEnabled (boolean enable)

Enable or disable animations.

Parameters
enable true to enable, false to disable

public void setAutoOpen (boolean autoOpen)

Sets whether this menu bar's child menus will open when the mouse is moved over it.

Parameters
autoOpen true to cause child menus to auto-open

public void setFocusOnHoverEnabled (boolean enabled)

Enable or disable auto focus when the mouse hovers over the MenuBar. This allows the MenuBar to respond to keyboard events without the user having to click on it, but it will steal focus from other elements on the page. Enabled by default.

Parameters
enabled true to enable, false to disable

Protected Methods

protected List<MenuItem> getItems ()

Returns a list containing the MenuItem objects in the menu bar. If there are no items in the menu bar, then an empty List object will be returned.

Returns
  • a list containing the MenuItem objects in the menu bar

protected MenuItem getSelectedItem ()

Returns the MenuItem that is currently selected (highlighted) by the user. If none of the items in the menu are currently selected, then null will be returned.

Returns
  • the MenuItem that is currently selected, or null if no items are currently selected

protected void onDetach ()

This method is called when a widget is detached from the browser's document. To receive notification before a Widget is removed from the document, override the onUnload() method or use addAttachHandler(AttachEvent.Handler).

It is strongly recommended that you override onUnload() or doDetachChildren() instead of this method to avoid inconsistencies between logical and physical attachment states.

Subclasses that override this method must call super.onDetach() to ensure that the Widget has been detached from the underlying Element. Failure to do so will result in application memory leaks due to circular references between DOM Elements and JavaScript objects.

protected void onEnsureDebugId (String baseID)

Affected Elements:

  • -item# = the MenuItem at the specified index.

Parameters
baseID the base ID used by the main element