com.raritantechnologies.quickstart.taglibrary
Class DropdownMenuLinkRenderer
java.lang.Object
com.raritantechnologies.searchApp.taglibrary.BasicResultRenderer
com.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
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DropdownMenuLinkRenderer
public DropdownMenuLinkRenderer()
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