org.apache.myfaces.trinidad.component
Class UIXComponentBase

java.lang.Object
  extended by javax.faces.component.UIComponent
      extended by org.apache.myfaces.trinidad.component.UIXComponent
          extended by org.apache.myfaces.trinidad.component.UIXComponentBase
All Implemented Interfaces:
StateHolder
Direct Known Subclasses:
CoreImportScript, CoreStyleSheet, HtmlBody, HtmlCellFormat, HtmlFrame, HtmlFrameBorderLayout, HtmlHead, HtmlHtml, HtmlMeta, HtmlRowLayout, HtmlScript, HtmlTableLayout, UIXChart, UIXChoose, UIXCollection, UIXColumn, UIXCommand, UIXComponentRef, UIXDecorateCollection, UIXDocument, UIXForm, UIXGo, UIXGroup, UIXMenu, UIXMessage, UIXMessages, UIXObject, UIXPanel, UIXPoll, UIXProgress, UIXReset, UIXSelectItem, UIXSelectRange, UIXShowDetail, UIXShowMany, UIXShowOne, UIXSingleStep, UIXSubform, UIXSwitcher, UIXValue

public abstract class UIXComponentBase
extends UIXComponent

Base implementation of components for all of Trinidad. UIXComponentBase offers a number of features not supplied by the standard UIComponentBase class:

FacesBean and UIXComponentBase

UIXComponentBase differs from UIXComponent most particularly in its use of FacesBeans to store all state. This offers a number of advantages:


Field Summary
static PropertyKey BINDING_KEY
           
static PropertyKey ID_KEY
           
static PropertyKey RENDERED_KEY
           
static PropertyKey RENDERER_TYPE_KEY
           
static PropertyKey TRANSIENT_KEY
           
static FacesBean.Type TYPE
           
 
Fields inherited from class javax.faces.component.UIComponent
bindings
 
Constructor Summary
UIXComponentBase()
           
UIXComponentBase(String rendererType)
           
 
Method Summary
static MethodExpression adaptMethodBinding(MethodBinding binding)
          Given a MethodBinding, create a MethodExpression that adapts it.
protected  void addAttributeChange(String attributeName, Object attributeValue)
           
 void addAttributeChangeListener(AttributeChangeListener acl)
          Adds an AttributeChangeListener.
protected  void addFacesListener(FacesListener listener)
           
 void broadcast(FacesEvent event)
           
protected  void broadcastToMethodBinding(FacesEvent event, MethodBinding method)
          Deprecated.  
protected  void broadcastToMethodExpression(FacesEvent event, MethodExpression method)
          Broadcast an event to a MethodExpression.
protected  FacesBean createFacesBean(String rendererType)
           
 void decode(FacesContext context)
           
protected  void decodeChildren(FacesContext context)
          Delegates to LifecycleRenderer, if present, otherwise calls decodeChildrenImpl.
protected  void decodeChildrenImpl(FacesContext context)
          Calls processDecodes on all facets and children of this component.
 void encodeBegin(FacesContext context)
           
 void encodeChildren(FacesContext context)
           
 void encodeEnd(FacesContext context)
           
 UIComponent findComponent(String id)
           
 MethodExpression getAttributeChangeListener()
          Gets the method binding to an AttributeChangeListener.
 AttributeChangeListener[] getAttributeChangeListeners()
          Gets the registered AttributeChangeListeners.
 Map<String,Object> getAttributes()
           
protected  FacesBean.Type getBeanType()
           
protected  boolean getBooleanProperty(PropertyKey key, boolean defaultValue)
           
 int getChildCount()
           
 List<UIComponent> getChildren()
          Create (if necessary) and return a List of the children associated with this component.
 String getClientId(FacesContext context)
           
 String getContainerClientId(FacesContext context, UIComponent child)
          Provides additional context (the target child component for which the container client ID is requested) to a naming container for constructing a client ID.
 FacesBean getFacesBean()
          Returns the FacesBean used for storing the component's state.
protected  FacesContext getFacesContext()
          Return the FacesContext instance for the current request.
