echopointng.ui.syncpeer
Class LabelExPeer

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

public class LabelExPeer
extends AbstractEchoPointContainerPeer
implements ActionProcessor, PropertyUpdateProcessor

LabelExPeer is a peer for LabelEx


Field Summary
static Service LABEL_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
 
Fields inherited from interface nextapp.echo2.webcontainer.PropertyUpdateProcessor
PROPERTY_NAME, PROPERTY_VALUE
 
Constructor Summary
LabelExPeer()
           
 
Method Summary
protected  int convertIconTextPositionToOrientation(Alignment alignment, Component component)
           
protected  void createDisposeDirective(ServerMessage serverMessage, Component component)
           
protected  void createInitDirective(RenderingContext rc, Component component, Style fallbackStyle)
           
 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.
 void processPropertyUpdate(ContainerInstance ci, Component component, org.w3c.dom.Element propertyElement)
          Notifies the ComponentSynchronizePeer that a client property update has occurred.
 void renderAdd(RenderContext rc, ServerComponentUpdate update, java.lang.String targetId, Component component)
          This calls renderHtml() to render the entire peer output.
protected  void renderCellIcon(TriCellTable tct, org.w3c.dom.Element iconElement, int cellIndex)
          Renders the content of the TriCellTable cell which contains the label's icon.
protected  void renderCellText(RenderingContext rc, org.w3c.dom.Element parentE, org.w3c.dom.Node textNode, Component label)
          Renders the content of the TriCellTable cell which contains the label's text.
 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 parent, Component component)
          This is the rendering method you must implement if you are to use AbstractEchoPointPeer.
protected  org.w3c.dom.Element renderLabelContent(RenderingContext rc, Component component, Style fallbackStyle)
          Renders the content of the LabelEx, i.e., its text, icon, and/or state icon.
protected  CssRolloverStyleEx renderTopLevelStyleSupport(RenderingContext rc, Component component, Style fallbackStyle, org.w3c.dom.Element itemXML)
          Called to render the CssStyle for the top level LabelEx element.
 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.AbstractEchoPointPeer
disposeRenderState, 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

LABEL_SERVICE

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

Constructor Detail

LabelExPeer

public LabelExPeer()
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)

processPropertyUpdate

public void processPropertyUpdate(ContainerInstance ci,
                                  Component component,
                                  org.w3c.dom.Element propertyElement)
Description copied from interface: PropertyUpdateProcessor
Notifies the ComponentSynchronizePeer that a client property update has occurred.

Specified by:
processPropertyUpdate in interface PropertyUpdateProcessor
Parameters:
ci - the relevant ContainerInstance
component - the target Component
propertyElement - the XML element describing the property update (the name and value of the changed property may be obtained by querying the PROPERTY_NAME and PROPERTY_VALUE attribute values.
See Also:
PropertyUpdateProcessor.processPropertyUpdate(nextapp.echo2.webcontainer.ContainerInstance, nextapp.echo2.app.Component, org.w3c.dom.Element)

renderAdd

public void renderAdd(RenderContext rc,
                      ServerComponentUpdate update,
                      java.lang.String targetId,
                      Component component)
Description copied from class: AbstractEchoPointPeer
This calls renderHtml() to render the entire peer output.

Specified by:
renderAdd in interface ComponentSynchronizePeer
Overrides:
renderAdd in class AbstractEchoPointPeer
Parameters:
rc - the relevant RenderContext
update - the ServerComponentUpdate for which this operation is being performed
targetId - the id of the HTML element in which the component's HTML output should be rendered
component - the component to be rendered (this component must be of a type supported by this synchronization peer).
See Also:
AbstractEchoPointPeer.renderAdd(nextapp.echo2.webcontainer.RenderContext, nextapp.echo2.app.update.ServerComponentUpdate, java.lang.String, nextapp.echo2.app.Component)

renderUpdate

public boolean renderUpdate(RenderContext rc,
                            ServerComponentUpdate update,
                            java.lang.String targetId)
Description copied from class: AbstractEchoPointContainerPeer
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. This method ends up calling the ends renderUpdate(rc, update, targetId, fullReplace) method with an appropriate value for fullReplace.

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:
AbstractEchoPointContainerPeer.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 AbstractEchoPointPeer
Parameters:
rc - the relevant RenderContext
update - the ServerComponentUpdate for which this operation is being performed
See Also:
nextapp.echo2.webcontainer.SynchronizePeer#renderDispose(nextapp.echo2.webcontainer.RenderContext, nextapp.echo2.app.update.ServerComponentUpdate, nextapp.echo2.app.Component)

createInitDirective

protected void createInitDirective(RenderingContext rc,
                                   Component component,
                                   Style fallbackStyle)

createDisposeDirective

protected void createDisposeDirective(ServerMessage serverMessage,
                                      Component component)

renderHtml

public void renderHtml(RenderingContext rc,
                       org.w3c.dom.Node parent,
                       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
parent - - 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)

renderTopLevelStyleSupport

protected CssRolloverStyleEx renderTopLevelStyleSupport(RenderingContext rc,
                                                        Component component,
                                                        Style fallbackStyle,
                                                        org.w3c.dom.Element itemXML)
Called to render the CssStyle for the top level LabelEx element. If the itemXML parameter is present then it also fills out the styles for rollovers etc.. into that Element.


renderLabelContent

protected org.w3c.dom.Element renderLabelContent(RenderingContext rc,
                                                 Component component,
                                                 Style fallbackStyle)
Renders the content of the LabelEx, i.e., its text, icon, and/or state icon.

Parameters:
rc - the relevant RenderingContext
component - the LabelEx being rendered

renderCellIcon

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

Parameters:
tct - the TriCellTable to update
textNode - the text
cellIndex - the index of the cell in the TriCellTable that should contain the icon

renderCellText

protected void renderCellText(RenderingContext rc,
                              org.w3c.dom.Element parentE,
                              org.w3c.dom.Node textNode,
                              Component label)
Renders the content of the TriCellTable cell which contains the label's text. Text is always rendered in cell #0 of the table.


convertIconTextPositionToOrientation

protected int convertIconTextPositionToOrientation(Alignment alignment,
                                                   Component component)