com.raritantechnologies.searchApp.taglibrary
Class DynamicSearchFormRenderer

java.lang.Object
  extended bycom.raritantechnologies.searchApp.taglibrary.DynamicSearchFormRenderer
All Implemented Interfaces:
IConfigurable, ISearchFormRenderer

public class DynamicSearchFormRenderer
extends java.lang.Object
implements ISearchFormRenderer

Select from one of several possible SearchForm renderers based on the value of a request parameter.

XML Configuration Template:
   <SearchForm name="[the search form name]"
                   rendererClass="com.raritantechnologies.searchApp.taglibrary.DynamicSearchFormRenderer"
                   defaultViewSelector="[default selector value]"
                   initFrom="[request|session]" <!-- where to get the value from -->
                   rendererSwitch="[request parameter with switch key]"
                   formMethod="[ type of form get|post ]" >

     <!-- two or more ViewSearchRenderer tags -->
     <ViewSearchRenderer rendererClass="[ class of ISearchFormRenderer]"
                            viewSelector="[ value of rendererSwitch parameter that will select this view  - can be 'NOT_NULL']" >
     
          <!-- Configuration parameters for this search form renderer -->
     </ViewSearchRenderer>

     <ViewSearchRenderer rendererClass="[ class of ISearchFormRenderer]"
                            viewSelector="[ value of rendererSwitch parameter that will select this view]" >
          <!-- Configuration parameters for this search form renderer -->
     </ViewSearchRenderer>

     <!-- etc... -->         

   </SearchForm>
 

Developed by Raritan Technologies Inc..

Author:
Ted Sullivan

Field Summary
 
Fields inherited from interface com.raritantechnologies.searchApp.taglibrary.ISearchFormRenderer
CLEAR, PAGE, PAGE_NUM, PAGE_SIZE, RESET, SEARCH
 
Constructor Summary
DynamicSearchFormRenderer()
           
 
Method Summary
 void addAfterFormData(java.lang.String afterFormData)
           
 void addFormScript(java.lang.String scriptName, java.lang.String script)
          Adds a section of javascript to the form.
 void addHiddenField(java.lang.String fieldName, java.lang.String fieldValue)
          Adds a hidden field to the form.
 boolean canUpdateSearchParams()
           
 java.lang.String getActionURL()
           
 java.lang.String getBody(java.lang.String searchFormName, java.lang.String categoryName, java.lang.String initialFields, java.lang.String hiddenFields, java.lang.String action, java.lang.String formInitArgs, RaritanPageContext pageContext)
          Main search form generation method.
 java.lang.String getCategory()
           
protected  ISearchFormRenderer getCurrentRenderer()
           
 java.lang.String getFormInitArgs()
           
 java.lang.String getFormMethod()
           
 java.lang.String getFormName()
           
 java.lang.String getFormType()
           
 java.lang.String getHiddenFields()
           
 java.lang.String getInitialFields()
           
 java.lang.String getOnSubmitHandler(java.lang.String sessionID)
           
 java.lang.String getSubmitHandlerName()
           
 void initialize(org.w3c.dom.Element elem)
          Initialize the search form renderer from the configuration XML.
protected  void setCurrentRenderer(ISearchFormRenderer currentRenderer)
           
 void setFormMethod(java.lang.String formMethod)
          sets the form method ( "get" or "post" )
 void setFormName(java.lang.String formName)
          sets the form name - used as a key field in session data management so this should be unique within an application.
 void setFormType(java.lang.String formType)
          Used for new search, paging, search within results, re-sort, whatever?
 void setOnSubmitHandler(java.lang.String onSubmitHandler)
           
 void setSubmitHandlerName(java.lang.String submitHandlerName)
           
 void updateSearchParams(RaritanPageContext pContext, OrderedMap searchParams)
          "callback" loop: SearchFormRenderer responsible for converting requests into one or more query maps.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DynamicSearchFormRenderer

public DynamicSearchFormRenderer()
Method Detail

initialize

public void initialize(org.w3c.dom.Element elem)
Initialize the search form renderer from the configuration XML.

Specified by:
initialize in interface ISearchFormRenderer

getBody

public java.lang.String getBody(java.lang.String searchFormName,
                                java.lang.String categoryName,
                                java.lang.String initialFields,
                                java.lang.String hiddenFields,
                                java.lang.String action,
                                java.lang.String formInitArgs,
                                RaritanPageContext pageContext)
