|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.raritantechnologies.rql.topic.taglibrary.TopicSearchFormRenderer
Creates / Manages dynamic advanced query forms based on the Topic object model.
Can render and then manipulate an advanced query string as an Advanced Search Form.
Uses an ITopicParser to convert the query string into a Topic tree.
Maps the Topic Tree to a set of search form elements.
(fieldName:fieldValue) and (fieldName:(field values))
Persistence:Uses file I/O to save and restore the query rule in XML form. To save the current Query Rule,
the internal query rule object is first transformed into an RQLMap (OrderedMap) which is in turn transformed to XML by an
XMLQueryParser. Restoring the query rule from a file follows
an inverse process, the XML is transformed to an RQLMap by the XMLQueryParser.createQuery( ) method
XML Configuration Template:
<SearchForm name="[ search form name ]" category="[ associated SourceMap category ]"
rendererClass="com.raritantechnologies.rql.topic.taglibrary.TopicSearchFormRenderer"
formCacheName="[ key for session cache of intermediate form object ]"
textInputSize="[ size of text input box ]"
saveTopicCommand="[ request command that will cause the current QueryRule to be saved ]"
loadTopicCommand="[ ]"
clearTopicCommand="[ ]"
addFreeTextField="[ true(default)|false ]"
freeTextDisplayName="[ name of Free Text field in field dropdown list ]"
freeTextFieldName="[ name of free text field ID (e.g. "query" ) ]" >
<!-- Additional SearchElementRenderer(s) to be added to the SearchForm -->
<SearchElementRenderer class="[ class of com.raritantechnologies.searchApp.taglibrary.ISearchElementRenderer ]"
position="[ TOP | BOTTOM ]" >
</SearchElementRenderer>
<!-- Alternate Submit Renderer. These will be rendered instead of the standard submit button -->
<!-- For multiple submit elements, use a SearchFormRowRenderer or SearchFormColumnRenderer -->
<SubmitElementRenderer class="[ class of com.raritantechnologies.searchApp.taglibrary.ISearchElementRenderer ]" >
</SubmitElementRenderer>
<HiddenParameters>
<Param ID="[ name of request parameter that should be preserved as a hidden field ]" />
</HiddenParameters>
<!-- ==================================================================== -->
<!-- QuerySource: Handles Query Rule Persistence (retrieval) -->
<!-- ==================================================================== -->
<QuerySource>
<!-- ========================================================== -->
<!-- Parameter mappings for QueryResultBean search -->
<!-- ========================================================== -->
<QueryParams>
<!-- Fixed Params -->
<Param ID="[ parameter in query ]" value="[ value of fixed parameter ]" />
<!-- Request Params -->
<Param requestField="[ name of parameter in http request ]" queryField="[ name of field in QueryResultSetReader search ]" />
</QueryParams>
<QueryResultReader class="[ class of com.raritantechnologies.searchApp.query.IQueryResultSetReader ]" >
</QueryResultReader>
</QuerySource>
<!-- ==================================================================== -->
<!-- OutputSource: Handles Query Rule persistence: (storage) -->
<!-- ==================================================================== -->
<OutputSource queryNameParam="[ name of request parameter that provides QueryResultBean 'name' ]"
documentClassifier="[ name of DocumentClassifier to update ]" >
<!-- ========================================================== -->
<!-- Parameter mappings for QueryResultBean adhoc parameters -->
<!-- ========================================================== -->
<AdhocParams>
<!-- Fixed Params -->
<Param ID="[ parameter in query ]" value="[ value of fixed parameter ]" />
<!-- Request Params -->
<Param requestField="[ name of parameter in http request ]" adhocField="[ name of field in QueryResultSetReader search ]" />
</AdhocParams>
<QueryResultWriter class="[ class of com.raritantechnologies.searchApp.query.IQueryResultSetWriter ]" >
</QueryResultWriter>
</OutputSource>
</SearchForm>
| Nested Class Summary | |
class |
TopicSearchFormRenderer.BooleanField
Inner class that contains the object model for the search form. |
| Field Summary | |
static java.lang.String |
ADD_QUERY
|
static java.lang.String |
ADD_TOPIC
|
static java.lang.String |
DELETE_QUERY
|
static java.lang.String |
MOVE_DOWN
|
static java.lang.String |
MOVE_UP
|
| Fields inherited from interface com.raritantechnologies.searchApp.taglibrary.ISearchFormRenderer |
CLEAR, PAGE, PAGE_NUM, PAGE_SIZE, RESET, SEARCH |
| Constructor Summary | |
TopicSearchFormRenderer()
|
|
| 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. |
void |
addHiddenFields(RaritanPageContext pageContext,
java.lang.String hiddenFields)
|
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)
create/update the advanced search form from inputs and SearchSource properties. |
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)
|
java.lang.String |
getSubmitHandlerName()
|
void |
initialize(org.w3c.dom.Element elem)
Initialize the search form renderer from the application Configuration XML. |
void |
setBooleanForm(OrderedMap rqlQuery)
|
static void |
setCachedBooleanField(java.lang.String sessionID,
java.lang.String formCacheName,
java.lang.String searchSourceName,
OrderedMap rqlMapQuery)
Static method to set the BooleanField object for a session from an RQLMap query (RTI OrderedMap ) |
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 |
| Field Detail |
public static final java.lang.String ADD_QUERY
public static final java.lang.String DELETE_QUERY
public static final java.lang.String MOVE_UP
public static final java.lang.String MOVE_DOWN
public static final java.lang.String ADD_TOPIC
| Constructor Detail |
public TopicSearchFormRenderer()
| Method Detail |
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)
getBody in interface ISearchFormRenderersearchFormName - Name of search form - Used to lookup a 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.
public void addHiddenFields(RaritanPageContext pageContext,
java.lang.String hiddenFields)
public void initialize(org.w3c.dom.Element elem)
ISearchFormRenderer
initialize in interface ISearchFormRendererpublic void setBooleanForm(OrderedMap rqlQuery)
public void setFormType(java.lang.String formType)
ISearchFormRenderer
setFormType in interface ISearchFormRendererpublic java.lang.String getFormType()
getFormType in interface ISearchFormRendererpublic void setFormName(java.lang.String formName)
setFormName in interface ISearchFormRendererpublic java.lang.String getFormName()
getFormName in interface ISearchFormRendererpublic void setFormMethod(java.lang.String formMethod)
setFormMethod in interface ISearchFormRendererpublic java.lang.String getFormMethod()
getFormMethod in interface ISearchFormRenderer
public void addHiddenField(java.lang.String fieldName,
java.lang.String fieldValue)
addHiddenField in interface ISearchFormRenderer
public void addFormScript(java.lang.String scriptName,
java.lang.String script)
addFormScript in interface ISearchFormRendererpublic java.lang.String getCategory()
getCategory in interface ISearchFormRendererpublic java.lang.String getInitialFields()
getInitialFields in interface ISearchFormRendererpublic java.lang.String getHiddenFields()
getHiddenFields in interface ISearchFormRendererpublic java.lang.String getActionURL()
getActionURL in interface ISearchFormRendererpublic java.lang.String getFormInitArgs()
getFormInitArgs in interface ISearchFormRendererpublic void setOnSubmitHandler(java.lang.String onSubmitHandler)
setOnSubmitHandler in interface ISearchFormRendererpublic java.lang.String getOnSubmitHandler(java.lang.String sessionID)
getOnSubmitHandler in interface ISearchFormRendererpublic void setSubmitHandlerName(java.lang.String submitHandlerName)
setSubmitHandlerName in interface ISearchFormRendererpublic java.lang.String getSubmitHandlerName()
getSubmitHandlerName in interface ISearchFormRenderer
public static void setCachedBooleanField(java.lang.String sessionID,
java.lang.String formCacheName,
java.lang.String searchSourceName,
OrderedMap rqlMapQuery)
public void updateSearchParams(RaritanPageContext pContext,
OrderedMap searchParams)
updateSearchParams in interface ISearchFormRendererpublic boolean canUpdateSearchParams()
canUpdateSearchParams in interface ISearchFormRendererpublic void addAfterFormData(java.lang.String afterFormData)
addAfterFormData in interface ISearchFormRenderer
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||