com.raritantechnologies.quickstart.taglibrary.forms
Class SelectElementRenderer

java.lang.Object
  extended bycom.raritantechnologies.searchApp.taglibrary.BasicSearchElementRenderer
      extended bycom.raritantechnologies.quickstart.taglibrary.forms.SelectElementRenderer
All Implemented Interfaces:
IConfigurable, IElementValueBuilder, ISearchElementRenderer

public class SelectElementRenderer
extends BasicSearchElementRenderer
implements IElementValueBuilder

Creates an HTML select (dropdown) element of a SearchForm.

The data in the dropdown list can be statically defined in the configuration XML or they can be loaded from a Raritan SearchSource.

SelectElementRenderer also implements the IElementValueBuilder interface so that it can be updated dynamically if wrapped in a SearchSourceElementWrapper.

XML Configuration Template:
  <SearchElementRenderer 
     rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.SelectElementRenderer"
     fieldID="theFieldID" 
     tagID="[ javascript tag ID ]"
     cssClass="[ optional CSS class name ]"
     style="[ optional style value ]"
     multiSelect="[ true|false(default) ]" 
     size="[ number to show on multi select ]"
     onChangeHandler="javascript:doSomething( this );" 
     onKeydownHandler="[ optional onkeydown handler ]"
     submitOnChange="[ true|false(default) ]"
     initClear="[ true|false(default) ]"
     initFrom="[ request|lastQuery|dataWrapper ]"
     initField="[ alternate field to init from ]"
     fixWidth="[ max chars for name ]" >

    <!-- ================================================================= -->
    <!-- Static configuration version - get Choices from Configuration XML -->
    <!-- ================================================================= -->
    <Data>
      <Choice value="aVal" name="A Value" default="on"/>
      <Choice value="bVal" name="B Value" />
      <Choice value="cVal" name="C Value" />
    </Data>

    <!-- ================================================================= -->
    <!-- Dynamic configuration - lookup Choices from a Search Source.      -->
    <!--  Use SearchSource as a Lookup source:                             -->
    <!--    If resultNameField and resultValueField are used, use the      -->
    <!--    SearchSourceto lookup the set of values.                       -->
    <!--  Use source search fields directly:                               -->
    <!--    Setting useSourceFields=true specifies that the                -->
    <!--    SearchSource.getSearchFields( ) method is used to load         -->
    <!--    the select list.                                               -->
    <!-- ================================================================= -->
    <Data searchSource="[ static name of SearchSource ]"
             sourceNameParam="[ name of parameter to get selected search source (dynamic) ]"
             useSourceFields="[ false | true ]"
             resultNameField="[ field ID from search result that has choice name ]"
             resultValueField="[ field ID from search result that has choice value ]"
             alwaysInitialize="true|false(default)"
             useStaticCache="[ true|false(default) - if true initialize and store in cache by fieldID ]"
             dedupeResults="true|false(default)"
             sortResults="true|false(default)"
             noSelectionChoice="[ message for non-selection ]"
             blankQueryReturnsAll="true|false(default)" >

      <!-- Optional query to search source -->
      <Query>
        <!-- one or more query parameter id=value pairs -->
        <Param ID="[ parameter ID ]" value="[ query value ]" />

        <!-- Alternatively search parameters can be derived from the http request -->
        <Param requestField="[ field in http request ]" sourceField="[ name of field in lookup source ]" />
      </Query>

      <!-- Optional StringFilter to filter the data values before insertion into select list -->
      <ValueFilter class=" [ class of com.raritantechnologies.utils.filter.IStringFilter ] " >
      
      </ValueFilter>

    </Data>

    <!-- ================================================================= -->
    <!--                Get Data from an ICollectionGateway                -->
    <!-- ================================================================= -->
    <Data collectionGatewayClass="[ class of com.raritantechnologies.searchApp.dataCollection.ICollectionGateway ]"
             resultNameField="[ field ID from search result that has choice name ]"
             resultValueField="[ field ID from search result that has choice value ]"
             alwaysInitialize="true|false(default)"
             useStaticCache="[ true|false(default) - if true initialize and store in cache by fieldID ]"
             dedupeResults="true|false(default)"
             sortResults="true|false(default)"
             noSelectionChoice="[ message for non-selection ]" >

       <!-- Parameters needed by the ICollectionGateway -->

    </Data>

    <Data selectListSourceClass="[ class of com.raritantechnologies.quickstart.taglibrary.forms.ISelectListSource ]" >

    </Data>

    <!-- ================================================================= -->
    <!--                 Get Data from multi-value request                 -->
    <!-- ================================================================= -->
    <Data requestParam="[ name or http request containing multiple values ]"
             delimiter="[ multi value delimiter ',' is default ]"
             noSelectionChoice="[ message for non-selection ]" >

       <!-- Optional StringFilter to manipulate selection name -->
       <NameFilter class="[ class of com.raritantechnologies.utils.filter.IStringFilter ]" >
       </NameFilter>

       <ValueFilter class="[ class of com.raritantechnologies.utils.filter.IStringFilter ]" >
       </ValueFilter>
    </Data>

    <Data 

    <!-- optional InitFromControl to provide context-dependent control of refresh: -->
    <InitFromControl requestParam="formType" defaultValue="[request|lastQuery|searchSource]" >
      <Request value="[ formType value or 'null' ]"  initFrom="[ one of request|lastQuery|searchSource]" />
    </InitFromControl>

    <!-- optional javascript function that will be invoked on a selection event -->
    <OnChangeFunction>
       function doSomething( select )
       {
           // javascript here...
       }
    </OnChangeFunction>

  </SearchElementRenderer>
  

