com.icesoft.faces.async.render
Class RenderManager

java.lang.Object
  extended bycom.icesoft.faces.async.render.RenderManager
All Implemented Interfaces:
com.icesoft.faces.async.render.Disposable

public class RenderManager
extends java.lang.Object
implements com.icesoft.faces.async.render.Disposable

The RenderManager is the central class for developers wanting to do server-initiated rendering. The recommended use is to have a single RenderManager for your application, typically configured as a application-scope, managed bean. Any class that needs to request server side render calls can do so using the RenderManager.

Server-initiated renders can be requested directly via the requestRender method or you get a named GroupAsyncRenderer and add a Renderable implementation to request and receive render calls as part of a group.

The RenderManager contains a reference to a single RenderHub that uses a special queue and thread pool to optimize render calls for reliability and scalability.


Field Summary
static int DELAY
           
static int INTERVAL
           
static int ON_DEMAND
           
 
Constructor Summary
RenderManager()
          No argument constructor suitable for using as a managed bean.
 
Method Summary
 void dispose()
          This is typically called when the application is shutting down and we need to dispose of all the RenderManager's resources.
 DelayRenderer getDelayRenderer(java.lang.String name)
          The DelayRenderer is a GroupAsyncRenderer that requests a server-initiated render of all the Renderables in its collection.
 IntervalRenderer getIntervalRenderer(java.lang.String name)
          The IntervalRenderer is a GroupAsyncRenderer that requests a server-initiated render of all the Renderables in its collection.
 OnDemandRenderer getOnDemandRenderer(java.lang.String name)
          The OnDemandRenderer is a GroupAsyncRenderer that requests a server-initiated render of all the Renderables in its collection.
 AsyncRenderer getRenderer(java.lang.String rendererName)
          Returns the named instance of an AsyncRenderer if it already exists otherwise it returns null.
 void requestRender(Renderable renderable)
          Submits the supplied Renderable instance to the RenderHub for server-initiated render.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ON_DEMAND

public static final int ON_DEMAND
See Also:
Constant Field Values

INTERVAL

public static final int INTERVAL
See Also:
Constant Field Values

DELAY

public static final int DELAY
See Also:
Constant Field Values
Constructor Detail

RenderManager

public RenderManager()
No argument constructor suitable for using as a managed bean.

Method Detail

requestRender

public void requestRender(Renderable renderable)
Submits the supplied Renderable instance to the RenderHub for server-initiated render.

Parameters:
renderable - The Renderable instance to render.

getOnDemandRenderer

public OnDemandRenderer getOnDemandRenderer(java.lang.String name)
The OnDemandRenderer is a GroupAsyncRenderer that requests a server-initiated render of all the Renderables in its collection. The request is made immediately upon request.

Thsi method returns the appropriate GroupAsyncRenderer based on the name. If the name is new, a new instance is created and stored in the RenderManager's collection. If the named GroupAsyncRenderer already exists, and it's of the proper type, then the existing instance is returned.

Parameters:
name - the name of the GroupAsyncRenderer
Returns:
a new or existing GroupAsyncRenderer, based on the name

getIntervalRenderer

public IntervalRenderer getIntervalRenderer(java.lang.String name)
The IntervalRenderer is a GroupAsyncRenderer that requests a server-initiated render of all the Renderables in its collection. The request to render is made repeatedly at the set interval.

Thsi method returns the appropriate GroupAsyncRenderer based on the name. If the name is new, a new instance is created and stored in the RenderManager's collection. If the named GroupAsyncRenderer already exists, and it's of the proper type, then the existing instance is returned.

Parameters:
name - the name of the GroupAsyncRenderer
Returns:
a new or existing GroupAsyncRenderer, based on the name

getDelayRenderer

public DelayRenderer getDelayRenderer(java.lang.String name)
The DelayRenderer is a GroupAsyncRenderer that requests a server-initiated render of all the Renderables in its collection. The request to render is made once at a set point in the future.

Thsi method returns the appropriate GroupAsyncRenderer based on the name. If the name is new, a new instance is created and stored in the RenderManager's collection. If the named GroupAsyncRenderer already exists, and it's of the proper type, then the existing instance is returned.

Parameters:
name - the name of the GroupAsyncRenderer
Returns:
a new or existing GroupAsyncRenderer, based on the name

dispose

public void dispose()
This is typically called when the application is shutting down and we need to dispose of all the RenderManager's resources. It iterates through all of the named GroupAsyncRenderers, calling dispose on each of them in turn. It then calls dispose on the RenderHub. Once the RenderManager has been disposed, it can no longer be used.

Specified by:
dispose in interface com.icesoft.faces.async.render.Disposable

getRenderer

public AsyncRenderer getRenderer(java.lang.String rendererName)
Returns the named instance of an AsyncRenderer if it already exists otherwise it returns null.

Parameters:
rendererName - The name of the AsycRender to retrieve.
Returns:
An instance of an AsyncRenderer that is associated with the provided name.