org.apache.myfaces.trinidad.component
Class UIXSubform
java.lang.Object
javax.faces.component.UIComponent
org.apache.myfaces.trinidad.component.UIXComponent
org.apache.myfaces.trinidad.component.UIXComponentBase
org.apache.myfaces.trinidad.component.UIXSubform
- All Implemented Interfaces:
- javax.faces.component.NamingContainer, javax.faces.component.StateHolder
- Direct Known Subclasses:
- CoreSubform
public class UIXSubform
- extends UIXComponentBase
- implements javax.faces.component.NamingContainer
UIXSubform is the base abstraction for an independently submittable
region of a page. The contents of a subform will only be validated
(or otherwise processed) if a component inside of the subform is
responsible for submitting the page. This allows for comparatively
fine-grained control of which components will be validated and pushed
into the model without the compromises of using entirely separate form
elements. UIXSubform is a NamingContainer and
therefore IDs can be reused between subforms.
A UIXSubform is considered "submitted" if an
event is queued by one of its children or facets for a phase later
than "Apply Request Values" (that is, for later than
decode()). The most common example is a
(non-immediate) "command" component (like an <h:commandButton>
or <tr:commandButton>).
A UIXSubform will always allow the
"Apply Request Values" phase to execute for its children,
even when not "submitted", but when not "submitted", the
"Process Validations" and "Update Model Values" phases will
be skipped. This differs from an ordinary form component,
which, when not submitted, does not (and cannot) run
"Apply Request Values" either.
In some scenarios, there may be buttons (or other components
that submit the page) outside of the main content of a page. If
this main content is in a UIXSubform, it could not be fully
processed whenever those buttons are clicked, since those
buttons aren't inside of the UIXSubform. To support this
scenario, Apache Trinidad supports a "default" property on
UIXSubform. A "default" subform behaves like any other
subform in most respects, but if no subforms
are "submitted" - if no subform has an appropriate event
come from its children - then all "default" subforms act
as if they are "submitted".
Events:
Type |
Phases |
Description |
org.apache.myfaces.trinidad.event.AttributeChangeEvent |
Apply Request Values |
Event delivered to describe an attribute change. 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. |
Fields inherited from class javax.faces.component.UIComponent |
bindings |
Fields inherited from interface javax.faces.component.NamingContainer |
SEPARATOR_CHAR |
Constructor Summary |
|
UIXSubform()
Construct an instance of the UIXSubform. |
protected |
UIXSubform(java.lang.String rendererType)
Construct an instance of the UIXSubform. |
Method Summary |
protected FacesBean.Type |
getBeanType()
|
java.lang.String |
getFamily()
|
boolean |
isDefault()
Gets whether the subform should assume it
has been submitted. |
boolean |
isSubmitted()
Gets whether the subform was submitted on this request |
void |
processDecodes(javax.faces.context.FacesContext context)
|
void |
processUpdates(javax.faces.context.FacesContext context)
|
void |
processValidators(javax.faces.context.FacesContext context)
|
void |
queueEvent(javax.faces.event.FacesEvent event)
|
void |
setDefault(boolean defaultParam)
Sets whether the subform should assume it
has been submitted. |
void |
setSubmitted(boolean submitted)
Sets whether the subform was submitted on this request |
Methods inherited from class org.apache.myfaces.trinidad.component.UIXComponentBase |
adaptMethodBinding, addAttributeChange, addAttributeChangeListener, addFacesListener, broadcast, broadcastToMethodBinding, broadcastToMethodExpression, createFacesBean, decode, decodeChildren, decodeChildrenImpl, encodeAll, encodeBegin, encodeChildren, encodeEnd, findComponent, getAttributeChangeListener, getAttributeChangeListeners, getAttributes, getBooleanProperty, getChildCount, getChildren, getClientId, getFacesBean, getFacesContext, getFacesListeners, getFacet, getFacetCount, getFacetNames, getFacets, getFacetsAndChildren, getId, getIntProperty, getLifecycleRenderer, getParent, getProperty, getPropertyKey, getRenderer, getRendererType, getRendersChildren, getValueBinding, getValueExpression, isRendered, isTransient, markInitialState, processRestoreState, processSaveState, removeAttributeChangeListener, removeFacesListener, restoreState, saveState, setAttributeChangeListener, setAttributeChangeListener, setBooleanProperty, setId, setIntProperty, setParent, setProperty, setRendered, setRendererType, setTransient, setValueBinding, setValueExpression, toString, updateChildren, updateChildrenImpl, validateChildren, validateChildrenImpl |
Methods inherited from class javax.faces.component.UIComponent |
getContainerClientId, invokeOnComponent |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
TYPE
public static final FacesBean.Type TYPE
SUBMITTED_KEY
public static final PropertyKey SUBMITTED_KEY
DEFAULT_KEY
public static final PropertyKey DEFAULT_KEY
COMPONENT_FAMILY
public static final java.lang.String COMPONENT_FAMILY
- See Also:
- Constant Field Values
COMPONENT_TYPE
public static final java.lang.String COMPONENT_TYPE
- See Also:
- Constant Field Values
UIXSubform
public UIXSubform()
- Construct an instance of the UIXSubform.
UIXSubform
protected UIXSubform(java.lang.String rendererType)
- Construct an instance of the UIXSubform.
queueEvent
public void queueEvent(javax.faces.event.FacesEvent event)
- Overrides:
queueEvent
in class UIXComponentBase
processDecodes
public void processDecodes(javax.faces.context.FacesContext context)
- Overrides:
processDecodes
in class UIXComponentBase
processValidators
public void processValidators(javax.faces.context.FacesContext context)
- Overrides:
processValidators
in class UIXComponentBase
processUpdates
public void processUpdates(javax.faces.context.FacesContext context)
- Overrides:
processUpdates
in class UIXComponentBase
isSubmitted
public final boolean isSubmitted()
- Gets whether the subform was submitted on this request
- Returns:
- the new submitted value
setSubmitted
public final void setSubmitted(boolean submitted)
- Sets whether the subform was submitted on this request
- Parameters:
submitted
- the new submitted value
isDefault
public final boolean isDefault()
- Gets whether the subform should assume it
has been submitted. When set to "default", "submitted" will be
considered true if no other subform has been submitted.
- Returns:
- the new default value
setDefault
public final void setDefault(boolean defaultParam)
- Sets whether the subform should assume it
has been submitted. When set to "default", "submitted" will be
considered true if no other subform has been submitted.
- Parameters:
defaultParam
- the new default value
getFamily
public java.lang.String getFamily()
- Specified by:
getFamily
in class UIXComponentBase
getBeanType
protected FacesBean.Type getBeanType()
- Overrides:
getBeanType
in class UIXComponentBase
Copyright © 2001-2007 Apache Software Foundation. All Rights Reserved.