Developed by Raritan Technologies Inc..

Author:
Ted Sullivan

Field Summary
protected  boolean useSearchSource
           
protected  boolean useSourceFields
           
 
Fields inherited from class com.raritantechnologies.searchApp.taglibrary.BasicSearchElementRenderer
enabled, name
 
Constructor Summary
SelectElementRenderer()
           
 
Method Summary
 void addDataChoice(java.lang.String choiceVal, java.lang.String choiceName)
           
 void clearDataChoices()
           
protected  java.lang.String doGetBody(ISearchFormRenderer parent, RaritanPageContext pageContext)
           
 OrderedMap getChoiceData()
           
 boolean getClearField()
           
 java.lang.String getConfigurationXML()
           
 java.lang.String getCssClass()
           
 java.lang.String getDefaultChoice()
           
 java.lang.String getFieldID()
           
 int getFixWidth()
           
 java.lang.String getInitFrom(java.lang.String initFrom)
           
 boolean getMultiSelect()
           
 java.lang.String getOnChangeFunction()
           
 java.lang.String getOnChangeHandler()
           
 OrderedMap getQueryMap()
           
 java.lang.String getResultNameField()
           
 java.lang.String getResultValueField()
           
 java.lang.String getSearchSourceName()
           
 java.lang.String getSize()
           
 boolean getSubmitOnChange()
           
 void initialize(org.w3c.dom.Element elem)
          Initialize renderer-specific parameters from the configuration XML tag.
protected  void initializeChoices(RaritanPageContext pageContext)
           
 void setChoiceData(java.lang.String[] values, java.lang.String[] names)
           
 void setClearField(boolean clearField)
           
 void setCssClass(java.lang.String cssClass)
           
 void setDefaultChoice(java.lang.String defaultChoice)
           
 void setFieldID(java.lang.String fieldID)
           
 void setFixWidth(int fixWidth)
           
 void setInitFrom(java.lang.String initFrom)
           
 void setMultiSelect(boolean multiSelect)
           
 void setOnChangeFunction(java.lang.String onChangeFunction)
           
 void setOnChangeHandler(java.lang.String onChangeHandler)
           
 void setQueryMap(java.lang.String[] fieldIDs, java.lang.String[] values)
           
 void setResultNameField(java.lang.String resultNameField)
           
 void setResultValueField(java.lang.String resultValueField)
           
 void setSearchSourceName(java.lang.String searchSourceName)
           
 void setSelectedValues(java.util.ArrayList values)
           
 void setSize(java.lang.String size)
           
 void setSubmitOnChange(boolean submitOnChange)
           
 void setValue(java.lang.String value)
           
 