protected  FacesListener[] getFacesListeners(Class clazz)
           
 UIComponent getFacet(String facetName)
           
 int getFacetCount()
          Return the number of facets.
 Iterator<String> getFacetNames()
          Returns an Iterator over the names of all facets.
 Map<String,UIComponent> getFacets()
          Create (if necessary) and return a Map of the facets associated with this component.
 Iterator<UIComponent> getFacetsAndChildren()
           
abstract  String getFamily()
           
 String getId()
          Gets the identifier for the component.
protected  int getIntProperty(PropertyKey key, int defaultValue)
           
protected  LifecycleRenderer getLifecycleRenderer(FacesContext context)
           
 UIComponent getParent()
           
protected  Object getProperty(PropertyKey key)
           
protected  PropertyKey getPropertyKey(String name)
           
protected  Renderer getRenderer(FacesContext context)
           
 String getRendererType()
           
 boolean getRendersChildren()
           
 ValueBinding getValueBinding(String name)
           
 ValueExpression getValueExpression(String name)
           
protected  boolean invokeOnChildrenComponents(FacesContext context, String clientId, ContextCallback callback)
          Convenience method to call invokeOnComponent on all of the children of a component, surrounding the invocation with calls to setup/tearDownChildrenVisitingContext.
 boolean invokeOnComponent(FacesContext context, String clientId, ContextCallback callback)
          Override to calls the hooks for setting up and tearing down the context before the children are visited.
protected  boolean invokeOnNamingContainerComponent(FacesContext context, String clientId, ContextCallback callback)
           Optimized implementation of invokeOnComponent for NamingContainers.
 boolean isRendered()
           
 boolean isTransient()
           
 void markInitialState()
           
 void processDecodes(FacesContext context)
           
 void processRestoreState(FacesContext context, Object state)
           
 Object processSaveState(FacesContext context)
           
 void processUpdates(FacesContext context)
           
 void processValidators(FacesContext context)
           
 void queueEvent(FacesEvent event)
           
 void removeAttributeChangeListener(AttributeChangeListener acl)
          Removes an AttributeChangeListener.
protected  void removeFacesListener(FacesListener listener)
           
 void restoreState(FacesContext facesContext, Object stateObj)
           
protected  boolean satisfiesPartialTrigger(FacesEvent event)
          Check if a faces event broadcast to this component should trigger the partial updates of the target listeners of this component.
 Object saveState(FacesContext context)
           
 void setAttributeChangeListener(MethodBinding mb)
          Deprecated. 
 void setAttributeChangeListener(MethodExpression mb)
          Sets a method binding to an AttributeChangeListener.
protected  void setBooleanProperty(PropertyKey key, boolean value)
           
 void setId(String id)
          Sets the identifier for the component.
protected  void setIntProperty(PropertyKey key, int value)
           
 void setParent(UIComponent parent)
          Set the parent UIComponent of this UIComponent.
protected  void setProperty(PropertyKey key, Object value)
           
 void setRendered(boolean rendered)
           
 void setRendererType(String rendererType)
           
 void setTransient(boolean newTransient)
           
 void setValueBinding(String name, ValueBinding binding)
           
 void setValueExpression(String name, ValueExpression expression)
           
 String toString()
           
protected  void updateChildren(FacesContext context)
          Delegates to LifecycleRenderer, if present, otherwise calls upateChildrenImpl.
protected  void updateChildrenImpl(FacesContext context)
           
protected  void validateChildren(FacesContext context)
          Delegates to LifecycleRenderer, if present, otherwise calls validateChildrenImpl.
protected  void validateChildrenImpl(FacesContext context)
          Calls processValidators on all facets and children of this component.
 
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponent
addPartialTarget, clearCachedClientIds, clearCachedClientIds, encodeFlattenedChild, encodeFlattenedChildren, isVisitable, partialEncodeVisit, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, processFlattenedChildren, setPartialTarget, setupChildrenVisitingContext, setupEncodingContext, setUpEncodingContext, setupVisitingContext, tearDownChildrenVisitingContext, tearDownEncodingContext, tearDownVisitingContext, visitChildren, visitTree, visitTree
 
Methods inherited from class javax.faces.component.UIComponent
encodeAll, getContainerClientId
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

TYPE

public static final FacesBean.Type TYPE

ID_KEY

