echopointng.ui.syncpeer
Class ButtonExPeer

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

public class ButtonExPeer
extends AbstractEchoPointPeer
implements ActionProcessor

ButtonExPeer is a peer for ButtonEx


Field Summary
static Service BUTTON_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
ButtonExPeer()
           
 
Method Summary
protected  int convertIconTextPositionToOrientation(Alignment alignment, Component component)
           
 java.lang.String getContainerId(Component child)
          Returns an identifier in the form "parentId_contains_childId".
protected  org.w3c.dom.Element getTopLevelButtonElement(RenderingContext rc, ButtonEx button, Style fallbackStyle)
          Called to return the top level Element to be used around the rendered ButtonEx
 void processAction(ContainerInstance ci, Component component, org.w3c.dom.Element actionElement)
          Notifies the ComponentSynchronizePeer that a client action has occurred.
protected  void renderButtonContent(RenderingContext rc, org.w3c.dom.Element buttonContainerElement, ButtonEx button, Style fallbackStyle)
          Renders the content of the button, i.e., its text, icon, and/or state icon.
protected  void renderCellIcon(TriCellTable tct, org.w3c.dom.Element iconElement, int cellIndex, Style fallbackStyle)
          Renders the content of the TriCellTable cell which contains the button's icon.
protected  void renderCellText(RenderingContext rc, TriCellTable tct, org.w3c.dom.Text textNode, ButtonEx button, Style fallbackStyle)
          Renders the content of the TriCellTable cell which contains the button's text.
 void renderDispose(RenderContext rc, ServerComponentUpdate update, Component component)
          Removes any render state that is associated with the component.
protected  void renderEventSupport(RenderingContext rc, ButtonEx button, boolean addRolloverListener)
          Called to add the event support to the ButtonEx.
 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  boolean renderRolloverStyleSupport(RenderingContext rc, ButtonEx button, Style fallbackStyle)
          Called to render the rollover style support required for this ButtonEx.
protected  CssStyle renderTopLevelStyleSupport(RenderingContext rc, ButtonEx button, Style fallbackStyle)
          Called to render the CssStyle for the top level ButtonEx element
 boolean renderUpdate(RenderContext rc, ServerComponentUpdate update, java.lang.String targetId)
          This method ends up calling renderUpdateBaseImpl(rc, update, targetId, fullReplace) method with fullReplace as true.
 
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

BUTTON_SERVICE

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

Constructor Detail

ButtonExPeer

public ButtonExPeer()
Method Detail

getContainerId

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

Specified by:
getContainerId in interface ComponentSynchronizePeer
Overrides:
getContainerId in class AbstractEchoPointPeer
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:
nextapp.echo2.webcontainer.SynchronizePeer#renderDispose(nextapp.echo2.webcontainer.RenderContext, nextapp.echo2.app.update.ServerComponentUpdate, nextapp.echo2.app.Component)

renderUpdate

public boolean renderUpdate(RenderContext rc,
                            ServerComponentUpdate update,
                            java.lang.String targetId)
Description copied from class: AbstractEchoPointPeer
This method ends up calling renderUpdateBaseImpl(rc, update, targetId, fullReplace) method with fullReplace as true. In other words by default it does coarse grain replacement of children.

Specified by:
renderUpdate in interface ComponentSynchronizePeer
Overrides:
renderUpdate 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 inside of which the components HTML code should be rendered.
Returns:
true if updates to descendants should NOT be performed
See Also:
AbstractEchoPointPeer.renderUpdate(nextapp.echo2.webcontainer.RenderContext, nextapp.echo2.app.update.ServerComponentUpdate, java.lang.String)

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)

getTopLevelButtonElement

protected org.w3c.dom.Element getTopLevelButtonElement(RenderingContext rc,
                                                       ButtonEx button,
                                                       Style fallbackStyle)
Called to return the top level Element to be used around the rendered ButtonEx


renderTopLevelStyleSupport

protected CssStyle renderTopLevelStyleSupport(RenderingContext rc,
                                              ButtonEx button,
                                              Style fallbackStyle)
Called to render the CssStyle for the top level ButtonEx element


renderRolloverStyleSupport

protected boolean renderRolloverStyleSupport(RenderingContext rc,
                                             ButtonEx button,
                                             Style fallbackStyle)
Called to render the rollover style support required for this ButtonEx. It should return true if rollover support of some kind was added.


renderEventSupport

protected void renderEventSupport(RenderingContext rc,
                                  ButtonEx button,
                                  boolean addRolloverListener)
Called to add the event support to the ButtonEx. If addRolloverListener is true then rollover support has been previously added.

Parameters:
rc - - the RenderingContext in place
button - - the current button
addRolloverListener - - the result of the renderRolloverStyleSupport() method call

renderButtonContent

protected void renderButtonContent(RenderingContext rc,
                                   org.w3c.dom.Element buttonContainerElement,
                                   ButtonEx button,
                                   Style fallbackStyle)
Renders the content of the button, i.e., its text, icon, and/or state icon.

Parameters:
rc - the relevant RenderingContext
buttonContainerElement - the Element which will contain the content
button - the ButtonEx being rendered

renderCellIcon

protected void renderCellIcon(TriCellTable tct,
                              org.w3c.dom.Element iconElement,
                              int cellIndex,
                              Style fallbackStyle)
Renders the content of the TriCellTable cell which contains the button'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,
                              TriCellTable tct,
                              org.w3c.dom.Text textNode,
                              ButtonEx button,
                              Style fallbackStyle)
Renders the content of the TriCellTable cell which contains the button's text. Text is always rendered in cell #0 of the table.

Parameters:
tct - the TriCellTable to update
textNode - the text
button - the ButtonEx being rendered

convertIconTextPositionToOrientation

protected int convertIconTextPositionToOrientation(Alignment alignment,
                                                   Component component)