XML Configuration for this example:
<!-- ======================================================================================= -->
<!-- EditTreeForm: used in DBTreeRenderer demo. -->
<!-- ======================================================================================= -->
<SearchForm name="EditTreeForm"
rendererClass="com.raritantechnologies.searchApp.taglibrary.SearchFormTableRenderer"
tableProps="align='left' " >
<!-- Select Taxonomies: Special case logic: use DBTreeBuilder_taxName as initField to and -->
<!-- force the renderer to update from sessionData. This is done to achieve correct response -->
<!-- on a 'Change Taxonomy Name' command by synchronizing with the DBTreeManager. --> -->
<!-- Also note that the fieldID is not used because -->
<!-- the taxName can be changed. Uses a hidden field ('taxName') that is coordinated using -->
<!-- the javascript action. -->
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.SelectElementRenderer"
fieldID="taxNameSel"
multiSelect="false"
submitOnChange="true"
onChangeHandler="javascript:changeTaxonomy( this );"
initFrom="sessionData" initField="DBTreeManager_taxName" >
<Data searchSource="TaxonomyNameSearch"
resultNameField="TaxonomyName"
resultValueField="TaxonomyName"
alwaysInitialize="true"
noSelectionChoice="- Select Taxonomy -" >
</Data>
<OnChangeFunction>
function changeTaxonomy( select )
{
document.forms['EditTreeForm'].elements['nodeName'].value = select.value;
document.forms['EditTreeForm'].elements['nodeID'].value = document.forms['NodeIDsForm'].elements[ select.value ].value;
document.forms['EditTreeForm'].elements['taxName'].value = select.value;
document.forms['EditTreeForm'].elements['command'].value = 'selectTaxonomy';
document.forms['EditTreeForm'].submit( );
return false;
}
</OnChangeFunction>
</SearchElementRenderer>
<!-- End of SelectElementRenderer -->
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.HiddenInputElementRenderer"
fieldID="nodeID" initFrom="request" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.HiddenInputElementRenderer"
fieldID="taxName"
initFrom="sessionData"
initField="DBTreeManager_taxName" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.HiddenInputElementRenderer"
fieldID="nodeName" initFrom="request" />
<SearchElementRenderer rendererClass="com.raritantechnologies.utils.tree.taglibrary.TaxonomyNodeNameRenderer"
databaseManagerName="MySQLServerDBManager" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.HiddenInputElementRenderer"
fieldID="command" staticValue="none" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.HiddenInputElementRenderer"
fieldID="tabSet" staticValue="none" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.HiddenInputElementRenderer"
fieldID="nameInput" initFrom="request" />
<SearchElementRenderer rendererClass="com.raritantechnologies.searchApp.taglibrary.TabbedSearchElementRenderer"
align="left" >
<TabRenderer class="com.raritantechnologies.utils.tree.taglibrary.TreeTabRenderer"
initialTab="none"
tabSetName="DBTreeForm"
tabSetParam="tabSet"
tabFormName="EditTreeForm" isPersistent="false" >
<TreeBuilder class="com.raritantechnologies.utils.tree.SAXTreeBuilder" >
<TreeNode nodeTag="Node" nameAttribute="name" >
<AttributeMap input="activeOn" />
</TreeNode>
<TreeXML>
<Node name="Root" />
<Node name="Edit Taxonomy">
<Node name="Create" />
<Node name="Edit" />
<Node name="Delete" />
</Node>
<Node name="Edit Node">
<Node name="Create" />
<Node name="Edit" activeOn="sessionData:DBTreeManager_nodeSelected=true" />
<Node name="Cut" activeOn="sessionData:DBTreeManager_nodeSelected=true" />
<Node name="Paste" activeOn="sessionData:DBTreeManager_copyNodeStatus=NOT NULL" />
<Node name="Delete" activeOn="sessionData:DBTreeManager_nodeSelected=true" />
</Node>
</TreeXML>
</TreeBuilder>
<TreeRenderer class="com.raritantechnologies.utils.tree.taglibrary.DropdownMenuTreeRenderer"
nameAttribute="name" locationAttribute="href" activeAttribute="activeOn"
useAction="onClick" zIndex="8" />
<TreeTabMap>
<Tab ID="CreateTaxonomy" nodeID="/Root/Edit Taxonomy/Create" />
<Tab ID="EditTaxonomy" nodeID="/Root/Edit Taxonomy/Edit" />
<Tab action="javascript:DeleteTaxonomy( );" nodeID="/Root/Edit Taxonomy/Delete" />
<Tab ID="CreateNode" nodeID="/Root/Edit Node/Create" />
<Tab ID="EditNode" nodeID="/Root/Edit Node/Edit" />
<Tab action="javascript:CutNodeSubmit( );" nodeID="/Root/Edit Node/Cut" />
<Tab action="javascript:PasteNodeSubmit( );" nodeID="/Root/Edit Node/Paste" />
<Tab action="javascript:DeleteNodeSubmit( );" nodeID="/Root/Edit Node/Delete" />
</TreeTabMap>
</TabRenderer>
<TabbedElementRenderers>
<SearchElementRenderer tabID="none" rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.NullElementRenderer"
width="280" />
<!-- ============================================================================= -->
<!-- CreateTaxonomy SearchElementRenderer -->
<!-- ============================================================================= -->
<SearchElementRenderer tabID="CreateTaxonomy" rendererClass="com.raritantechnologies.searchApp.taglibrary.SearchFormRowRenderer" >
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.TextInputElementRenderer"
fieldID="createTaxNameInput" width="50" initClear="true" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.InputButtonElement"
text="Create Taxonomy"
name="CreateTaxonomyButton"
cssClass="commandButton"
onClick="CreateTaxonomySubmit( );"
renderAsHyperlink="true" >
<SubmitHandler>
function CreateTaxonomySubmit()
{
document.forms['EditTreeForm'].elements['command'].value = 'Create Taxonomy';
document.forms['EditTreeForm'].elements['nameInput'].value = document.forms['EditTreeForm'].elements['createTaxNameInput'].value;
document.forms['EditTreeForm'].elements['taxName'].value = document.forms['EditTreeForm'].elements['createTaxNameInput'].value;
document.forms['EditTreeForm'].submit( );
return false;
}
</SubmitHandler>
</SearchElementRenderer>
</SearchElementRenderer>
<!-- ============================================================================= -->
<!-- EditTaxonomy SearchElementRenderer -->
<!-- ============================================================================= -->
<SearchElementRenderer tabID="EditTaxonomy" rendererClass="com.raritantechnologies.searchApp.taglibrary.SearchFormRowRenderer" >
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.TextInputElementRenderer"
fieldID="editTaxNameInput" width="50" initClear="true" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.InputButtonElement"
text="Change Taxonomy Name"
name="ChangeTaxonomyButton"
cssClass="commandButton"
onClick="ChangeTaxonomyName( );"
renderAsHyperlink="true" >
<SubmitHandler>
function ChangeTaxonomyName()
{
document.forms['EditTreeForm'].elements['command'].value = 'Edit Taxonomy';
document.forms['EditTreeForm'].elements['nameInput'].value = document.forms['EditTreeForm'].elements['editTaxNameInput'].value;
document.forms['EditTreeForm'].elements['taxName'].value = document.forms['EditTreeForm'].elements['taxNameSel'].value;
document.forms['EditTreeForm'].submit( );
return false;
}
</SubmitHandler>
</SearchElementRenderer>
</SearchElementRenderer>
<!-- ============================================================================= -->
<!-- CreateNode SearchElementRenderer -->
<!-- ============================================================================= -->
<SearchElementRenderer tabID="CreateNode" rendererClass="com.raritantechnologies.searchApp.taglibrary.SearchFormRowRenderer" >
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.TextInputElementRenderer"
fieldID="createNodeNameInput" width="50" initClear="true" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.InputButtonElement"
text="Add Sub Node"
name="AddNodeButton"
cssClass="commandButton"
onClick="AddNodeSubmit( );"
renderAsHyperlink="true" >
<SubmitHandler>
function AddNodeSubmit()
{
document.forms['EditTreeForm'].elements['command'].value = 'Add Node';
document.forms['EditTreeForm'].elements['nameInput'].value = document.forms['EditTreeForm'].elements['createNodeNameInput'].value;
document.forms['EditTreeForm'].submit( );
return false;
}
</SubmitHandler>
</SearchElementRenderer>
</SearchElementRenderer>
<!-- ============================================================================= -->
<!-- EditNode SearchElementRenderer -->
<!-- ============================================================================= -->
<SearchElementRenderer tabID="EditNode" rendererClass="com.raritantechnologies.searchApp.taglibrary.SearchFormRowRenderer" >
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.TextInputElementRenderer"
fieldID="editNodeNameInput" width="50" initClear="true" />
<SearchElementRenderer rendererClass="com.raritantechnologies.quickstart.taglibrary.forms.InputButtonElement"
text="Edit Node"
name="EditNodeButton"
cssClass="commandButton"
onClick="EditNodeSubmit( );"
renderAsHyperlink="true" >
<SubmitHandler>
function EditNodeSubmit()
{
document.forms['EditTreeForm'].elements['command'].value = 'Edit Node';
document.forms['EditTreeForm'].elements['nameInput'].value = document.forms['EditTreeForm'].elements['editNodeNameInput'].value;
document.forms['EditTreeForm'].submit( );
return false;
}
</SubmitHandler>
</SearchElementRenderer>
</SearchElementRenderer>
</TabbedElementRenderers>
<SubmitHandler name="treeJavascript" >
function CutNodeSubmit()
{
document.forms['EditTreeForm'].elements['command'].value = 'Cut Node';
document.forms['EditTreeForm'].submit( );
return false;
}
function PasteNodeSubmit()
{
document.forms['EditTreeForm'].elements['command'].value = 'Paste Node';
document.forms['EditTreeForm'].elements['nodeName'].value = document.forms['EditTreeForm'].elements['nameInput'].value;
document.forms['EditTreeForm'].submit( );
return false;
}
function DeleteNodeSubmit()
{
document.forms['EditTreeForm'].elements['command'].value = 'Delete Node';
document.forms['EditTreeForm'].elements['nodeName'].value = '';
document.forms['EditTreeForm'].submit( );
return false;
}
function DeleteTaxonomy()
{
document.forms['EditTreeForm'].elements['command'].value = 'Delete Taxonomy';
document.forms['EditTreeForm'].elements['taxName'].value = document.forms['EditTreeForm'].elements['taxNameSel'].value;
document.forms['EditTreeForm'].submit( );
return false;
}
</SubmitHandler>
</SearchElementRenderer>
</SearchForm>