public static final PropertyKey ID_KEY

RENDERED_KEY

public static final PropertyKey RENDERED_KEY

BINDING_KEY

public static final PropertyKey BINDING_KEY

TRANSIENT_KEY

public static final PropertyKey TRANSIENT_KEY

RENDERER_TYPE_KEY

public static final PropertyKey RENDERER_TYPE_KEY
Constructor Detail

UIXComponentBase

public UIXComponentBase()

UIXComponentBase

public UIXComponentBase(String rendererType)
Method Detail

createFacesBean

protected FacesBean createFacesBean(String rendererType)

getPropertyKey

protected PropertyKey getPropertyKey(String name)

getBeanType

protected FacesBean.Type getBeanType()

getFacesBean

public FacesBean getFacesBean()
Description copied from class: UIXComponent
Returns the FacesBean used for storing the component's state.

Specified by:
getFacesBean in class UIXComponent

getContainerClientId

public String getContainerClientId(FacesContext context,
                                   UIComponent child)
Description copied from class: UIXComponent
Provides additional context (the target child component for which the container client ID is requested) to a naming container for constructing a client ID. This is useful for components such as @link UIXTable and @link UIXTreeTable which need to return different container client IDs for stamped and non-stamped child components.

Specified by:
getContainerClientId in class UIXComponent
See Also:
getClientId(FacesContext context)

addAttributeChangeListener

public void addAttributeChangeListener(AttributeChangeListener acl)
Description copied from class: UIXComponent
Adds an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.

Specified by:
addAttributeChangeListener in class UIXComponent

removeAttributeChangeListener

public void removeAttributeChangeListener(AttributeChangeListener acl)
Description copied from class: UIXComponent
Removes an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.

Specified by:
removeAttributeChangeListener in class UIXComponent

getAttributeChangeListeners

public AttributeChangeListener[] getAttributeChangeListeners()
Description copied from class: UIXComponent
Gets the registered AttributeChangeListeners.

Specified by:
getAttributeChangeListeners in class UIXComponent

setAttributeChangeListener

public void setAttributeChangeListener(MethodExpression mb)
Description copied from class: UIXComponent
Sets a method binding to an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.

Specified by:
setAttributeChangeListener in class UIXComponent

setAttributeChangeListener

@Deprecated
public void setAttributeChangeListener(MethodBinding mb)
Deprecated. 


getAttributeChangeListener

public MethodExpression getAttributeChangeListener()
Description copied from class: UIXComponent
Gets the method binding to an AttributeChangeListener. Attribute change events are not delivered for any programmatic change to a property. They are only delivered when a renderer changes a property without the application's specific request. An example of an attribute change events might include the width of a column that supported client-side resizing.

Specified by:
getAttributeChangeListener in class UIXComponent

getValueExpression

public ValueExpression getValueExpression(String name)
Overrides:
getValueExpression in class UIComponent

setValueExpression

public void setValueExpression(String name,
                               ValueExpression expression)
Overrides:
setValueExpression in class UIComponent

getValueBinding

public ValueBinding getValueBinding(String name)
Specified by:
getValueBinding in class UIComponent

setValueBinding

public void setValueBinding(String name,
                            ValueBinding binding)
Specified by:
setValueBinding in class UIComponent

getAttributes

public Map<String,Object> getAttributes()
Specified by:
getAttributes in class UIComponent

getClientId

public String getClientId(FacesContext context)
Specified by:
getClientId in class UIComponent

getId

public String getId()
Gets the identifier for the component. This implementation never returns a null id.

Specified by:
getId in class UIComponent

setId

public void setId(String id)
Sets the identifier for the component. The identifier must follow a subset of the syntax allowed in HTML:

Specified by:
setId in class UIComponent

getFamily

public abstract String getFamily()
Specified by:
getFamily in class UIComponent

getParent

public UIComponent getParent()
Specified by:
getParent in class UIComponent

setParent

public void setParent(UIComponent parent)

Set the parent UIComponent of this UIComponent.

Specified by:
setParent in class UIComponent
Parameters:
parent - The new parent, or null for the root node of a component tree

isRendered

public boolean isRendered()
Specified by:
isRendered in class UIComponent

setRendered

