org.apache.myfaces.trinidaddemo.composite
Class DateFieldAsRenderer
java.lang.Object
javax.faces.render.Renderer
org.apache.myfaces.trinidaddemo.composite.DateFieldAsRenderer
public class DateFieldAsRenderer
- extends javax.faces.render.Renderer
An experiment in building a renderer that uses a composite
component strategy to render. Some basic principles:
- The child components get re-created on each pass through
the system; this means seeing if they exist in both Apply Request
Values (
decode()) and Render Response
(encodeBegin()), and marking the components
transient so they don't get saved.
- The model is the tricky part: instead of using real
ValueBindings on the children, I let them
use local values, and then manully transfer over their local values
into an overall "local value" during validate(). Unfortunately,
using ValueBindings to automate the transfer wouldn't quite work,
since the transfer wouldn't happen 'til Update Model, which is
too late to preserve the semantics of an editable value component in JSF.
|
Method Summary |
void |
decode(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component)
|
void |
encodeBegin(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component)
|
void |
encodeChildren(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component)
|
Object |
getConvertedValue(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component,
Object submittedValue)
|
boolean |
getRendersChildren()
|
| Methods inherited from class javax.faces.render.Renderer |
convertClientId, encodeEnd |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DateFieldAsRenderer
public DateFieldAsRenderer()
decode
public void decode(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component)
- Overrides:
decode in class javax.faces.render.Renderer
getConvertedValue
public Object getConvertedValue(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component,
Object submittedValue)
- Overrides:
getConvertedValue in class javax.faces.render.Renderer
encodeBegin
public void encodeBegin(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component)
throws IOException
- Overrides:
encodeBegin in class javax.faces.render.Renderer
- Throws:
IOException
encodeChildren
public void encodeChildren(javax.faces.context.FacesContext context,
javax.faces.component.UIComponent component)
throws IOException
- Overrides:
encodeChildren in class javax.faces.render.Renderer
- Throws:
IOException
getRendersChildren
public boolean getRendersChildren()
- Overrides:
getRendersChildren in class javax.faces.render.Renderer
Copyright © 2001-2011 The Apache Software Foundation. All Rights Reserved.