Methods inherited from class com.raritantechnologies.searchApp.taglibrary.BasicSearchElementRenderer
doGetBodyDisabled, getBody, getInitValue, getInitValue, getInitValue, getRenderer, isHidden, setEnable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

useSourceFields

protected boolean useSourceFields

useSearchSource

protected boolean useSearchSource
Constructor Detail

SelectElementRenderer

public SelectElementRenderer()
Method Detail

initialize

public void initialize(org.w3c.dom.Element elem)
Description copied from interface: ISearchElementRenderer
Initialize renderer-specific parameters from the configuration XML tag.

Specified by:
initialize in interface ISearchElementRenderer
Overrides:
initialize in class BasicSearchElementRenderer

clearDataChoices

public void clearDataChoices()
Specified by:
clearDataChoices in interface IElementValueBuilder

addDataChoice

public void addDataChoice(java.lang.String choiceVal,
                          java.lang.String choiceName)
Specified by:
addDataChoice in interface IElementValueBuilder

setValue

public void setValue(java.lang.String value)
Specified by:
setValue in interface IElementValueBuilder

setSelectedValues

public void setSelectedValues(java.util.ArrayList values)
Specified by:
setSelectedValues in interface IElementValueBuilder

doGetBody

protected java.lang.String doGetBody(ISearchFormRenderer parent,
                                     RaritanPageContext pageContext)
Specified by:
doGetBody in class BasicSearchElementRenderer

initializeChoices

protected void initializeChoices(RaritanPageContext pageContext)

setFieldID

public void setFieldID(java.lang.String fieldID)

getFieldID

public java.lang.String getFieldID()

setDefaultChoice

public void setDefaultChoice(java.lang.String defaultChoice)

getDefaultChoice

public java.lang.String getDefaultChoice()

setCssClass

public void setCssClass(java.lang.String cssClass)

getCssClass

public java.lang.String getCssClass()

setOnChangeHandler

public void setOnChangeHandler(java.lang.String onChangeHandler)

getOnChangeHandler

public java.lang.String getOnChangeHandler()

setSize

public void setSize(java.lang.String size)

getSize

public java.lang.String getSize()

setChoiceData

public void setChoiceData(java.lang.String[] values,
                          java.lang.String[] names)

getChoiceData

public OrderedMap getChoiceData()

setMultiSelect

public void setMultiSelect(boolean multiSelect)

getMultiSelect

public boolean getMultiSelect()

setSubmitOnChange

public void setSubmitOnChange(boolean submitOnChange)

getSubmitOnChange

public boolean getSubmitOnChange()

setOnChangeFunction

public void setOnChangeFunction(java.lang.String onChangeFunction)

getOnChangeFunction

public java.lang.String getOnChangeFunction()

setInitFrom

public void setInitFrom(java.lang.String initFrom)

getInitFrom

public java.lang.String getInitFrom(java.lang.String initFrom)

setClearField

public void setClearField(boolean clearField)

getClearField

public boolean getClearField()

setSearchSourceName

public void setSearchSourceName(java.lang.String searchSourceName)

getSearchSourceName

public java.lang.String getSearchSourceName()

setResultNameField

public void setResultNameField(java.lang.String resultNameField)

getResultNameField

public java.lang.String getResultNameField()

setResultValueField

public void setResultValueField(java.lang.String resultValueField)

getResultValueField

public java.lang.String getResultValueField()

setQueryMap

public void setQueryMap(java.lang.String[] fieldIDs,
                        java.lang.String[] values)

getQueryMap

public OrderedMap getQueryMap()

setFixWidth

public void setFixWidth(int fixWidth)

getFixWidth

public int getFixWidth()

getConfigurationXML

public java.lang.String getConfigurationXML()