com.vaadin.client.ui
Class VMenuBar

java.lang.Object
  extended by SimplePanel
      extended by com.vaadin.client.ui.SimpleFocusablePanel
          extended by com.vaadin.client.ui.VMenuBar
All Implemented Interfaces:
com.google.gwt.event.logical.shared.CloseHandler<PopupPanel>, com.google.gwt.event.shared.EventHandler, Focusable, SubPartAware

public class VMenuBar
extends SimpleFocusablePanel
implements com.google.gwt.event.logical.shared.CloseHandler<PopupPanel>, SubPartAware


Nested Class Summary
static class VMenuBar.CustomMenuItem
          A class to hold information on menu items
 
Field Summary
static java.lang.String CLASSNAME
          Set the CSS class name to allow styling.
 ApplicationConnection client
          For internal use only.
 VMenuBar collapsedRootItems
          For internal use only.
protected  Element containerElement
           
static Command emptyCommand
          An empty command to be used when the item has no command associated
 boolean enabled
          For internal use only.
 VMenuBar hostReference
          For internal use only.
 boolean htmlContentAllowed
          For internal use only.
protected  java.util.ArrayList<VMenuBar.CustomMenuItem> items
           
protected  boolean menuVisible
           
 VMenuBar.CustomMenuItem moreItem
          For internal use only.
 boolean openRootOnHover
          For internal use only.
protected  VMenuBar parentMenu
           
protected  VOverlay popup
           
protected  VMenuBar.CustomMenuItem selected
           
protected  boolean subMenu
          Widget fields
static java.lang.String SUBMENU_CLASSNAME_PREFIX
           
 java.lang.String uidlId
          For server connections.
protected  VMenuBar visibleChildMenu
           
 
Constructor Summary
VMenuBar()
           
VMenuBar(boolean subMenu, VMenuBar parentMenu)
           
 
Method Summary
 VMenuBar.CustomMenuItem addItem(java.lang.String html, Command cmd)
          Add a new item to this menu
 void addItem(VMenuBar.CustomMenuItem item)
          Add a new item to this menu
 void addItem(VMenuBar.CustomMenuItem item, int index)
           
 java.lang.String buildItemHTML(UIDL item)
          Build the HTML content for a menu item.
 void clearItems()
          Remove all the items in this menu
protected  int getCloseMenuKey()
          Get the key that closes the menu.
 com.google.gwt.user.client.Element getContainerElement()
          Returns the containing element of the menu
 java.util.List<VMenuBar.CustomMenuItem> getItems()
          Returns a list of items in this menu
 VMenuBar.CustomMenuItem getMenuItemWithElement(com.google.gwt.user.client.Element element)
          Deprecated. As of 7.2, call or override getMenuItemWithElement(Element) instead
 VMenuBar.CustomMenuItem getMenuItemWithElement(Element element)
          Get menu item with given DOM element
protected  int getNavigationDownKey()
          Get the key that moves the selection downwards.
protected  int getNavigationLeftKey()
          Get the key that moves the selection left.
protected  int getNavigationRightKey()
          Get the key that moves the selection right.
protected  int getNavigationSelectKey()
          Deprecated. use isNavigationSelectKey(int) instead
protected  int getNavigationUpKey()
          Get the key that moves the selection upwards.
 VMenuBar getParentMenu()
          Returns the parent menu of this menu, or null if this is the top-level menu
 VMenuBar.CustomMenuItem getSelected()
          Returns the currently selected item of this menu, or null if nothing is selected
 com.google.gwt.user.client.Element getSubPartElement(java.lang.String subPart)
          Locates an element inside a component using the identifier provided in subPart.
 java.lang.String getSubPartName(com.google.gwt.user.client.Element subElement)
          Provides an identifier that identifies the element within the component.
 boolean handleNavigation(int keycode, boolean ctrl, boolean shift)
          Handles the keyboard events handled by the MenuBar
 void hideChildMenu(VMenuBar.CustomMenuItem item)
          Hides the submenu of an item
 void hideChildren()
          Recursively hide all child menus
 void hideParents(boolean autoClosed)
          Recursively hide all parent menus
 void iLayout()
           
 void iLayout(boolean iconLoadEvent)
           
protected  boolean isNavigationSelectKey(int keycode)
          Checks whether key code selects a menu item.
 void itemClick(VMenuBar.CustomMenuItem item)
          When an item is clicked
 void itemOut(VMenuBar.CustomMenuItem item)
          When the mouse is moved away from an item
 void itemOver(VMenuBar.CustomMenuItem item)
          When the user hovers the mouse over the item
 void onBrowserEvent(Event e)
           
 void onClose(com.google.gwt.event.logical.shared.CloseEvent<PopupPanel> event)
          Listener method, fired when this menu is closed
