echopointng.ui.syncpeer
Class MenuItemPeer

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

public class MenuItemPeer
extends AbstractEchoPointContainerPeer
implements ActionProcessor

MenuItemPeer is the peer for MenuItem


Field Summary
static Service MENU_ITEM_SERVICE
          Service to provide supporting JavaScript library.
 
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
MenuItemPeer()
           
 
Method Summary
protected  int convertIconTextPositionToOrientation(Alignment alignment, Component component)
          Converts Alignment values into TriCellTable values
protected  void createMenuItemInitDirective(RenderingContext rc, Component component, Style fallbackStyle)
          Renders a directive to the outgoing ServerMessage to initialize the state of a MenuItem, performing tasks such as registering event listeners on the client and creating the EPMI JS object.
 java.lang.String getContainerId(Component child)
          Returns an identifier in the form "parentId_contains_childId".
 void processAction(ContainerInstance ci, Component component, org.w3c.dom.Element actionElement)
          Notifies the ComponentSynchronizePeer that a client action has occurred.
 org.w3c.dom.Element renderAsMenuItem(RenderingContext rc, Component component)
          This will render a MenuItem as, well a MenuItem.
protected  void renderCellIcon(TriCellTable tct, org.w3c.dom.Element iconElement, int cellIndex)
          Renders the content of the TriCellTable cell which contains the menuItem's icon.
protected  void renderCellText(RenderingContext rc, TriCellTable tct, org.w3c.dom.Text textNode, Component component, int cellIndex, Style fallbackStyle)
          Renders the content of the TriCellTable cell which contains the menuItem's text.
 void renderDispose(RenderContext rc, ServerComponentUpdate update, Component component)
          Removes any render state that is associated with the component.
protected  void renderDisposeDirective(ServerMessage serverMessage, java.lang.String elementId)
          Renders a directive to the outgoing ServerMessage to dispose the state of a MenuItem, performing tasks such as deregistering event listeners on the client and deleting its JS object.
 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.
 
Methods inherited from class echopointng.ui.syncpeer.AbstractEchoPointContainerPeer
renderUpdate
 
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
 

Field Detail

MENU_ITEM_SERVICE

public static final Service MENU_ITEM_SERVICE
Service to provide supporting JavaScript library.

Constructor Detail

MenuItemPeer

public MenuItemPeer()
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 AbstractEchoPointContainerPeer
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)

processAction

public void processAction(ContainerInstance ci,
                          Component component,
                          org.w3c.dom.Element actionElement)
Description copied from interface: ActionProcessor
Notifies the ComponentSynchronizePeer that a client action has occurred.

Specified by:
processAction in interface ActionProcessor
Parameters:
ci - the relevant ContainerInstance
component - the target Component
actionElement - the XML element describing the action (the name and value of the action may be obtained by querying the ACTION_NAME and ACTION_VALUE attribute values.
See Also:
ActionProcessor.processAction(nextapp.echo2.webcontainer.ContainerInstance, nextapp.echo2.app.Component, org.w3c.dom.Element)

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

Specified by:
renderHtml in class AbstractEchoPointPeer
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)

renderAsMenuItem

public org.w3c.dom.Element renderAsMenuItem(RenderingContext rc,
                                            Component component)
This will render a MenuItem as, well a MenuItem. It is designed to be called when rendering a Menu as well as a standard MenuItem.

This returns the top level element that is rendered


renderCellIcon

protected void renderCellIcon(TriCellTable tct,
                              org.w3c.dom.Element iconElement,
                              int cellIndex)
Renders the content of the TriCellTable cell which contains the menuItem's icon.


renderCellText

protected void renderCellText(RenderingContext rc,
                              TriCellTable tct,
                              org.w3c.dom.Text textNode,
                              Component component,
                              int cellIndex,
                              Style fallbackStyle)
Renders the content of the TriCellTable cell which contains the menuItem's text. Text is always rendered in cell #0 of the table.


convertIconTextPositionToOrientation

protected int convertIconTextPositionToOrientation(Alignment alignment,
                                                   Component component)
Converts Alignment values into TriCellTable values


createMenuItemInitDirective

protected void createMenuItemInitDirective(RenderingContext rc,
                                           Component component,
                                           Style fallbackStyle)
Renders a directive to the outgoing ServerMessage to initialize the state of a MenuItem, performing tasks such as registering event listeners on the client and creating the EPMI JS object.


renderDisposeDirective

protected void renderDisposeDirective(ServerMessage serverMessage,
                                      java.lang.String elementId)
Renders a directive to the outgoing ServerMessage to dispose the state of a MenuItem, performing tasks such as deregistering event listeners on the client and deleting its JS object.