echopointng.ui.syncpeer
Class MenuPeer

java.lang.Object
  extended by echopointng.ui.syncpeer.AbstractEchoPointPeer
      extended by echopointng.ui.syncpeer.AbstractEchoPointContainerPeer
          extended by echopointng.ui.syncpeer.MenuItemPeer
              extended by echopointng.ui.syncpeer.MenuPeer
All Implemented Interfaces:
ActionProcessor, ComponentSynchronizePeer, DomUpdateSupport

public class MenuPeer
extends MenuItemPeer

MenuPeer is the peer for Menu


Field Summary
 
Fields inherited from class echopointng.ui.syncpeer.MenuItemPeer
MENU_ITEM_SERVICE
 
Fields inherited from class echopointng.ui.syncpeer.AbstractEchoPointPeer
DEFAULT_CONTAINER_TAG, partialUpdateManager
 
Fields inherited from interface nextapp.echo2.webcontainer.ActionProcessor
ACTION_NAME, ACTION_VALUE
 
Constructor Summary
MenuPeer()
           
 
Method Summary
protected  void createComponentBoxInitDirective(RenderingContext rc, java.lang.String componentBoxId)
          Renders a directive to the outgoing ServerMessage to initalising the state of a Menu's component box
 java.lang.String getContainerId(Component child)
          Returns an identifier in the form "parentId_contains_childId".
 void renderDispose(RenderContext rc, ServerComponentUpdate update, Component component)
          Removes any render state that is associated with the component.
 void renderHtml(RenderingContext rc, org.w3c.dom.Node parentNode, Component component)
          This is the rendering method you must implement if you are to use AbstractEchoPointPeer.
protected  void renderInComponentBox(RenderingContext rc, org.w3c.dom.Element parentE, Component child, int componentBoxCount)
          Renders a box element around a non MenuItem component child
 void renderMenu(RenderingContext rc, org.w3c.dom.Node parentNode, Component component, Style fallbackStyle)
          This render the Menu that is "floating" on the page, and acts as both a menu item and floating menu box
protected  org.w3c.dom.Element renderMenuBox(RenderingContext rc, Component component, Style fallbackStyle)
           
 void renderRootMenu(RenderingContext rc, org.w3c.dom.Node parentNode, Component component, Style fallbackStyle)
          This render the Menu that is "fixed" to the page and not floating like its parent
 boolean renderUpdate(RenderContext rc, ServerComponentUpdate update, java.lang.String targetId)
          This looks for children with updated layour data or updated properties on the peer's component and if there are any, it removes and redraws the entire peer otherwise it just replaces the children and the redraws them.
 
Methods inherited from class echopointng.ui.syncpeer.MenuItemPeer
convertIconTextPositionToOrientation, createMenuItemInitDirective, processAction, renderAsMenuItem, renderCellIcon, renderCellText, renderDisposeDirective
 
Methods inherited from class echopointng.ui.syncpeer.AbstractEchoPointPeer
disposeRenderState, renderAdd, renderHtml, renderReplaceableChild, renderUpdateAddChildren, renderUpdateBaseImpl, renderUpdateRemoveChildren, retreiveRenderState, storeRenderState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MenuPeer

public MenuPeer()
Method Detail

getContainerId

public java.lang.String getContainerId(Component child)
Description copied from class: AbstractEchoPointContainerPeer
Returns an identifier in the form "parentId_contains_childId".

Specified by:
getContainerId in interface ComponentSynchronizePeer
Overrides:
getContainerId in class MenuItemPeer
Parameters:
child - a Component whose parent is of the type synchronized by this peer object.
Returns:
the id of the element which should contain the child component's rendered HTML.
See Also:
nextapp.echo2.webcontainer.SynchronizePeer#getContainerId(nextapp.echo2.app.Component)

renderUpdate

public boolean renderUpdate(RenderContext rc,
                            ServerComponentUpdate update,
                            java.lang.String targetId)
This looks for children with updated layour data or updated properties on the peer's component and if there are any, it removes and redraws the entire peer otherwise it just replaces the children and the redraws them.

Specified by:
renderUpdate in interface ComponentSynchronizePeer
Overrides:
renderUpdate in class AbstractEchoPointContainerPeer
Parameters:
rc - the relevant RenderContext
update - the ServerComponentUpdate for which this operation is being performed
targetId - the id of the HTML element inside of which the components HTML code should be rendered.
Returns:
true if updates to descendants should NOT be performed
See Also:
nextapp.echo2.webcontainer.SynchronizePeer#renderUpdate(nextapp.echo2.webcontainer.RenderContext, nextapp.echo2.app.update.ServerComponentUpdate, java.lang.String)

renderDispose

public void renderDispose(RenderContext rc,
                          ServerComponentUpdate update,
                          Component component)
Description copied from class: AbstractEchoPointPeer
Removes any render state that is associated with the component.

Remember to call super.renderDispose() if you overrride this method.

Specified by:
renderDispose in interface ComponentSynchronizePeer
Overrides:
renderDispose in class MenuItemPeer
Parameters:
rc - the relevant RenderContext
update - the ServerComponentUpdate for which this operation is being performed
See Also:
AbstractEchoPointPeer.renderDispose(nextapp.echo2.webcontainer.RenderContext, nextapp.echo2.app.update.ServerComponentUpdate, nextapp.echo2.app.Component)

renderHtml

public void renderHtml(RenderingContext rc,
                       org.w3c.dom.Node parentNode,
                       Component component)
Description copied from class: AbstractEchoPointPeer
This is the rendering method you must implement if you are to use AbstractEchoPointPeer.

Its a simpler wrapper for the standard one but provides some neato setup services that would otherwise be repeated over and over again.

Note the use of RenderingContext object instead of the standard Echo RenderContext as this provides more rich code facilities.

Overrides:
renderHtml in class MenuItemPeer
Parameters:
rc - - the RenderingContext to use
parentNode - - the parent Node to put content into
component - - the component in question
See Also:
AbstractEchoPointPeer.renderHtml(echopointng.ui.util.RenderingContext, Node, nextapp.echo2.app.Component)

renderRootMenu

public void renderRootMenu(RenderingContext rc,
                           org.w3c.dom.Node parentNode,
                           Component component,
                           Style fallbackStyle)
This render the Menu that is "fixed" to the page and not floating like its parent


renderMenu

public void renderMenu(RenderingContext rc,
                       org.w3c.dom.Node parentNode,
                       Component component,
                       Style fallbackStyle)
This render the Menu that is "floating" on the page, and acts as both a menu item and floating menu box


renderMenuBox

protected org.w3c.dom.Element renderMenuBox(RenderingContext rc,
                                            Component component,
                                            Style fallbackStyle)

renderInComponentBox

protected void renderInComponentBox(RenderingContext rc,
                                    org.w3c.dom.Element parentE,
                                    Component child,
                                    int componentBoxCount)
Renders a box element around a non MenuItem component child


createComponentBoxInitDirective

protected void createComponentBoxInitDirective(RenderingContext rc,
                                               java.lang.String componentBoxId)
Renders a directive to the outgoing ServerMessage to initalising the state of a Menu's component box