protected  void onDetach()
           
 void onFocus(FocusEvent event)
           
 void onKeyDown(KeyDownEvent event)
           
 void onKeyPress(KeyPressEvent event)
           
 void onMenuClick(int clickedItemId)
          This is called by the items in the menu and it communicates the information to the server
 void onShow()
          When the menu is shown.
 void removeItem(VMenuBar.CustomMenuItem item)
          Remove the given item from this menu
 void setParentMenu(VMenuBar parent)
          Set the parent menu of this menu
 void setSelected(VMenuBar.CustomMenuItem item)
          Set the currently selected item of this menu
 void setStyleName(java.lang.String style)
           
 void setStylePrimaryName(java.lang.String style)
           
 void showChildMenu(VMenuBar.CustomMenuItem item)
          Shows the child menu of an item.
protected  void showChildMenuAt(VMenuBar.CustomMenuItem item, int top, int left)
           
protected  void updateStyleNames()
           
 
Methods inherited from class com.vaadin.client.ui.SimpleFocusablePanel
addBlurHandler, addFocusHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, focus, setFocus, setTabIndex
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.google.gwt.event.logical.shared.CloseHandler
onClose
 

Field Detail

CLASSNAME

public static final java.lang.String CLASSNAME
Set the CSS class name to allow styling.

See Also:
Constant Field Values

SUBMENU_CLASSNAME_PREFIX

public static final java.lang.String SUBMENU_CLASSNAME_PREFIX
See Also:
Constant Field Values

uidlId

public java.lang.String uidlId
For server connections.

For internal use only. May be removed or replaced in the future.


client

public ApplicationConnection client
For internal use only. May be removed or replaced in the future.


hostReference

public final VMenuBar hostReference
For internal use only. May be removed or replaced in the future.


moreItem

public VMenuBar.CustomMenuItem moreItem
For internal use only. May be removed or replaced in the future.


collapsedRootItems

public VMenuBar collapsedRootItems
For internal use only. May be removed or replaced in the future.


emptyCommand

public static final Command emptyCommand
An empty command to be used when the item has no command associated

For internal use only. May be removed or replaced in the future.


subMenu

protected boolean subMenu
Widget fields


items

protected java.util.ArrayList<VMenuBar.CustomMenuItem> items

containerElement

protected Element containerElement

popup

protected VOverlay popup

visibleChildMenu

protected VMenuBar visibleChildMenu

menuVisible

protected boolean menuVisible

parentMenu

protected VMenuBar parentMenu

selected

protected VMenuBar.CustomMenuItem selected

enabled

public boolean enabled
For internal use only. May be removed or replaced in the future.


openRootOnHover

public boolean openRootOnHover
For internal use only. May be removed or replaced in the future.


htmlContentAllowed

public boolean htmlContentAllowed
For internal use only. May be removed or replaced in the future.

Constructor Detail

VMenuBar

public VMenuBar()

VMenuBar

public VMenuBar(boolean subMenu,
                VMenuBar parentMenu)
Method Detail

setStyleName

public void setStyleName(java.lang.String style)

setStylePrimaryName

public void setStylePrimaryName(java.lang.String style)

updateStyleNames

protected void updateStyleNames()

onDetach

protected void onDetach()

buildItemHTML

public java.lang.String buildItemHTML(UIDL item)
Build the HTML content for a menu item.

For internal use only. May be removed or replaced in the future.


onMenuClick

public void onMenuClick(int clickedItemId)
This is called by the items in the menu and it communicates the information to the server

Parameters:
clickedItemId - id of the item that was clicked

getItems

public java.util.List<VMenuBar.CustomMenuItem> getItems()
Returns a list of items in this menu


clearItems

public void clearItems()
Remove all the items in this menu


getContainerElement

public com.google.gwt.user.client.Element getContainerElement()
Returns the containing element of the menu

Returns:

addItem

public VMenuBar.CustomMenuItem addItem(java.lang.String html,
                                       Command cmd)
Add a new item to this menu

Parameters:
html - items text
cmd - items command
Returns:
the item created

addItem

public void addItem(VMenuBar.CustomMenuItem item)
Add a new item to this menu

Parameters:
item -

addItem

public void addItem(VMenuBar.CustomMenuItem item,
                    int index)

removeItem

public void removeItem(VMenuBar.CustomMenuItem item)
Remove the given item from this menu

Parameters:
item -

onBrowserEvent

public void onBrowserEvent(Event e)

itemClick

public void itemClick(VMenuBar.CustomMenuItem item)
When an item is clicked

Parameters:
item -

itemOver

public void itemOver(VMenuBar.CustomMenuItem item)
When the user hovers the mouse over the item

Parameters:
item -

itemOut

public void itemOut(VMenuBar.CustomMenuItem item)
When the mouse is moved away from an item

Parameters:
item -

showChildMenu

public void showChildMenu(VMenuBar.CustomMenuItem item)
Shows the child menu of an item. The caller must ensure that the item has a submenu.

Parameters:
item -

showChildMenuAt

protected void showChildMenuAt(VMenuBar.CustomMenuItem item,
                               int top,
                               int left)

