com.raritantechnologies.searchApp.taglibrary
Class DynamicSearchPropertySetter

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

public class DynamicSearchPropertySetter
extends java.lang.Object
implements ISearchFormRenderer, ISearchElementRenderer, IPageContextRenderer

Generalized wrapper for ISearchFormRenderer and ISearchElementRenderers that can update object properties dynamically using a SearchSource.

XML Configuration Template:
   <SearchElementRenderer class="com.raritantechnologies.searchApp.taglibrary.DynamicSearchPropertySetter"
                             searchSourceName="[ name of search source for dynamic properties ]" >

     <SearchFields>
        <Field searchField="[ search field ID ]" inputName="[ name of input field or get property method ]"
                                           inputType="[REQUEST|USER|PROPERTY]" />

     </SearchFields>

     <OutputProperties>
        <Property resultFields="[ name of field(s) in search result in order that they will be put into setMethod ]"
                     setMethodName="[ name of property setter method in proxyRenderer object ]" />
     </OutputProperties>

     <ProxyRenderer class=" class of com.raritantechnologies.searchApp.taglibrary.ISearchFormRenderer OR
                                        com.raritantechnologies.searchApp.taglibrary.ISearchElementRenderer OR
                                        com.raritantechnologies.searchApp.taglibrary.IPageContextRenderer ]" >
     </ProxyRenderer>

   </SearchElementRenderer>
 


Field Summary
 
Fields inherited from interface com.raritantechnologies.searchApp.taglibrary.ISearchFormRenderer
CLEAR, PAGE, PAGE_NUM, PAGE_SIZE, RESET, SEARCH
 
Constructor Summary
DynamicSearchPropertySetter()
           
 
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(ISearchFormRenderer parent, RaritanPageContext pageContext)
          Returns the element html fragment.
 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()
           
 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)
           
 ISearchElementRenderer getRenderer(java.lang.String name)
          Returns ISearchElementRenderer of this render or a nested renderer matching the name given or null if no match is found.
 java.lang.String getSubmitHandlerName()
           
 void initialize(org.w3c.dom.Element elem)
          Initialize the search form renderer from the application Configuration XML.
 boolean isHidden(ISearchFormRenderer parent, RaritanPageContext pageContext)
           
 java.lang.String render(RaritanPageContext pageContext)
          Returns the tag body.
 void setEnable(boolean enabled)
          Enable/Disable the renderer.
 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

DynamicSearchPropertySetter

public DynamicSearchPropertySetter()
Method Detail

render

public java.lang.String render(RaritanPageContext pageContext)
Description copied from interface: IPageContextRenderer
Returns the tag body.

Specified by:
render in interface IPageContextRenderer
Parameters:
pageContext - Platform-neutral page context ( can be used in non J2EE environments such as ASP).
Returns:
The tag body text string.

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)
Description copied from interface: ISearchFormRenderer
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)
Description copied from interface: ISearchFormRenderer
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)
Description copied from interface: ISearchFormRenderer
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)
Description copied from interface: ISearchFormRenderer
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)
Description copied from interface: ISearchFormRenderer
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)
Description copied from interface: ISearchFormRenderer
"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

getBody

public java.lang.String getBody(ISearchFormRenderer parent,
                                RaritanPageContext pageContext)
Description copied from interface: ISearchElementRenderer
Returns the element html fragment.

Specified by:
getBody in interface ISearchElementRenderer

isHidden

public boolean isHidden(ISearchFormRenderer parent,
                        RaritanPageContext pageContext)
Specified by:
isHidden in interface ISearchElementRenderer

setEnable

public void setEnable(boolean enabled)
Enable/Disable the renderer. Disabled renderers are not included in the html output of an ISearchFormRenderer.

Specified by:
setEnable in interface ISearchElementRenderer

getRenderer

public ISearchElementRenderer getRenderer(java.lang.String name)
Description copied from interface: ISearchElementRenderer
Returns ISearchElementRenderer of this render or a nested renderer matching the name given or null if no match is found.

Specified by:
getRenderer in interface ISearchElementRenderer

initialize

public void initialize(org.w3c.dom.Element elem)
Description copied from interface: ISearchFormRenderer
Initialize the search form renderer from the application Configuration XML.

Specified by:
initialize in interface ISearchFormRenderer