com.raritantechnologies.quickstart.taglibrary
Class DropdownMenuLinkRenderer

java.lang.Object
  extended bycom.raritantechnologies.searchApp.taglibrary.BasicResultRenderer
      extended bycom.raritantechnologies.quickstart.taglibrary.DropdownMenuLinkRenderer
All Implemented Interfaces:
IConfigurable, IPreferencesBeanInfo, IResultRenderer

public class DropdownMenuLinkRenderer
extends BasicResultRenderer
implements IResultRenderer

Generates a Dropdown menu linked to a form Submit or javascript function. For example, for use in a Federated search hyperlink from a search result. Dropdown selection triggers the form submit. The result parameters are used to create a form request parameters.

XML Configuration Template:
    <ResultRenderer 
         rendererClass="com.raritantechnologies.quickstart.taglibrary.DropdownMenuLinkRenderer" 
         form="theFormName" 
         action="theActionURL.jsp" 
         target="[ optional target window ]"
         method="get" 
         writeFormTag="[true|false(default) - if true, writes a <form> tag ]" 
         onChange="[optional on change javacript function name ]"
         useTriggerButton="[true|false(default) ]"
         maxDisplayChars="[ maximum length of display ]" >

       <!-- Determines the hidden fields that will be added to the form -->
       <Fields>
         <Field ID="[ request field ID ]" />  <!-- creates hidden tag if name not specified use ID for name -->
         <Field ID="[ request field ID ]" name="[ http parameter name to Use ]" />
       </Fields>

       <!-- Fixed Params -->
       <Params>
         <Param name="[ name of parameter ]" value="[ parameter value ]" />  <!-- creates hidden field -->
       </Params>

       <!-- Defines the fixed select dropdown that will be rendered for each result in the result set -->
       <Select name="selectParam" >
         <Option name="option1 [human readable name]" value="option1Val" />
         <Option name="option2" value="option2Val" />
         <Option name="option2" value="option2Val" />

         <!-- alternatively, an option value can be a direct hyperlink -->
         <Option name="[ human readable name ]" hrefField="[ field to get hyperlink ]" /> 

         <!-- alternatively, an option value can be generated by a nested IResultRenderer -->
         <Option name="[ human readable name ]" > 
           <ResultRenderer class="[ class of com.raritantechnologies.searchApp.taglibrary.IResultRenderer ]" >

           </ResultRenderer>
         </Option>

       </Select>

       <!-- Alternatively, can build the option list from a set of values of a multi-valued field -->
       <Select name="selectParam" resultField="[multi-valued field]" />

       <!-- Third Alternative: Use a Lookup Source to get dropdown info from values in a result field -->
       <Select searchSource="searchSourceName"
             resultNameField="[field ID from search result that has choice name]"
             resultValueField="[field ID from search result that has choice value]"
             alwaysInitialize="true|false(default)"
             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 resultField="[ field in result ]" 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>

      </Select>

       <!-- Javascript function to be added -->
       <OnChangeFunction>
          <!-- custom javascript function here... -->
       </OnChangeFunction>

     </ResultRenderer>
  

Generates this html:

'firstParams', is the param list. Need javascript function to put this into a hidden fields form if this is a post OR build the URL if a get and use a replace( ) function.
   <form name="theFormName" action="theActionURL.jsp" method="get" />
   <!-- dynamic fields with values derived from the Result -->
   <input type="hidden" name="foo" value="[will get value of 'foo' parameter in selected Result dropdown]" />
   <input type="hidden" name="nameToUse" value="[will get value of 'farall' parameter in selected Result dropdown]" />

   <!-- static fields with values derived from configuration XML -->
   <input type="hidden" name="la" value="va" />

   <select name="selectParam_1" onChange="javascript:didChange( this, 'foo=whaziz|nameToUse=12345' );" >
     <option value=""></option>
     <option value="option1value">option 1 human readable name</option>
     <option value="option2value">option 2 human readable name</option>
     <option value="hyperlink" >option 3 human readable name</option>
   </select>

   <br><br>
   <select name="selectParam_2" onChange="javascript:didChange( this, 'foo=nada|nameToUse=98762' );" >
     <option value=""></option>
     <option value="option1Val">option1 human readable name</option>
     <option value="option2Val">option2 human readable name</option>
   </select>

   <script language="javascript" >
   function didChange( select, fromSelect )
   {
       // this is where we do the form submit...
       alert( select.value + ' ' + fromSelect );
   }
   </script>
  </form>
 

Developed by Raritan Technologies Inc..

Author:
Ted Sullivan, Kepler Gelotte

