Commits

Anonymous committed d7c5405

Issue number: ww-1062 ww-1071 ww-1072

git-svn-id: http://svn.opensymphony.com/svn/webwork/trunk@1917573baa09-0c28-0410-bef9-dab3c582ae83

Comments (0)

Files changed (31)

docs/tags/OptionTransferSelect.html

+
+<html>
+<head>
+<title>&lt;ww:optiontransferselect /&gt;</title>
+</head>
+
+<body>
+
+<h1>Tag Name: &lt;ww:optiontransferselect /&gt;</h1>
+
+<h2>Description</h2>
+<p>
+
+Renders an input form
+
+</p>
+
+<p>
+
+</p>
+
+<h2>Attributes</h2>
+<p>
+
+<!-- START SNIPPET: tagattributes -->
+<table width="100%">
+<tr>
+
+<th align="left" valign="top"><h4>Name</h4></th>
+<th align="left" valign="top"><h4>Required</h4></th>
+<th align="left" valign="top"><h4>Default</h4></th>
+<th align="left" valign="top"><h4>Type</h4></th>
+<th align="left" valign="top"><h4>Description</h4></th>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">addAllToLeftLabel</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Add To Left button label</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">addAllToRightLabel</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Add All To Right button label</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">addToLeftLabel</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Add To Left button label</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">addToRightLabel</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Add To Right button label</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">allowAddAllToLeft</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">enable Add All To Left button</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">allowAddAllToRight</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">enable Add All To Right button</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">allowAddToLeft</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">enable Add To Left button</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">allowAddToRight</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">enable Add To Right button</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">leftTitle</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Left title</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">rightTitle</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Right title</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">allowSelectAll</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">enable Select All button</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">selectAllLabel</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set Select All button label</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">buttonCssClass</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set buttons css class</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">buttonCssStyle</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">set button css style</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleList</td>
+
+<!-- Required -->
+<td align="left" valign="top"><b>true</b></td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The second iterable source to populate from.</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleListKey</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The key expression to use for second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleListValue</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The value expression to use for second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleName</td>
+
+<!-- Required -->
+<td align="left" valign="top"><b>true</b></td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The name for complete component</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleValue</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The value expression for complete component</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">formName</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The form name this component resides in and populates to</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleCssClass</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The css class for the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleCssStyle</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The css style for the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleHeaderKey</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The header key for the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleHeaderValue</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The header value for the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleEmptyOption</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Decides if the second list will add an empty option</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleDisabled</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Decides if a disable attribute should be added to the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleId</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The id of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleMultiple</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Decides if multiple attribute should be set on the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnblur</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onblur attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnchange</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onchange attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnclick</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onclick attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOndblclick</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the ondbclick attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnfocus</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onfocus attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnkeydown</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onkeydown attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnkeypress</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onkeypress attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnkeyup</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onkeyup attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnmousedown</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onmousedown attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnmousemove</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onmousemove attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnmouseout</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onmouseout attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnmouseover</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onmouseover attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnmouseup</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onmouseup attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleOnselect</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the onselect attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleSize</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the size attribute of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">doubleListKey</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the list key of the second attribute</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">emptyOption</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">false</td>
+
+<!-- Type -->
+<td align="left" valign="top">Boolean</td>
+
+<!-- Description -->
+<td align="left" valign="top">Decides of an empty option is to be inserted in the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">headerKey</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the header key of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">headerValue</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the header value of the second list</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">multiple</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Creates a multiple select. The tag will pre-select multiple values if the values are passed as an Array (of appropriate types) via the value attribute.</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">size</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Integer</td>
+
+<!-- Description -->
+<td align="left" valign="top">Size of the element box (# of elements to show)</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">list</td>
+
+<!-- Required -->
+<td align="left" valign="top"><b>true</b></td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Iterable source to populate from.</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">listKey</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Property of list objects to get field value from</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">listValue</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Property of list objects to get field content from</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">theme</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The theme (other than default) to use for renedring the element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">template</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The template (other than default) to use for renedring the element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">cssClass</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The css class to use for element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">cssStyle</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The css style definitions for element ro use</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">disabled</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html disabled attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">label</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Label expression used for rendering a element specific label</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">labelPosition</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">left</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">deprecated.</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">labelposition</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">define label position of form element (top/left)</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">name</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">The name to set for element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">required</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">false</td>
+
+<!-- Type -->
+<td align="left" valign="top">Boolean</td>
+
+<!-- Description -->
+<td align="left" valign="top">If set to true, the rendered element will indicate that input is required</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">tabindex</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html tabindex attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">value</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Preset the value of input element.</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onclick</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onclick attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">ondblclick</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html ondblclick attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onmousedown</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onmousedown attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onmouseup</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onmouseup attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onmouseover</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onmouseover attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onmousemove</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onmousemove attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onmouseout</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onmouseout attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onfocus</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onfocus attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onblur</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onblur attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onkeypress</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onkeypress attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onkeydown</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onkeydown attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onkeyup</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onkeyup attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onselect</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onselect attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">onchange</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">Set the html onchange attribute on rendered html element</td>
+
+</tr>
+
+<tr>
+<!-- Attribute name -->
+<td align="left" valign="top">id</td>
+
+<!-- Required -->
+<td align="left" valign="top">false</td>
+
+<!-- Default -->
+<td align="left" valign="top">&nbsp;</td>
+
+<!-- Type -->
+<td align="left" valign="top">Object/String</td>
+
+<!-- Description -->
+<td align="left" valign="top">id for referencing element. For UI and form tags it will be used as HTML id attribute</td>
+
+</tr>
+
+</table>
+<!-- END SNIPPET: tagattributes -->
+
+</p>
+<p>
+<center><a href="index.html">Back to Taglib Index</a></center>
+</p>
+</body>
+</html>
+

src/java/com/opensymphony/webwork/components/DoubleListUIBean.java

  *
  * @author Patrick Lightbody
  * @author Rene Gielen
+ * @author tm_jee
  * @version $Revision$
  * @since 2.2
  */
 public abstract class DoubleListUIBean extends ListUIBean {
+	
+	protected String emptyOption;
+    protected String headerKey;
+    protected String headerValue;
+    protected String multiple;
+    protected String size;
+	
     protected String doubleList;
     protected String doubleListKey;
     protected String doubleListValue;
     protected String doubleName;
     protected String doubleValue;
     protected String formName;
+    
+    protected String doubleId;
+    protected String doubleDisabled;
+    protected String doubleMultiple;
+    protected String doubleSize;
+    protected String doubleHeaderKey;
+    protected String doubleHeaderValue;
+    protected String doubleEmptyOption;
+    
+    protected String doubleCssClass;
+    protected String doubleCssStyle;
+    
+    protected String doubleOnclick;
+    protected String doubleOndblclick;
+    protected String doubleOnmousedown;
+    protected String doubleOnmouseup;
+    protected String doubleOnmouseover;
+    protected String doubleOnmousemove;
+    protected String doubleOnmouseout;
+    protected String doubleOnfocus;
+    protected String doubleOnblur;
+    protected String doubleOnkeypress;
+    protected String doubleOnkeydown;
+    protected String doubleOnkeyup;
+    protected String doubleOnselect;
+    protected String doubleOnchange;
+    
 
     public DoubleListUIBean(OgnlValueStack stack, HttpServletRequest request, HttpServletResponse response) {
         super(stack, request, response);
     public void evaluateExtraParams() {
         super.evaluateExtraParams();
 
-        Object doubleName = null;
+        //Object doubleName = null;
+        
+        if (emptyOption != null) {
+            addParameter("emptyOption", findValue(emptyOption, Boolean.class));
+        }
+
+        if (multiple != null) {
+            addParameter("multiple", findValue(multiple, Boolean.class));
+        }
+
+        if (size != null) {
+            addParameter("size", findString(size));
+        }
+
+        if ((headerKey != null) && (headerValue != null)) {
+            addParameter("headerKey", findString(headerKey));
+            addParameter("headerValue", findString(headerValue));
+        }
+        
+        
+        if (doubleMultiple != null) {
+        	addParameter("doubleMultiple", findString(doubleMultiple));
+        }
+        
+        if (doubleSize != null) {
+        	addParameter("doubleSize", findString(doubleSize));
+        }
+        
+        if (doubleDisabled != null) {
+        	addParameter("doubleDisbled", findString(doubleDisabled));
+        }
 
-        if (this.doubleName != null) {
+        if (doubleName != null) {
             addParameter("doubleName", findString(this.doubleName));
         }
 
         if (doubleList != null) {
             addParameter("doubleList", doubleList);
         }
-
+        
         if (doubleListKey != null) {
             addParameter("doubleListKey", doubleListKey);
         }
-
+        
         if (doubleListValue != null) {
             addParameter("doubleListValue", doubleListValue);
         }
 
+
         if (formName != null) {
             addParameter("formName", findString(formName));
         } else {
                 addParameter("doubleNameValue", findValue(doubleName.toString()));
             }
         }
+        
+        Form form = (Form) findAncestor(Form.class);
+        if (doubleId != null) {
+            // this check is needed for backwards compatibility with 2.1.x
+            if (altSyntax()) {
+                addParameter("doubleId", findString(doubleId));
+            } else {
+                addParameter("doubleId", doubleId);
+            }
+        } else if (form != null) {
+            addParameter("doubleId", form.getParameters().get("id") + "_" +escape(this.doubleName));
+        }
+        
+        if (doubleOnclick != null) {
+        	addParameter("doubleOnclick", findString(doubleOnclick));
+        }
+        
+        if (doubleOndblclick != null) {
+        	addParameter("doubleOndblclick", findString(doubleOndblclick));
+        }
+        
+        if (doubleOnmousedown != null) {
+        	addParameter("doubleOnmousedown", findString(doubleOnmousedown));
+        }
+        
+        if (doubleOnmouseup != null) {
+        	addParameter("doubleOnmouseup", findString(doubleOnmouseup));
+        }
+        
+        if (doubleOnmouseover != null) {
+        	addParameter("doubleOnmouseover", findString(doubleOnmouseover));
+        }
+        
+        if (doubleOnmousemove != null) {
+        	addParameter("doubleOnmousemove", findString(doubleOnmousemove));
+        }
+        
+        if (doubleOnmouseout != null) {
+        	addParameter("doubleOnmouseout", findString(doubleOnmouseout));
+        }
+        
+        if (doubleOnfocus != null) {
+        	addParameter("doubleOnfocus", findString(doubleOnfocus));
+        }
+        
+        if (doubleOnblur != null) {
+        	addParameter("doubleOnblur", findString(doubleOnblur));
+        }
+        
+        if (doubleOnkeypress != null) {
+        	addParameter("doubleOnkeypress", findString(doubleOnkeypress));
+        }
+        
+        if (doubleOnkeydown != null) {
+        	addParameter("doubleOnkeydown", findString(doubleOnkeydown));
+        }
+        
+        if (doubleOnselect != null) {
+        	addParameter("doubleOnselect", findString(doubleOnselect));
+        }
+        
+        if (doubleOnchange != null) {
+        	addParameter("doubleOnchange", findString(doubleOnchange));
+        }
+        
+        if (doubleCssClass != null) {
+        	addParameter("doubleCss", findString(doubleCssClass));
+        }
+        
+        if (doubleCssStyle != null) {
+        	addParameter("doubleStyle", findString(doubleCssStyle));
+        }
+        
+        if (doubleHeaderKey != null && doubleHeaderValue != null) {
+        	addParameter("doubleHeaderKey", findString(doubleHeaderKey));
+        	addParameter("doubleHeaderValue", findString(doubleHeaderValue));
+        }
+        
+        if (doubleEmptyOption != null) {
+        	addParameter("doubleEmptyOption", findValue(doubleEmptyOption, Boolean.class));
+        }
     }
 
     /**
     public void setFormName(String formName) {
         this.formName = formName;
     }
+    
+    public String getFormName() {
+    	return formName;
+    }
+    
+    /**
+     * @ww.tagattribute required="false"
+     * description="The css class for the second list"
+     */
+    public void setDoubleCssClass(String doubleCssClass) {
+    	this.doubleCssClass = doubleCssClass;
+    }
+    
+    public String getDoubleCssClass() {
+    	return doubleCssClass;
+    }
+    
+    /**
+     * @ww.tagattribute required="false"
+     * description="The css style for the second list"
+     */
+    public void setDoubleCssStyle(String doubleCssStyle) {
+    	this.doubleCssStyle = doubleCssStyle;
+    }
+    
+    public String getDoubleCssStyle() {
+    	return doubleCssStyle;
+    }
+    
+    /**
+     * @ww.tagattribute required="false"
+     * description="The header key for the second list"
+     */
+    public void setDoubleHeaderKey(String doubleHeaderKey) {
+    	this.doubleHeaderKey = doubleHeaderKey;
+    }
+    
+    public String getDoubleHeaderKey() {
+    	return doubleHeaderKey;
+    }
+    
+    /**
+     * @ww.tagattribute required="false"
+     * description="The header value for the second list"
+     */
+    public void setDoubleHeaderValue(String doubleHeaderValue) {
+    	this.doubleHeaderValue = doubleHeaderValue;
+    }
+    
+    public String getDoubleHeaderValue() {
+    	return doubleHeaderValue;
+    }
+
+    /**
+     * @ww.tagattribute required="false"
+     * description="Decides if the second list will add an empty option"
+     */
+    public void setDoubleEmptyOption(String doubleEmptyOption) {
+    	this.doubleEmptyOption = doubleEmptyOption;
+    }
+    
+    public String getDoubleEmptyOption() {
+    	return this.doubleEmptyOption;
+    }
+
+    
+	public String getDoubleDisabled() {
+		return doubleDisabled;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Decides if a disable attribute should be added to the second list"
+     */
+	public void setDoubleDisabled(String doubleDisabled) {
+		this.doubleDisabled = doubleDisabled;
+	}
+
+	public String getDoubleId() {
+		return doubleId;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="The id of the second list"
+     */
+	public void setDoubleId(String doubleId) {
+		this.doubleId = doubleId;
+	}
+
+	public String getDoubleMultiple() {
+		return doubleMultiple;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Decides if multiple attribute should be set on the second list"
+     */
+	public void setDoubleMultiple(String doubleMultiple) {
+		this.doubleMultiple = doubleMultiple;
+	}
+
+	public String getDoubleOnblur() {
+		return doubleOnblur;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onblur attribute of the second list"
+     */
+	public void setDoubleOnblur(String doubleOnblur) {
+		this.doubleOnblur = doubleOnblur;
+	}
+
+	public String getDoubleOnchange() {
+		return doubleOnchange;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onchange attribute of the second list"
+     */
+	public void setDoubleOnchange(String doubleOnchange) {
+		this.doubleOnchange = doubleOnchange;
+	}
+
+	public String getDoubleOnclick() {
+		return doubleOnclick;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onclick attribute of the second list"
+     */
+	public void setDoubleOnclick(String doubleOnclick) {
+		this.doubleOnclick = doubleOnclick;
+	}
+
+	public String getDoubleOndblclick() {
+		return doubleOndblclick;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the ondbclick attribute of the second list"
+     */
+	public void setDoubleOndblclick(String doubleOndblclick) {
+		this.doubleOndblclick = doubleOndblclick;
+	}
+
+	public String getDoubleOnfocus() {
+		return doubleOnfocus;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onfocus attribute of the second list"
+     */
+	public void setDoubleOnfocus(String doubleOnfocus) {
+		this.doubleOnfocus = doubleOnfocus;
+	}
+
+	public String getDoubleOnkeydown() {
+		return doubleOnkeydown;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onkeydown attribute of the second list"
+     */
+	public void setDoubleOnkeydown(String doubleOnkeydown) {
+		this.doubleOnkeydown = doubleOnkeydown;
+	}
+
+	public String getDoubleOnkeypress() {
+		return doubleOnkeypress;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onkeypress attribute of the second list"
+     */
+	public void setDoubleOnkeypress(String doubleOnkeypress) {
+		this.doubleOnkeypress = doubleOnkeypress;
+	}
+
+	public String getDoubleOnkeyup() {
+		return doubleOnkeyup;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onkeyup attribute of the second list"
+     */
+	public void setDoubleOnkeyup(String doubleOnkeyup) {
+		this.doubleOnkeyup = doubleOnkeyup;
+	}
+
+	public String getDoubleOnmousedown() {
+		return doubleOnmousedown;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onmousedown attribute of the second list"
+     */
+	public void setDoubleOnmousedown(String doubleOnmousedown) {
+		this.doubleOnmousedown = doubleOnmousedown;
+	}
+
+	public String getDoubleOnmousemove() {
+		return doubleOnmousemove;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onmousemove attribute of the second list"
+     */
+	public void setDoubleOnmousemove(String doubleOnmousemove) {
+		this.doubleOnmousemove = doubleOnmousemove;
+	}
+
+	public String getDoubleOnmouseout() {
+		return doubleOnmouseout;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onmouseout attribute of the second list"
+     */
+	public void setDoubleOnmouseout(String doubleOnmouseout) {
+		this.doubleOnmouseout = doubleOnmouseout;
+	}
+
+	public String getDoubleOnmouseover() {
+		return doubleOnmouseover;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onmouseover attribute of the second list"
+     */
+	public void setDoubleOnmouseover(String doubleOnmouseover) {
+		this.doubleOnmouseover = doubleOnmouseover;
+	}
+
+	public String getDoubleOnmouseup() {
+		return doubleOnmouseup;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onmouseup attribute of the second list"
+     */
+	public void setDoubleOnmouseup(String doubleOnmouseup) {
+		this.doubleOnmouseup = doubleOnmouseup;
+	}
+
+	public String getDoubleOnselect() {
+		return doubleOnselect;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the onselect attribute of the second list"
+     */
+	public void setDoubleOnselect(String doubleOnselect) {
+		this.doubleOnselect = doubleOnselect;
+	}
+
+	public String getDoubleSize() {
+		return doubleSize;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the size attribute of the second list"
+     */
+	public void setDoubleSize(String doubleSize) {
+		this.doubleSize = doubleSize;
+	}
+
+	public String getDoubleList() {
+		return doubleList;
+	}
+
+	/**
+     * @ww.tagattribute required="false"
+     * description="Set the list key of the second attribute"
+     */
+	public String getDoubleListKey() {
+		return doubleListKey;
+	}
+
+	public String getDoubleListValue() {
+		return doubleListValue;
+	}
+
+	public String getDoubleName() {
+		return doubleName;
+	}
+
+	public String getDoubleValue() {
+		return doubleValue;
+	}
+	
+	/**
+     * @ww.tagattribute required="false" default="false" type="Boolean"
+     * description="Decides of an empty option is to be inserted in the second list"
+     */
+    public void setEmptyOption(String emptyOption) {
+        this.emptyOption = emptyOption;
+    }
+
+    /**
+     * Cannot be empty! "'-1'" and "''" is correct, "" is bad.
+     * @ww.tagattribute required="false"
+     * description="Set the header key of the second list"
+     */
+    public void setHeaderKey(String headerKey) {
+        this.headerKey = headerKey;
+    }
+
+    /**
+     * @ww.tagattribute required="false"
+     * description="Set the header value of the second list"
+     */
+    public void setHeaderValue(String header