com.vaadin.terminal.gwt.client.ui.menubar
Class VMenuBar

java.lang.Object
  extended by com.google.gwt.user.client.ui.UIObject
      extended by com.google.gwt.user.client.ui.Widget
          extended by com.google.gwt.user.client.ui.Panel
              extended by com.google.gwt.user.client.ui.SimplePanel
                  extended by com.vaadin.terminal.gwt.client.ui.SimpleFocusablePanel
                      extended by com.vaadin.terminal.gwt.client.ui.menubar.VMenuBar
All Implemented Interfaces:
com.google.gwt.event.dom.client.FocusHandler, com.google.gwt.event.dom.client.HasBlurHandlers, com.google.gwt.event.dom.client.HasFocusHandlers, com.google.gwt.event.dom.client.HasKeyDownHandlers, com.google.gwt.event.dom.client.HasKeyPressHandlers, com.google.gwt.event.dom.client.KeyDownHandler, com.google.gwt.event.dom.client.KeyPressHandler, com.google.gwt.event.logical.shared.CloseHandler<com.google.gwt.user.client.ui.PopupPanel>, com.google.gwt.event.logical.shared.HasAttachHandlers, com.google.gwt.event.shared.EventHandler, com.google.gwt.event.shared.HasHandlers, com.google.gwt.user.client.EventListener, com.google.gwt.user.client.ui.AcceptsOneWidget, com.google.gwt.user.client.ui.HasOneWidget, com.google.gwt.user.client.ui.HasVisibility, com.google.gwt.user.client.ui.HasWidgets, com.google.gwt.user.client.ui.HasWidgets.ForIsWidget, com.google.gwt.user.client.ui.IsWidget, Focusable, SubPartAware, Iterable<com.google.gwt.user.client.ui.Widget>

public class VMenuBar
extends SimpleFocusablePanel
implements com.google.gwt.event.logical.shared.CloseHandler<com.google.gwt.user.client.ui.PopupPanel>, com.google.gwt.event.dom.client.KeyPressHandler, com.google.gwt.event.dom.client.KeyDownHandler, com.google.gwt.event.dom.client.FocusHandler, SubPartAware


Nested Class Summary
static class VMenuBar.CustomMenuItem
          A class to hold information on menu items
 
Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject
com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled
 
Nested classes/interfaces inherited from interface com.google.gwt.user.client.ui.HasWidgets
com.google.gwt.user.client.ui.HasWidgets.ForIsWidget
 
Field Summary
static String ATTRIBUTE_CHECKED
           
static String ATTRIBUTE_ITEM_DESCRIPTION
           
static String ATTRIBUTE_ITEM_DISABLED
           
static String ATTRIBUTE_ITEM_ICON
           
static String ATTRIBUTE_ITEM_STYLE
           
static String CLASSNAME
          Set the CSS class name to allow styling.
protected  ApplicationConnection client
           
protected  VMenuBar collapsedRootItems
           
protected  com.google.gwt.user.client.Element containerElement
           
protected static com.google.gwt.user.client.Command emptyCommand
           
protected  VMenuBar hostReference
           
static String HTML_CONTENT_ALLOWED
           
protected  ArrayList<VMenuBar.CustomMenuItem> items
           
protected  boolean menuVisible
           
protected  VMenuBar.CustomMenuItem moreItem
           
static String OPEN_ROOT_MENU_ON_HOWER
           
protected  VMenuBar parentMenu
           
protected  VOverlay popup
           
protected  VMenuBar.CustomMenuItem selected
           
protected  boolean subMenu
          Widget fields
protected  String uidlId
          For server connections
protected  VMenuBar visibleChildMenu
           
 
Fields inherited from class com.google.gwt.user.client.ui.UIObject
DEBUG_ID_PREFIX
 
Constructor Summary
VMenuBar()
           
VMenuBar(boolean subMenu, VMenuBar parentMenu)
           
 
Method Summary
 VMenuBar.CustomMenuItem addItem(String html, com.google.gwt.user.client.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)
           
protected  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
 List<VMenuBar.CustomMenuItem> getItems()
          Returns a list of items in this menu
 VMenuBar.CustomMenuItem getMenuItemWithElement(com.google.gwt.user.client.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()
          Get the key that selects a menu item.
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(String subPart)
          Locates an element inside a component using the identifier provided in subPart.
 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)
           
 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(com.google.gwt.user.client.Event e)
           
 void onClose(com.google.gwt.event.logical.shared.CloseEvent<com.google.gwt.user.client.ui.PopupPanel> event)
          Listener method, fired when this menu is closed