public void setRendered(boolean rendered)
Specified by:
setRendered in class UIComponent

isTransient

public boolean isTransient()

setTransient

public void setTransient(boolean newTransient)

getRendererType

public String getRendererType()
Specified by:
getRendererType in class UIComponent

setRendererType

public void setRendererType(String rendererType)
Specified by:
setRendererType in class UIComponent

getRendersChildren

public boolean getRendersChildren()
Specified by:
getRendersChildren in class UIComponent

findComponent

public UIComponent findComponent(String id)
Specified by:
findComponent in class UIComponent

getChildren

public List<UIComponent> getChildren()

Create (if necessary) and return a List of the children associated with this component.

Specified by:
getChildren in class UIComponent

getChildCount

public int getChildCount()
Specified by:
getChildCount in class UIComponent

getFacets

public Map<String,UIComponent> getFacets()

Create (if necessary) and return a Map of the facets associated with this component.

Specified by:
getFacets in class UIComponent

getFacet

public UIComponent getFacet(String facetName)
Specified by:
getFacet in class UIComponent

getFacetNames

public Iterator<String> getFacetNames()
Returns an Iterator over the names of all facets. Unlike getFacets().keySet().iterator(), this does not require instantiating a Map if there are no facets. (Note that this is not part of the UIComponent API.)


getFacetsAndChildren

public Iterator<UIComponent> getFacetsAndChildren()
Specified by:
getFacetsAndChildren in class UIComponent

broadcast

public void broadcast(FacesEvent event)
               throws AbortProcessingException
Specified by:
broadcast in class UIComponent
Throws:
AbortProcessingException

satisfiesPartialTrigger

protected boolean satisfiesPartialTrigger(FacesEvent event)
Check if a faces event broadcast to this component should trigger the partial updates of the target listeners of this component. By default, all events trigger a partial update of the listeners.

Parameters:
event - The event to check
Returns:
true if the partial triggers should be updated by this event being broadcast

decode

public void decode(FacesContext context)
Specified by:
decode in class UIComponent

encodeBegin

public void encodeBegin(FacesContext context)
                 throws IOException
Specified by:
encodeBegin in class UIComponent
Throws:
IOException

encodeChildren

public void encodeChildren(FacesContext context)
                    throws IOException
Specified by:
encodeChildren in class UIComponent
Throws:
IOException

encodeEnd

public void encodeEnd(FacesContext context)
               throws IOException
Specified by:
encodeEnd in class UIComponent
Throws:
IOException

queueEvent

public void queueEvent(FacesEvent event)
Specified by:
queueEvent in class UIComponent

processDecodes

public void processDecodes(FacesContext context)
Specified by:
processDecodes in class UIComponent

processValidators

public void processValidators(FacesContext context)
Specified by:
processValidators in class UIComponent

processUpdates

public void processUpdates(FacesContext context)
Specified by:
processUpdates in class UIComponent

processSaveState

public Object processSaveState(FacesContext context)
Specified by:
processSaveState in class UIComponent

processRestoreState

public void processRestoreState(FacesContext context,
                                Object state)
Specified by:
processRestoreState in class UIComponent

markInitialState

public void markInitialState()
Specified by:
markInitialState in class UIXComponent

saveState

public Object saveState(FacesContext context)

restoreState

public void restoreState(FacesContext facesContext,
                         Object stateObj)

toString

public String toString()
Overrides:
toString in class Object

getFacesContext

protected FacesContext getFacesContext()

Return the FacesContext instance for the current request.

Specified by:
getFacesContext in class UIComponent

decodeChildren

protected final void decodeChildren(FacesContext context)
Delegates to LifecycleRenderer, if present, otherwise calls decodeChildrenImpl.

Parameters:
context - the current FacesContext

decodeChildrenImpl

protected void decodeChildrenImpl(FacesContext context)
Calls processDecodes on all facets and children of this component.

Parameters:
context - the current FacesContext

validateChildren

protected final void validateChildren(FacesContext context)
Delegates to LifecycleRenderer, if present, otherwise calls validateChildrenImpl.

Parameters:
context - the current FacesContext

validateChildrenImpl

protected void validateChildrenImpl(FacesContext context)
Calls processValidators on all facets and children of this component.