Description copied from interface: ISearchFormRenderer
Main search form generation method. Creates a <form ...> ... </form> HTML fragment.

Specified by:
getBody in interface ISearchFormRenderer
Parameters:
searchFormName - Name of search form - Used to lookup a configuration element from application config. Sets the name="" attribute of the HTML form.
categoryName - Category of this search form (used for Source Map applications).
initialFields - Additional search form input fields - assumed to be HTML.
hiddenFields - List of hidden field name=value pairs.
action - Action URL (e.g. JSP or ASP page)
formInitArgs - Initial arguments to be passed in the <form> tag.
pageContext - Wraps the current page context. Contains session ID, session data HTTP request parameters. Can be used to set initial field values.

setFormType

public void setFormType(java.lang.String formType)
Used for new search, paging, search within results, re-sort, whatever?

Specified by:
setFormType in interface ISearchFormRenderer

getFormType

public java.lang.String getFormType()
Specified by:
getFormType in interface ISearchFormRenderer

setFormName

public void setFormName(java.lang.String formName)
sets the form name - used as a key field in session data management so this should be unique within an application.

Specified by:
setFormName in interface ISearchFormRenderer

getFormName

public java.lang.String getFormName()
Specified by:
getFormName in interface ISearchFormRenderer

setFormMethod

public void setFormMethod(java.lang.String formMethod)
sets the form method ( "get" or "post" )

Specified by:
setFormMethod in interface ISearchFormRenderer

getFormMethod

public java.lang.String getFormMethod()
Specified by:
getFormMethod in interface ISearchFormRenderer

addHiddenField

public void addHiddenField(java.lang.String fieldName,
                           java.lang.String fieldValue)
Adds a hidden field to the form.

Specified by:
addHiddenField in interface ISearchFormRenderer

addFormScript

public void addFormScript(java.lang.String scriptName,
                          java.lang.String script)
Adds a section of javascript to the form. The script should NOT be enclosed by a <script> </script> tag.

Specified by:
addFormScript in interface ISearchFormRenderer

getCategory

public java.lang.String getCategory()
Specified by:
getCategory in interface ISearchFormRenderer

getInitialFields

public java.lang.String getInitialFields()
Specified by:
getInitialFields in interface ISearchFormRenderer

getHiddenFields

public java.lang.String getHiddenFields()
Specified by:
getHiddenFields in interface ISearchFormRenderer

getActionURL

public java.lang.String getActionURL()
Specified by:
getActionURL in interface ISearchFormRenderer

getFormInitArgs

public java.lang.String getFormInitArgs()
Specified by:
getFormInitArgs in interface ISearchFormRenderer

setOnSubmitHandler

public void setOnSubmitHandler(java.lang.String onSubmitHandler)
Specified by:
setOnSubmitHandler in interface ISearchFormRenderer

getOnSubmitHandler

public java.lang.String getOnSubmitHandler(java.lang.String sessionID)
Specified by:
getOnSubmitHandler in interface ISearchFormRenderer

setSubmitHandlerName

public void setSubmitHandlerName(java.lang.String submitHandlerName)
Specified by:
setSubmitHandlerName in interface ISearchFormRenderer

getSubmitHandlerName

public java.lang.String getSubmitHandlerName()
Specified by:
getSubmitHandlerName in interface ISearchFormRenderer

updateSearchParams

public void updateSearchParams(RaritanPageContext pContext,
                               OrderedMap searchParams)
"callback" loop: SearchFormRenderer responsible for converting requests into one or more query maps.

Specified by:
updateSearchParams in interface ISearchFormRenderer

canUpdateSearchParams

public boolean canUpdateSearchParams()
Specified by:
canUpdateSearchParams in interface ISearchFormRenderer

addAfterFormData

public void addAfterFormData(java.lang.String afterFormData)
Specified by:
addAfterFormData in interface ISearchFormRenderer

getCurrentRenderer

protected ISearchFormRenderer getCurrentRenderer()
Returns:
Returns the currentRenderer.

setCurrentRenderer

protected void setCurrentRenderer(ISearchFormRenderer currentRenderer)
Parameters:
currentRenderer - The currentRenderer to set.