protected  void onDetach()
           
 void onFocus(com.google.gwt.event.dom.client.FocusEvent event)
           
 void onKeyDown(com.google.gwt.event.dom.client.KeyDownEvent event)
           
 void onKeyPress(com.google.gwt.event.dom.client.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 showChildMenu(VMenuBar.CustomMenuItem item)
          Shows the child menu of an item.
protected  void showChildMenuAt(VMenuBar.CustomMenuItem item, int top, int left)
           
 
Methods inherited from class com.vaadin.terminal.gwt.client.ui.SimpleFocusablePanel
addBlurHandler, addFocusHandler, addKeyDownHandler, addKeyPressHandler, addKeyUpHandler, focus, setFocus, setTabIndex
 
Methods inherited from class com.google.gwt.user.client.ui.SimplePanel
add, getWidget, iterator, remove, setWidget, setWidget
 
Methods inherited from class com.google.gwt.user.client.ui.Panel
add, adopt, adopt, clear, disown, doAttachChildren, doDetachChildren, orphan, remove
 
Methods inherited from class com.google.gwt.user.client.ui.Widget
addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, fireEvent, getHandlerCount, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents
 
Methods inherited from class com.google.gwt.user.client.ui.UIObject
addStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString, unsinkEvents
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.google.gwt.event.shared.HasHandlers
fireEvent
 

Field Detail

CLASSNAME

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

See Also:
Constant Field Values

uidlId

protected String uidlId
For server connections


client

protected ApplicationConnection client

hostReference

protected final VMenuBar hostReference

moreItem

protected VMenuBar.CustomMenuItem moreItem

collapsedRootItems

protected VMenuBar collapsedRootItems

emptyCommand

protected static final com.google.gwt.user.client.Command emptyCommand

OPEN_ROOT_MENU_ON_HOWER

public static final String OPEN_ROOT_MENU_ON_HOWER
See Also:
Constant Field Values

ATTRIBUTE_CHECKED

public static final String ATTRIBUTE_CHECKED
See Also:
Constant Field Values

ATTRIBUTE_ITEM_DESCRIPTION

public static final String ATTRIBUTE_ITEM_DESCRIPTION
See Also:
Constant Field Values

ATTRIBUTE_ITEM_ICON

public static final String ATTRIBUTE_ITEM_ICON
See Also:
Constant Field Values

ATTRIBUTE_ITEM_DISABLED

public static final String ATTRIBUTE_ITEM_DISABLED
See Also:
Constant Field Values

ATTRIBUTE_ITEM_STYLE

public static final String ATTRIBUTE_ITEM_STYLE
See Also:
Constant Field Values

HTML_CONTENT_ALLOWED

public static final String HTML_CONTENT_ALLOWED
See Also:
Constant Field Values

subMenu

protected boolean subMenu
Widget fields


items

protected ArrayList<VMenuBar.CustomMenuItem> items

containerElement

protected com.google.gwt.user.client.Element containerElement

popup

protected VOverlay popup

visibleChildMenu

protected VMenuBar visibleChildMenu

menuVisible

protected boolean menuVisible

parentMenu

protected VMenuBar parentMenu

selected

protected VMenuBar.CustomMenuItem selected
Constructor Detail

VMenuBar

public VMenuBar()

VMenuBar

public VMenuBar(boolean subMenu,
                VMenuBar parentMenu)
Method Detail

onDetach

protected void onDetach()
Overrides:
onDetach in class com.google.gwt.user.client.ui.Widget

buildItemHTML

protected String buildItemHTML(UIDL item)
Build the HTML content for a menu item.

Parameters:
item -
Returns:

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 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

Overrides:
getContainerElement in class com.google.gwt.user.client.ui.SimplePanel
Returns:

addItem

public VMenuBar.CustomMenuItem addItem(String html,
                                       com.google.gwt.user.client.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(com.google.gwt.user.client.Event e)
Specified by:
onBrowserEvent in interface com.google.gwt.user.client.EventListener
Overrides:
onBrowserEvent in class com.google.gwt.user.client.ui.Widget

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<com.google.gwt.user.client.ui.PopupPanel> event)
Listener method, fired when this menu is closed

Specified by:
onClose in interface com.google.gwt.event.logical.shared.CloseHandler<com.google.gwt.user.client.ui.PopupPanel>

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(com.google.gwt.event.dom.client.KeyPressEvent event)
Specified by:
onKeyPress in interface com.google.gwt.event.dom.client.KeyPressHandler

onKeyDown

public void onKeyDown(com.google.gwt.event.dom.client.KeyDownEvent event)
Specified by:
onKeyDown in interface com.google.gwt.event.dom.client.KeyDownHandler

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

protected int getNavigationSelectKey()
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:

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(com.google.gwt.event.dom.client.FocusEvent event)
Specified by:
onFocus in interface com.google.gwt.event.dom.client.FocusHandler

getSubPartElement

public com.google.gwt.user.client.Element getSubPartElement(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 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

public VMenuBar.CustomMenuItem getMenuItemWithElement(com.google.gwt.user.client.Element element)
Get menu item with given DOM element

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


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