Field Summary
 
Fields inherited from class com.raritantechnologies.searchApp.taglibrary.BasicResultRenderer
enabled, name, prefBeanName, prefCompareValue, prefEnableIfInChecklist, prefEnableIfInYesno
 
Fields inherited from interface com.raritantechnologies.searchApp.taglibrary.IResultRenderer
TEMPLATE
 
Constructor Summary
DropdownMenuLinkRenderer()
           
 
Method Summary
 void addParamField(java.lang.String fieldName, java.lang.String fieldValue)
           
 void addResultField(java.lang.String fieldID, java.lang.String fieldName)
           
 void addSelectOption(java.lang.String optionName, java.lang.String optionValue, boolean defaultSelected)
           
protected  java.lang.String doRenderResult(IResult result, int firstResult, int lastResult, int resultNum, RaritanPageContext pageContext)
           
 java.lang.String getAction()
           
 java.lang.String getConfigurationXML()
           
 java.lang.String getConfigurationXML(java.lang.String configurationTemplate)
           
 void getConfigurationXML(java.io.Writer writer)
           
 java.lang.String getForm()
           
 java.lang.String getMethod()
           
 java.lang.String getOnChange()
           
 java.lang.String getOnChangeScript()
           
 java.lang.String getSelectParam()
           
 java.lang.String getSelectResultField()
           
 boolean getWriteForm()
           
 void initialize(org.w3c.dom.Element elem)
          IResultRenderers are XML configurable.
 void setAction(java.lang.String action)
           
 void setForm(java.lang.String form)
           
 void setMethod(java.lang.String method)
           
 void setOnChange(java.lang.String onChange)
           
 void setOnChangeScript(java.lang.String onChangeScript)
           
 void setSelectParam(java.lang.String selectParam)
           
 void setSelectResultField(java.lang.String selectResultField)
           
 void setWriteForm(boolean writeForm)
           
 
Methods inherited from class com.raritantechnologies.searchApp.taglibrary.BasicResultRenderer
getPrefBeanName, getPrefCompareValue, getPrefEnableIfInChecklist, getPrefEnableIfInYesno, getRenderer, isEnabled, renderResult, setEnable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.raritantechnologies.searchApp.taglibrary.IResultRenderer
getRenderer, isEnabled, renderResult, setEnable
 

Constructor Detail

DropdownMenuLinkRenderer

public DropdownMenuLinkRenderer()
Method Detail

initialize

public void initialize(org.w3c.dom.Element elem)
Description copied from interface: IResultRenderer
IResultRenderers are XML configurable.

Specified by:
initialize in interface IResultRenderer
Overrides:
initialize in class BasicResultRenderer

doRenderResult

protected java.lang.String doRenderResult(IResult result,
                                          int firstResult,
                                          int lastResult,
                                          int resultNum,
                                          RaritanPageContext pageContext)
Specified by:
doRenderResult in class BasicResultRenderer

setAction

public void setAction(java.lang.String action)

getAction

public java.lang.String getAction()

setMethod

public void setMethod(java.lang.String method)

getMethod

public java.lang.String getMethod()

setSelectParam

public void setSelectParam(java.lang.String selectParam)

getSelectParam

public java.lang.String getSelectParam()

setSelectResultField

public void setSelectResultField(java.lang.String selectResultField)

getSelectResultField

public java.lang.String getSelectResultField()

setForm

public void setForm(java.lang.String form)

getForm

public java.lang.String getForm()

setOnChange

public void setOnChange(java.lang.String onChange)

getOnChange

public java.lang.String getOnChange()

setOnChangeScript

public void setOnChangeScript(java.lang.String onChangeScript)

getOnChangeScript

public java.lang.String getOnChangeScript()

setWriteForm

public void setWriteForm(boolean writeForm)

getWriteForm

public boolean getWriteForm()

addResultField

public void addResultField(java.lang.String fieldID,
                           java.lang.String fieldName)

addParamField

public void addParamField(java.lang.String fieldName,
                          java.lang.String fieldValue)

addSelectOption

public void addSelectOption(java.lang.String optionName,
                            java.lang.String optionValue,
                            boolean defaultSelected)

getConfigurationXML

public void getConfigurationXML(java.io.Writer writer)
                         throws java.io.IOException
Throws:
java.io.IOException

getConfigurationXML

public java.lang.String getConfigurationXML()
Specified by:
getConfigurationXML in interface IResultRenderer

getConfigurationXML

public java.lang.String getConfigurationXML(java.lang.String configurationTemplate)
Specified by:
getConfigurationXML in interface IResultRenderer