com.raritantechnologies.searchApp.database
Class DatabaseInputFormRenderer
java.lang.Object
com.raritantechnologies.searchApp.taglibrary.BasicSearchFormRenderer
com.raritantechnologies.searchApp.taglibrary.BasicInputFormRenderer
com.raritantechnologies.searchApp.database.DatabaseInputFormRenderer
- All Implemented Interfaces:
- IConfigurable, ISearchFormRenderer
- public class DatabaseInputFormRenderer
- extends BasicInputFormRenderer
Subclass of BasicInputFormRenderer that retrieves records from one or more RDBMS tables and
can update the database on a save action.
XML Configuration Template:
<SearchForm rendererClass="com.raritantechnologies.searchApp.database.DatabaseInputFormRenderer"
databaseConnectionManager="[Database connection manager SystemObject name]"
userID="field name pattern that contains User Name ]" >
<!-- Same format as BasicInputFormRenderer: -->
<Form action="somepage.jsp" method="post" submitText="Go" />
<DefaultFieldProperties rows="4" cols="30" maxCols="4" width="[ width of text fields ]" fieldClass="medText"
thClass="labelCell" tdClass="inputCell"
extraAttribs="onClick='javascript:saveItem()'" />
<UserPermission name="com.raritantechnologies.security.DBUserPermission" />
<Submit type="button" name="save" class="medText" value="Save" onClick="saveItem()" >
<SubmitHandler>
function saveItem()
{
// put the saveItem javascript here...
}
</SubmitHandler>
</Submit>
<Submit type="button" name="delete" class="medText" value="delete" onClick="deleteItem()" />
<RequiredFieldHandler type="popup/URL" href="theCheckingURL" popupMessage="the message for required fields" />
<!-- Fixed fields -->
<Field ID="[fieldID]" type="[type]" value="[its value ]" />
<!-- QueryMap: converts http request into SQL query and is used to set input form -->
<!-- values from DB table -->
<QueryMap>
<SQLFormatter
startBraceChar="[ character to start field name block - default is '{' ]"
endBraceChar="[ character to start field name block - default is '}' ]" >
<!-- =========================================================== -->
<!-- SQL template that request field values will be inserted -->
<!-- into. If this is HTML or XML, the template block should be -->
<!-- wrapped in a <!CDATA[ ]]> section. -->
<!-- =========================================================== -->
<Template>
SQL template that will have http request values inserted by the PatternRequestFormatter.
</Template>
</SQLFormatter>
<ResultMap>
<Field ID="[ field in form ]"
fieldType="text|textArea|checkbox|radio|readOnly|readOnlyHidden"
fieldName="[ column in DB Result ]"
headerClass="[ CSS class to render fieldName ]"
fieldClass="[ CSS class to render field value ]" />
<Field ID="[ field ID ]"
fieldName="[ column in DB result ]"
fieldType="custom" >
<SearchElementRenderer class="[ class of com.raritantechnologies.searchApp.taglibrary.ISearchElementRenderer ]" >
</SearchElementRenderer>
</Field>
</ResultMap>
</QueryMap>
<!-- One or more SaveActions: to handle updates or inserts, etc... -->
<SaveAction queryManager="[query manager SystemObject name]" >
<!-- Request name/value pair that triggers this SaveAction -->
<Request param="[ request parameter ]" value="[ value for this action ]" />
<!-- ==================================================================================== -->
<!-- One or more PatternRequestFormatters to convert Request parameters into SQL commands -->
<!-- ==================================================================================== -->
<SQLTemplates>
<SQLTemplate>INSERT INTO TABLE_NAME VALUES ( {FiELDNAME}, {FIELDNAME2}, {FIELDNAME3} )
<ChoiceTemplate>
<Test>select * from TABLE_NAME where FIELDNAME = {FIELDNAME}</Test>
<NullTemplates>
<SQLTemplate>[ SQL Statement to run if test is NULL ]</SQLTemplate>
</NullTemplates>
<UpdateTemplates>
<SQLTemplate>[ SQL Statement to run it test is NOT NULL ]</UseTemplate>
</UpdateTemplates>
</ChoiceTemplate>
</SQLTemplates>
</SaveAction>
<!-- SaveAction can also implement the ISaveAction interface: -->
<SaveAction class="[ class of com.raritantechnologies.searchApp.database.ISaveAction ]" >
</SaveAction>
</SearchForm>
| Fields inherited from class com.raritantechnologies.searchApp.taglibrary.BasicInputFormRenderer |
attributes, cols, fieldClass, itemType, itemTypeField, maxCols, rows, submitBeans, tableProps, tdClass, thClass, trProps, valueMap, width |
| Fields inherited from class com.raritantechnologies.searchApp.taglibrary.BasicSearchFormRenderer |
afterFormData, category, displayStyle, formInitArgs, formMethod, formName, hiddenFieldMap, hiddenFields, includeResetButton, includeSearchForm, includeSubmitButton, initialFields, onSubmitHandler, operatorMap, scriptMap, sourceMapName, submitButtonOnBottom, submitButtonText, submitHandlerName, targetFrame |
|
Method Summary |
java.lang.String |
getBody(java.lang.String searchFormName,
java.lang.String formCategory,
java.lang.String initialFields,
java.lang.String hiddenFields,
java.lang.String action,
java.lang.String formInitArgs,
RaritanPageContext pageContext)
Builds the form and table |
protected java.util.List |
getFields(java.lang.String searchFormName,
java.lang.String formCategory,
java.lang.String itemType,
RaritanPageContext pageContext)
Reads in the fields from the SearchFieldMap. |
protected java.lang.String |
getItemID(RaritanPageContext pageContext)
|
protected java.lang.String |
getItemType(RaritanPageContext pageContext)
|
void |
initialize(org.w3c.dom.Element elem)
Adds configurable properties to the renderer. |
protected void |
initValueMap(java.util.List fields,
RaritanPageContext pageContext)
Puts values into the valueMap. |
void |
runUpdates(RaritanPageContext pageContext)
|
| Methods inherited from class com.raritantechnologies.searchApp.taglibrary.BasicSearchFormRenderer |
addAfterFormData, addFormScript, addHiddenField, addHiddenFields, addPersistentFields, canUpdateSearchParams, getActionURL, getCategory, getFormInitArgs, getFormMethod, getFormName, getFormStart, getFormType, getHiddenFields, getInitialFields, getOnSubmitHandler, getSubmitHandlerName, renderHiddenFields, renderScripts, setFormMethod, setFormName, setFormType, setOnSubmitHandler, setSubmitHandlerName, updateSearchParams |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
DatabaseInputFormRenderer
public DatabaseInputFormRenderer()
getBody
public java.lang.String getBody(java.lang.String searchFormName,
java.lang.String formCategory,
java.lang.String initialFields,
java.lang.String hiddenFields,
java.lang.String action,
java.lang.String formInitArgs,
RaritanPageContext pageContext)
- Description copied from class:
BasicInputFormRenderer
- Builds the form and table
- Specified by:
getBody in interface ISearchFormRenderer- Overrides:
getBody in class BasicInputFormRenderer
- Parameters:
searchFormName - The name of the searchForm in the configuration SearchFieldMapformCategory - The category of the searchForminitialFields - Text or fields that will prepend the form. Can be used to include
feedback or other information - need not be structured as form fields.hiddenFields - Pipe ('|') and colon (':') delimited list of hidden field name=value pairs.action - Form actionformInitArgs - Optional html parameters added to
runUpdates
public void runUpdates(RaritanPageContext pageContext)
getFields
protected java.util.List getFields(java.lang.String searchFormName,
java.lang.String formCategory,
java.lang.String itemType,
RaritanPageContext pageContext)
- Description copied from class:
BasicInputFormRenderer
- Reads in the fields from the SearchFieldMap.
- Overrides:
getFields in class BasicInputFormRenderer
initValueMap
protected void initValueMap(java.util.List fields,
RaritanPageContext pageContext)
- Description copied from class:
BasicInputFormRenderer
- Puts values into the valueMap. Which puts specific values into the form fields.
Subclasses should override this to add dynamic fields (i.e. possibly using lookup methods
to get field values).
- Overrides:
initValueMap in class BasicInputFormRenderer
getItemID
protected java.lang.String getItemID(RaritanPageContext pageContext)
- Overrides:
getItemID in class BasicInputFormRenderer
getItemType
protected java.lang.String getItemType(RaritanPageContext pageContext)
- Overrides:
getItemType in class BasicInputFormRenderer
initialize
public void initialize(org.w3c.dom.Element elem)
- Description copied from class:
BasicSearchFormRenderer
- Adds configurable properties to the renderer.
- Specified by:
initialize in interface ISearchFormRenderer- Overrides:
initialize in class BasicInputFormRenderer