|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavax.faces.component.UIComponent
org.apache.myfaces.trinidad.component.UIXComponent
public abstract class UIXComponent
Pure abstract base class for all UIX components.
Field Summary |
---|
Fields inherited from class javax.faces.component.UIComponent |
---|
bindings |
Constructor Summary | |
---|---|
UIXComponent()
|
Method Summary | ||
---|---|---|
abstract void |
addAttributeChangeListener(AttributeChangeListener acl)
Adds an AttributeChangeListener. |
|
static void |
addPartialTarget(FacesContext facesContext,
PartialPageContext partialContext,
UIComponent component)
Add a component as a partial target to the current request. |
|
static
|
encodeFlattenedChild(FacesContext context,
ComponentProcessor<S> childProcessor,
UIComponent child,
S callbackContext)
Helper function called by Renderers to encode a flattened view of a group of potentially FlattenedComponent instances rooted at a single child of the component, invoking the childProcessor with its
callbackContext on each renderable instance. |
|
static
|
encodeFlattenedChildren(FacesContext context,
ComponentProcessor<S> childProcessor,
Iterable<UIComponent> children,
S callbackContext)
Helper function called by Renderers to encode a flattened view of their children, invoking the childProcessor with its
callbackContext on each renderable instance. |
|
abstract MethodExpression |
getAttributeChangeListener()
Gets the method binding to an AttributeChangeListener. |
|
abstract AttributeChangeListener[] |
getAttributeChangeListeners()
Gets the registered AttributeChangeListeners. |
|
abstract 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. |
|
abstract FacesBean |
getFacesBean()
Returns the FacesBean used for storing the component's state. |
|
protected boolean |
isVisitable(VisitContext visitContext)
Called by UIXComponent.visitTree() to determine
whether this component is "visitable" - ie. |
|
abstract void |
markInitialState()
|
|
VisitResult |
partialEncodeVisit(VisitContext visitContext,
PartialPageContext partialContext,
VisitCallback callback)
Called when visiting the component during optimized partial page encoding so that the component can modify what is actually encoded. |
|
static
|
processFlattenedChildren(FacesContext context,
ComponentProcessingContext cpContext,
ComponentProcessor<S> childProcessor,
Iterable<UIComponent> children,
S callbackContext)
Helper function called by FlattenedComponents to iterate over a flattened view of their children, potentially themselves FlattenedComponents, invoking the childProcessor
with its callbackContext on each renderable instance. |
|
static
|
processFlattenedChildren(FacesContext context,
ComponentProcessingContext cpContext,
ComponentProcessor<S> childProcessor,
UIComponent child,
S callbackContext)
Helper function called by FlattenedComponent to iterate over a flattened view of a group of potentially FlattenedComponent instances rooted at a single child of the FlattenedComponent, invoking the childProcessor with its
callbackContext on each renderable instance. |
|
static
|
processFlattenedChildren(FacesContext context,
ComponentProcessor<S> childProcessor,
Iterable<UIComponent> children,
S callbackContext)
Helper function called by Renderers to iterate over a flattened view of the children, potentially containing FlattenedComponents, of the component the Renderer is encoding, invoking the childProcessor with its
callbackContext on each renderable instance. |
|
static
|
processFlattenedChildren(FacesContext context,
ComponentProcessor<S> childProcessor,
UIComponent child,
S callbackContext)
Helper function called by Renderers to iterate over a flattened view of a group of potentially FlattenedComponent instances rooted at a single child of the component to collect information about these children prior to encoding the children using encodeFlattenedChild(FacesContext, ComponentProcessor, UIComponent, Object) . |
|
abstract void |
removeAttributeChangeListener(AttributeChangeListener acl)
Removes an AttributeChangeListener. |
|
abstract void |
setAttributeChangeListener(MethodExpression me)
Sets a method binding to an AttributeChangeListener. |
|
protected void |
setPartialTarget(FacesContext facesContext,
PartialPageContext partialContext)
Marks this component as a partial target for this request. |
|
protected void |
setUpEncodingContext(FacesContext context,
RenderingContext rc)
Sets up the context necessary to encode the component. |
|
protected void |
setupVisitingContext(FacesContext context)
Sets up the context necessary to visit or invoke the component for all phases. |
|
protected void |
tearDownEncodingContext(FacesContext context,
RenderingContext rc)
Tears down the context created in order to encode the component |
|
protected void |
tearDownVisitingContext(FacesContext context)
Tears down context created in order to visit or invoke the component for all phases. |
|
static boolean |
visitTree(VisitContext visitContext,
UIComponent component,
VisitCallback callback)
Perform a tree visit starting at the specified node in the tree. |
|
boolean |
visitTree(VisitContext visitContext,
VisitCallback callback)
Perform a tree visit starting at this node in the tree. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface javax.faces.component.StateHolder |
---|
isTransient, restoreState, saveState, setTransient |
Constructor Detail |
---|
public UIXComponent()
Method Detail |
---|
public static <S> boolean processFlattenedChildren(FacesContext context, ComponentProcessor<S> childProcessor, UIComponent child, S callbackContext) throws IOException
encodeFlattenedChild(FacesContext, ComponentProcessor, UIComponent, Object)
.
If the child is a FlattenedComponent, the childProcessor
will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor
will be called on
the child itself.
If the Renderer accidentally passes in the component to be processed instead of one of its children, the result will almost certainly be an infinite recursion and stack overflow.
IOException
processFlattenedChildren(FacesContext, ComponentProcessor, Iterable, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessingContext, ComponentProcessor, UIComponent, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessingContext, ComponentProcessor, Iterable, Object)
,
FlattenedComponent
public static <S> boolean encodeFlattenedChild(FacesContext context, ComponentProcessor<S> childProcessor, UIComponent child, S callbackContext) throws IOException
childProcessor
with its
callbackContext
on each renderable instance. This method must be called
when the childProcessor is actually encoding and the childProcessor must not attempt
to encode the same component instances more than once per request.
If a Renderer needs to
collect information about its possibly flattened children before calling
encodeFlattenedChild(FacesContext, ComponentProcessor, UIComponent, Object)
,
it should call processFlattenedChildren(FacesContext, ComponentProcessor, UIComponent, Object)
to collect the information.
If the child is a FlattenedComponent, the childProcessor
will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor
will be called on
the child itself.
FlattenedComponents that wish to check whether they are processed for the purpose of
encoding can check the ProcessingHints of the ComponentProcessingContext for the
presence of PROCESS_FOR_ENCODING hint
.
If the Renderer accidentally passes in the component to be encoded instead of one of its children, the result will almost certainly be an infinite recursion and stack overflow.
true
If any children were processed
IOException
processFlattenedChildren(FacesContext, ComponentProcessor, UIComponent, Object)
,
FlattenedComponent
public static <S> boolean processFlattenedChildren(FacesContext context, ComponentProcessingContext cpContext, ComponentProcessor<S> childProcessor, UIComponent child, S callbackContext) throws IOException
childProcessor
with its
callbackContext
on each renderable instance.
If the child is a FlattenedComponent, the childProcessor
will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor
will be called on
the child itself.
This method is typically used to flatten the contents of a facet of the FlattenedComponent. If the FlattenedComponent accidentally passes in itself instead of one of its children, the result will almost certainly be an infinite recursion and stack overflow.
true
If any children were processed
IOException
processFlattenedChildren(FacesContext, ComponentProcessor, UIComponent, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessor, Iterable, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessingContext, ComponentProcessor, Iterable, Object)
,
FlattenedComponent
public static <S> boolean processFlattenedChildren(FacesContext context, ComponentProcessor<S> childProcessor, Iterable<UIComponent> children, S callbackContext) throws IOException
childProcessor
with its
callbackContext
on each renderable instance.
For each FlattenedComponent child, the childProcessor
will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor
will be called on
the child itself.
This method is typically used to flatten the children of the FlattenedComponent to be encoded.
true
If any children were processed
IOException
processFlattenedChildren(FacesContext, ComponentProcessor, UIComponent, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessingContext, ComponentProcessor, UIComponent, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessingContext, ComponentProcessor, Iterable, Object)
,
FlattenedComponent
public static <S> boolean encodeFlattenedChildren(FacesContext context, ComponentProcessor<S> childProcessor, Iterable<UIComponent> children, S callbackContext) throws IOException
childProcessor
with its
callbackContext
on each renderable instance. This method must be called
when the childProcessor is actually encoding and the childProcessor must not attempt
to encode the same component instances more than once per request.
If a Renderer needs to
collect information about its possibly flattened children before calling
encodeFlattenedChild(FacesContext, ComponentProcessor, Iterable
,
it should call
processFlattenedChildren(FacesContext, ComponentProcessor, Iterable
to collect the information.
For each FlattenedComponent child, the childProcessor
will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor
will be called on
the child itself.
FlattenedComponents that wish to check whether they are processed for the purpose of
encoding can check the ProcessingHints of the ComponentProcessingContext for the
presence of PROCESS_FOR_ENCODING hint
.
true
If any children were processed
IOException
processFlattenedChildren(FacesContext, ComponentProcessor, Iterable, Object)
,
FlattenedComponent
public static <S> boolean processFlattenedChildren(FacesContext context, ComponentProcessingContext cpContext, ComponentProcessor<S> childProcessor, Iterable<UIComponent> children, S callbackContext) throws IOException
childProcessor
with its callbackContext
on each renderable instance.
For each FlattenedComponent child, the childProcessor
will
be called on each of that FlattenedComponent's children, recursing if those children are
themselves FlattenedComponents, otherwise, the childProcessor
will be called on
the child itself.
IOException
processFlattenedChildren(FacesContext, ComponentProcessor, UIComponent, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessor, Iterable, Object)
,
processFlattenedChildren(FacesContext, ComponentProcessingContext, ComponentProcessor, UIComponent, Object)
,
FlattenedComponent
public boolean visitTree(VisitContext visitContext, VisitCallback callback)
Perform a tree visit starting at this node in the tree.
UIXComponent.visitTree() implementations do not invoke the
VisitCallback
directly, but instead call
VisitContext.invokeVisitCallback()
to invoke the
callback. This allows VisitContext
implementations
to provide optimized tree traversals, for example by only
calling the VisitCallback
for a subset of components.
visitContext
- the VisitContext
for this visitcallback
- the VisitCallback
instance
whose visit
method will be called
for each node visited.
true
to indicate that the tree visit is complete (eg. all components
that need to be visited have been visited). This results in
the tree visit being short-circuited such that no more components
are visited.VisitContext.invokeVisitCallback()
public static boolean visitTree(VisitContext visitContext, UIComponent component, VisitCallback callback)
Perform a tree visit starting at the specified node in the tree.
UIXComponent.visitTree() implementations do not invoke the
VisitCallback
directly, but instead call
VisitContext.invokeVisitCallback()
to invoke the
callback. This allows VisitContext
implementations
to provide optimized tree traversals, for example by only
calling the VisitCallback
for a subset of components.
visitContext
- the VisitContext
for this visitcomponent
- the UIComponent
to start the visit fromcallback
- the VisitCallback
instance
whose visit
method will be called
for each node visited.
true
to indicate that the tree visit is complete (eg. all components
that need to be visited have been visited). This results in
the tree visit being short-circuited such that no more components
are visited.VisitContext.invokeVisitCallback()
public static void addPartialTarget(FacesContext facesContext, PartialPageContext partialContext, UIComponent component)
setPartialTarget(FacesContext, PartialPageContext)
for UIXComponents or assumes for UIComponent
that components with a renderer
type are able to produce DOM elements that have IDs that can be replaced.
facesContext
- the faces contextpartialContext
- the partial page contextcomponent
- the component to add as a targetprotected void setPartialTarget(FacesContext facesContext, PartialPageContext partialContext)
RequestContext
.
The component should add the client ID the desired rendered component to the context.
This allows components that do not render a replacable DOM element with an ID
to choose an alternative component, like a parent.
facesContext
- the faces contextpartialContext
- the partial page contextprotected boolean isVisitable(VisitContext visitContext)
Called by
UIXComponent.visitTree()
to determine
whether this component is "visitable" - ie. whether this component
satisfies the org.apache.myfaces.trinidad.component.visit.VisitHints
returned by
VisitContext.getHints()
.
If this component is not visitable (ie. if this method returns false), the tree visited is short-circuited such that neither the component nor any of its descendents will be visited>
Custom treeVisit()
implementations may call this method
to determine whether the component is visitable before performing
any visit-related processing.
public VisitResult partialEncodeVisit(VisitContext visitContext, PartialPageContext partialContext, VisitCallback callback)
Called when visiting the component during optimized partial page encoding so that the component can modify what is actually encoded. For example tab controls often render the tabs for the ShowDetailItems in the tab bar before delegating to the disclosed ShowDetailItem to render the tab content. As a result, the tab control needs to encode its tab bar if any of its ShowDetailItems are partial targets so that the tab labels, for example, are up-to-date.
The default implementation delegates to the CoreRenderer if this component has one, otherwise it calls the VisitCallback and returns its result if this UIXComponent is a partial target of the current encoding.
visitContext
- VisitContext to pass to the VisitCallbackpartialContext
- PartialPageContext for the current partial encodingcallback
- VisitCallback to call if this component is a partial target
protected void setupVisitingContext(FacesContext context)
Sets up the context necessary to visit or invoke the component for all phases.
The default implementation does nothing.
If a subclass overrides this method, it should override
tearDownVisitingContext
as well.
It is guaranteed that if setupVisitingContext
completes
tearDownVisitingContext
will be called for this component
tearDownVisitingContext(javax.faces.context.FacesContext)
,
setUpEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
,
tearDownEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
protected void tearDownVisitingContext(FacesContext context)
Tears down context created in order to visit or invoke the component for all phases.
The default implementation does nothing.
A subclass should only override this method if it overrode
setupVisitingContext
as well
It is guaranteed that tearDownVisitingContext
will be called only after
setupVisitingContext
has been called for this component
setupVisitingContext(javax.faces.context.FacesContext)
,
setUpEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
,
tearDownEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
protected void setUpEncodingContext(FacesContext context, RenderingContext rc)
Sets up the context necessary to encode the component.
The default implementation delegates to
CoreRenderer.setupEncodingContext
and then calls
setupVisitingContext
If a subclass overrides this method, it should override
tearDownEncodingContext
as well.
It is guaranteed that if setUpEncodingContext
completes
tearDownEncodingContext
will be called for this component
setupVisitingContext(javax.faces.context.FacesContext)
,
tearDownVisitingContext(javax.faces.context.FacesContext)
,
tearDownEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
,
CoreRenderer.setupEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext, org.apache.myfaces.trinidad.component.UIXComponent)
protected void tearDownEncodingContext(FacesContext context, RenderingContext rc)
Tears down the context created in order to encode the component
The default implementation delegates to
CoreRenderer.tearDownEncodingContext
and then calls
tearDownVisitingContext
A subclass should only override this method if it overrode
setUpEncodingContext
as well
It is guaranteed that tearDownEncodingContext
will be called only after
setUpEncodingContext
has been called for this component
setUpEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
,
tearDownVisitingContext(javax.faces.context.FacesContext)
,
setUpEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext)
,
CoreRenderer.tearDownEncodingContext(javax.faces.context.FacesContext, org.apache.myfaces.trinidad.context.RenderingContext, org.apache.myfaces.trinidad.component.UIXComponent)
public abstract FacesBean getFacesBean()
public abstract void addAttributeChangeListener(AttributeChangeListener acl)
public abstract void removeAttributeChangeListener(AttributeChangeListener acl)
public abstract AttributeChangeListener[] getAttributeChangeListeners()
public abstract void setAttributeChangeListener(MethodExpression me)
public abstract MethodExpression getAttributeChangeListener()
public abstract void markInitialState()
public abstract String getContainerClientId(FacesContext context, UIComponent child)
UIXComponentBase.getClientId(FacesContext context)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |