com.esri.adf.web.faces.renderkit.xml.ajax
Interface AJAXRenderer

All Known Implementing Classes:
EditRenderer, GPAsyncTaskResultsRenderer, MapRenderer, OverviewRenderer, PrintTaskRenderer, TaskRenderer, TocRenderer, ToolbarRenderer

public interface AJAXRenderer

The AJAXRenderer interface must be implemented by all classes that would like to render xml fragments as part of the AJAX response.

Once the class has been coded and the AJAXRenderer interface implemented, it needs to be registered in the WEB-INF/ajax-renderers.xml file for it to be used by the AJAXResponseRenderer

 <managed-bean>
 <display-name>AJAXRenderers</display-name>
 ...
 <list-entries>
 <value>#{myAjaxRenderer}</value>
 <list-entries>
 
 <managed-bean>
   <managed-bean-name>myAjaxRenderer</managed-bean-name>
   <managed-bean-class>my.company.MyAjaxRenderer</managed-bean-class>
   <managed-bean-scope>none</managed-bean-scope>
 </managed-bean>
 


Method Summary
 Class getControlClass()
           Return the class of the control to be passed for processing
 Object getOriginalState(javax.faces.component.UIComponent component)
           Returns the state of the argument component.
 void renderAjaxResponse(javax.faces.context.FacesContext facesContext, javax.faces.component.UIComponent component, Object state, boolean isEventSource, Element parentElement)
           Render AJAX xml response for this control.
 

Method Detail

getControlClass

Class getControlClass()

Return the class of the control to be passed for processing

 return MyClassName.class
 


getOriginalState

Object getOriginalState(javax.faces.component.UIComponent component)

Returns the state of the argument component. The returned state can be null.

Parameters:
component - Component who's class is the same as that returned by getControlClass method


renderAjaxResponse

void renderAjaxResponse(javax.faces.context.FacesContext facesContext,
                        javax.faces.component.UIComponent component,
                        Object state,
                        boolean isEventSource,
                        Element parentElement)

Render AJAX xml response for this control. The response is contained within the argument Document.

 if (state != null && state.equals(currentState))
   return;
 
 org.w3c.dom.Element myTag = com.esri.adf.web.util.XMLUtil.createElement("my-tag", null, parentElement);
 com.esri.adf.web.util.XMLUtil.createElement("id", component.getId(), myTag);
 ...
 

Parameters:
facesContext - Current FacesContext instance
component - Component who's class is the same as that returned by getControlClass method
state - Object returned by getOriginalState method. May be null.
isEventSource - True if component handled request from client to perform operation on server
parentElement - Root level XML response node. All content must be rendered within a unique tag which is created as a child for this parentElement