hideChildMenu

public void hideChildMenu(VMenuBar.CustomMenuItem item)
Hides the submenu of an item

Parameters:
item -

onShow

public void onShow()
When the menu is shown.


onClose

public void onClose(com.google.gwt.event.logical.shared.CloseEvent<PopupPanel> event)
Listener method, fired when this menu is closed


hideChildren

public void hideChildren()
Recursively hide all child menus


hideParents

public void hideParents(boolean autoClosed)
Recursively hide all parent menus


getParentMenu

public VMenuBar getParentMenu()
Returns the parent menu of this menu, or null if this is the top-level menu

Returns:

setParentMenu

public void setParentMenu(VMenuBar parent)
Set the parent menu of this menu

Parameters:
parent -

getSelected

public VMenuBar.CustomMenuItem getSelected()
Returns the currently selected item of this menu, or null if nothing is selected

Returns:

setSelected

public void setSelected(VMenuBar.CustomMenuItem item)
Set the currently selected item of this menu

Parameters:
item -

iLayout

public void iLayout()

iLayout

public void iLayout(boolean iconLoadEvent)

onKeyPress

public void onKeyPress(KeyPressEvent event)

onKeyDown

public void onKeyDown(KeyDownEvent event)

getNavigationUpKey

protected int getNavigationUpKey()
Get the key that moves the selection upwards. By default it is the up arrow key but by overriding this you can change the key to whatever you want.

Returns:
The keycode of the key

getNavigationDownKey

protected int getNavigationDownKey()
Get the key that moves the selection downwards. By default it is the down arrow key but by overriding this you can change the key to whatever you want.

Returns:
The keycode of the key

getNavigationLeftKey

protected int getNavigationLeftKey()
Get the key that moves the selection left. By default it is the left arrow key but by overriding this you can change the key to whatever you want.

Returns:
The keycode of the key

getNavigationRightKey

protected int getNavigationRightKey()
Get the key that moves the selection right. By default it is the right arrow key but by overriding this you can change the key to whatever you want.

Returns:
The keycode of the key

getNavigationSelectKey

@Deprecated
protected int getNavigationSelectKey()
Deprecated. use isNavigationSelectKey(int) instead

Get the key that selects a menu item. By default it is the Enter key but by overriding this you can change the key to whatever you want.

Returns:

isNavigationSelectKey

protected boolean isNavigationSelectKey(int keycode)
Checks whether key code selects a menu item. By default it is the Enter and Space keys but by overriding this you can change the keys to whatever you want.

Parameters:
keycode -
Returns:
true if key selects menu item
Since:
7.2

getCloseMenuKey

protected int getCloseMenuKey()
Get the key that closes the menu. By default it is the escape key but by overriding this yoy can change the key to whatever you want.

Returns:

handleNavigation

public boolean handleNavigation(int keycode,
                                boolean ctrl,
                                boolean shift)
Handles the keyboard events handled by the MenuBar

Parameters:
event - The keyboard event received
Returns:
true iff the navigation event was handled

onFocus

public void onFocus(FocusEvent event)

getSubPartElement

public com.google.gwt.user.client.Element getSubPartElement(java.lang.String subPart)
Description copied from interface: SubPartAware
Locates an element inside a component using the identifier provided in subPart. The subPart identifier is component specific and may be any string of characters, numbers, space characters and brackets.

Specified by:
getSubPartElement in interface SubPartAware
Parameters:
subPart - The identifier for the element inside the component
Returns:
The element identified by subPart or null if the element could not be found.

getSubPartName

public java.lang.String getSubPartName(com.google.gwt.user.client.Element subElement)
Description copied from interface: SubPartAware
Provides an identifier that identifies the element within the component. The subElement is a part of the component and must never be null.

Note! getSubPartElement(getSubPartName(element)) == element is not always true. A component can choose to provide a more generic identifier for any given element if the results of all interactions with subElement are the same as interactions with the element identified by the return value. For example a button can return an identifier for the root element even though a DIV inside the button was passed as subElement because interactions with the DIV and the root button element produce the same result.

Specified by:
getSubPartName in interface SubPartAware
Parameters:
subElement - The element the identifier string should uniquely identify
Returns:
An identifier that uniquely identifies subElement or null if no identifier could be provided.

getMenuItemWithElement

@Deprecated
public VMenuBar.CustomMenuItem getMenuItemWithElement(com.google.gwt.user.client.Element element)
Deprecated. As of 7.2, call or override getMenuItemWithElement(Element) instead

Get menu item with given DOM element

Parameters:
element - Element used in search
Returns:
Menu item or null if not found

getMenuItemWithElement

public VMenuBar.CustomMenuItem getMenuItemWithElement(Element element)
Get menu item with given DOM element

Parameters:
element - Element used in search
Returns:
Menu item or null if not found
Since:
7.2


Copyright © 2000-2014 Vaadin Ltd. All Rights Reserved.