org.ajax4jsf.renderkit
Class RendererBase

java.lang.Object
  extended by javax.faces.render.Renderer
      extended by org.ajax4jsf.renderkit.RendererBase
All Implemented Interfaces:
ChameleonRenderer, org.ajax4jsf.resource.ResourceProduser
Direct Known Subclasses:
ComponentRendererBase, HeaderResourcesRendererBase, PrototypeBasedRendererBase

public abstract class RendererBase
extends javax.faces.render.Renderer
implements ChameleonRenderer

Base Renderer for all chameleon Skin's and components. At most, make all common procedures and realise concrete work in "template" methods.

Version:
$Revision: 1.1.2.1 $ $Date: 2007/01/09 18:58:51 $
Author:
asmirnov@exadel.com (latest modification by $Author: alexsmirnov $)

Field Summary
protected static java.lang.String JAVASCRIPT_NAMESPACE
          logger for common cases.
 
Constructor Summary
RendererBase()
           
 
Method Summary
protected  void addResource(java.lang.String key, org.ajax4jsf.resource.InternetResource resource)
          Append new resource to renderer cache.
 void decode(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
protected  void doDecode(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
          Template method for custom decoding of concrete renderer.
protected  void doEncodeBegin(javax.faces.context.ResponseWriter writer, javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
          Template method for custom start encoding of concrete renderer.
protected  void doEncodeChildren(javax.faces.context.ResponseWriter writer, javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
protected  void doEncodeEnd(javax.faces.context.ResponseWriter writer, javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
          Template method for custom finish encoding of concrete renderer.
 void encodeBegin(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
 void encodeChildren(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
 void encodeEnd(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
protected abstract  java.lang.Class<? extends javax.faces.component.UIComponent> getComponentClass()
          Get base component slass , targetted for this renderer.
 org.ajax4jsf.resource.InternetResource getResource(java.lang.String resourceURI)
          Base stub method for produce internet resource ( image, script ...
protected  org.richfaces.skin.Skin getSkin(javax.faces.context.FacesContext context)
          Calculate current Skin for rendering.
 RendererUtils getUtils()
          Due to big number of common utility methods, base renderer divide to 2 classes - renderer and utils.
protected  void preDecode(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
protected  void preEncodeBegin(javax.faces.context.FacesContext context, javax.faces.component.UIComponent component)
           
 void renderChild(javax.faces.context.FacesContext facesContext, javax.faces.component.UIComponent child)
          Render one component and it childrens
 void renderChildren(javax.faces.context.FacesContext facesContext, javax.faces.component.UIComponent component)
          Render all children for given component.
 
Methods inherited from class javax.faces.render.Renderer
convertClientId, getConvertedValue, getRendersChildren
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

JAVASCRIPT_NAMESPACE

protected static final java.lang.String JAVASCRIPT_NAMESPACE
logger for common cases.

See Also:
Constant Field Values
Constructor Detail

RendererBase

public RendererBase()
Method Detail

decode

public void decode(javax.faces.context.FacesContext context,
                   javax.faces.component.UIComponent component)
Overrides:
decode in class javax.faces.render.Renderer

preDecode

protected void preDecode(javax.faces.context.FacesContext context,
                         javax.faces.component.UIComponent component)

preEncodeBegin

protected void preEncodeBegin(javax.faces.context.FacesContext context,
                              javax.faces.component.UIComponent component)
                       throws java.io.IOException
Throws:
java.io.IOException

encodeBegin

public void encodeBegin(javax.faces.context.FacesContext context,
                        javax.faces.component.UIComponent component)
                 throws java.io.IOException
Overrides:
encodeBegin in class javax.faces.render.Renderer
Throws:
java.io.IOException

encodeChildren

public void encodeChildren(javax.faces.context.FacesContext context,
                           javax.faces.component.UIComponent component)
                    throws java.io.IOException
Overrides:
encodeChildren in class javax.faces.render.Renderer
Throws:
java.io.IOException

encodeEnd

public void encodeEnd(javax.faces.context.FacesContext context,
                      javax.faces.component.UIComponent component)
               throws java.io.IOException
Overrides:
encodeEnd in class javax.faces.render.Renderer
Throws:
java.io.IOException

getResource

public org.ajax4jsf.resource.InternetResource getResource(java.lang.String resourceURI)
                                                   throws javax.faces.FacesException
Base stub method for produce internet resource ( image, script ... ) since resources must be implemented in "lightweight" pattern, it instances put in internal map to caching.

Specified by:
getResource in interface org.ajax4jsf.resource.ResourceProduser
Parameters:
resourceURI - - relative ( to renderer class ) uri to resource in jar or key for generate ( in Java2D , for example ).
Returns:
- resource instance for this uri.
Throws:
org.ajax4jsf.resource.ResourceNotFoundException - - if reqested resource not instantiated.
javax.faces.FacesException

getSkin

protected org.richfaces.skin.Skin getSkin(javax.faces.context.FacesContext context)
Calculate current Skin for rendering.

Parameters:
context - - current FacesContext
Returns:

getUtils

public RendererUtils getUtils()
Due to big number of common utility methods, base renderer divide to 2 classes - renderer and utils. since use static methods of utility class breack object paradigm, we use getter for concrete util instance. Developer can override any utility metod in 2 stages : 1) Create subclass of RendererUtils and override utility method. 2) Override this method for return instance of such subclass.

Returns:
Returns the utils.

getComponentClass

protected abstract java.lang.Class<? extends javax.faces.component.UIComponent> getComponentClass()
Get base component slass , targetted for this renderer. Used for check arguments in decode/encode.

Returns:

doDecode

protected void doDecode(javax.faces.context.FacesContext context,
                        javax.faces.component.UIComponent component)
Template method for custom decoding of concrete renderer. All parameters checking if performed in original decode method.

Parameters:
context -
component -

doEncodeBegin

protected void doEncodeBegin(javax.faces.context.ResponseWriter writer,
                             javax.faces.context.FacesContext context,
                             javax.faces.component.UIComponent component)
                      throws java.io.IOException
Template method for custom start encoding of concrete renderer. All parameters checking and writer is performed in original encodeBegin method.

Parameters:
writer -
context -
component -
Throws:
java.io.IOException

doEncodeChildren

protected void doEncodeChildren(javax.faces.context.ResponseWriter writer,
                                javax.faces.context.FacesContext context,
                                javax.faces.component.UIComponent component)
                         throws java.io.IOException
Parameters:
writer -
context -
component -
Throws:
java.io.IOException

doEncodeEnd

protected void doEncodeEnd(javax.faces.context.ResponseWriter writer,
                           javax.faces.context.FacesContext context,
                           javax.faces.component.UIComponent component)
                    throws java.io.IOException
Template method for custom finish encoding of concrete renderer. All parameters checking and writer is performed in original encodeEnd method.

Parameters:
writer -
context -
component -
Throws:
java.io.IOException

addResource

protected void addResource(java.lang.String key,
                           org.ajax4jsf.resource.InternetResource resource)
Append new resource to renderer cache.

Parameters:
key -
resource -

renderChildren

public void renderChildren(javax.faces.context.FacesContext facesContext,
                           javax.faces.component.UIComponent component)
                    throws java.io.IOException
Render all children for given component.

Parameters:
facesContext -
component -
Throws:
java.io.IOException

renderChild

public void renderChild(javax.faces.context.FacesContext facesContext,
                        javax.faces.component.UIComponent child)
                 throws java.io.IOException
Render one component and it childrens

Parameters:
facesContext -
child -
Throws:
java.io.IOException


Copyright © 2009. All Rights Reserved.