Parameters:
context - the current FacesContext

updateChildren

protected final void updateChildren(FacesContext context)
Delegates to LifecycleRenderer, if present, otherwise calls upateChildrenImpl.

Parameters:
context - the current FacesContext

updateChildrenImpl

protected void updateChildrenImpl(FacesContext context)

addFacesListener

protected void addFacesListener(FacesListener listener)
Specified by:
addFacesListener in class UIComponent

removeFacesListener

protected void removeFacesListener(FacesListener listener)
Specified by:
removeFacesListener in class UIComponent

getFacesListeners

protected FacesListener[] getFacesListeners(Class clazz)
Specified by:
getFacesListeners in class UIComponent

addAttributeChange

protected void addAttributeChange(String attributeName,
                                  Object attributeValue)

getRenderer

protected Renderer getRenderer(FacesContext context)
Specified by:
getRenderer in class UIComponent

getLifecycleRenderer

protected LifecycleRenderer getLifecycleRenderer(FacesContext context)

setProperty

protected void setProperty(PropertyKey key,
                           Object value)

getProperty

protected Object getProperty(PropertyKey key)

setBooleanProperty

protected void setBooleanProperty(PropertyKey key,
                                  boolean value)

getBooleanProperty

protected boolean getBooleanProperty(PropertyKey key,
                                     boolean defaultValue)

setIntProperty

protected void setIntProperty(PropertyKey key,
                              int value)

getIntProperty

protected int getIntProperty(PropertyKey key,
                             int defaultValue)

getFacetCount

public int getFacetCount()
Return the number of facets. This is more efficient than calling getFacets().size();

Overrides:
getFacetCount in class UIComponent

broadcastToMethodBinding

protected final void broadcastToMethodBinding(FacesEvent event,
                                              MethodBinding method)
                                       throws AbortProcessingException
Deprecated. 

Broadcast an event to a MethodBinding. This can be used to support MethodBindings such as the "actionListener" binding on ActionSource components: <tr:commandButton actionListener="#{mybean.myActionListener}">

Throws:
AbortProcessingException

adaptMethodBinding

public static MethodExpression adaptMethodBinding(MethodBinding binding)
Given a MethodBinding, create a MethodExpression that adapts it.


broadcastToMethodExpression

protected final void broadcastToMethodExpression(FacesEvent event,
                                                 MethodExpression method)
                                          throws AbortProcessingException
Broadcast an event to a MethodExpression. This can be used to support MethodBindings such as the "actionListener" binding on ActionSource components: <tr:commandButton actionListener="#{mybean.myActionListener}">

Throws:
AbortProcessingException

invokeOnChildrenComponents

protected final boolean invokeOnChildrenComponents(FacesContext context,
                                                   String clientId,
                                                   ContextCallback callback)
                                            throws FacesException
Convenience method to call invokeOnComponent on all of the children of a component, surrounding the invocation with calls to setup/tearDownChildrenVisitingContext. This is useful when a component sometimes optimizes away calling invokeOnComponent on its children.

Throws:
FacesException
See Also:
UIXComponent.setupChildrenVisitingContext(javax.faces.context.FacesContext), UIXComponent.tearDownChildrenVisitingContext(javax.faces.context.FacesContext)

invokeOnNamingContainerComponent

protected final boolean invokeOnNamingContainerComponent(FacesContext context,
                                                         String clientId,
                                                         ContextCallback callback)
                                                  throws FacesException

Optimized implementation of invokeOnComponent for NamingContainers. If the clientId isn't within the NamingContainer, invocation of the NamingContainer's children is skipped.

Subclasses implementing NamingContainer should override invokeOnComponent and delegate to this method.

Throws:
FacesException

invokeOnComponent

public boolean invokeOnComponent(FacesContext context,
                                 String clientId,
                                 ContextCallback callback)
                          throws FacesException
Override to calls the hooks for setting up and tearing down the context before the children are visited.

Overrides:
invokeOnComponent in class UIComponent
Throws:
FacesException
See Also:
UIXComponent.setupVisitingContext(javax.faces.context.FacesContext), UIXComponent.tearDownVisitingContext(javax.faces.context.FacesContext)


Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.