Add listTitle to optgroup tag

This commit is contained in:
Aleksandr Mashchenko
2018-12-04 23:02:31 +02:00
parent 3c24bae87f
commit 123a0906ce
6 changed files with 36 additions and 6 deletions
@@ -150,4 +150,9 @@ public class OptGroup extends Component {
public void setListCssStyle(String listCssStyle) {
internalUiBean.setListCssStyle(listCssStyle);
}
@StrutsTagAttribute(description = "Property of list objects to get title from")
public void setListTitle(String listTitle) {
internalUiBean.setListTitle(listTitle);
}
}
@@ -38,6 +38,7 @@ public class OptGroupTag extends ComponentTagSupport {
protected String listValue;
protected String listCssClass;
protected String listCssStyle;
protected String listTitle;
public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
return new OptGroup(stack, req, res);
@@ -54,6 +55,7 @@ public class OptGroupTag extends ComponentTagSupport {
optGroup.setListValue(listValue);
optGroup.setListCssClass(listCssClass);
optGroup.setListCssStyle(listCssStyle);
optGroup.setListTitle(listTitle);
}
public void setList(String list) {
@@ -83,4 +85,8 @@ public class OptGroupTag extends ComponentTagSupport {
public void setListCssStyle(String listCssStyle) {
this.listCssStyle = listCssStyle;
}
public void setListTitle(String listTitle) {
this.listTitle = listTitle;
}
}
@@ -47,6 +47,12 @@
<#assign optGroupItemCssStyle= stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)/>
</#if>
</#if>
<#assign optGroupItemTitle = ''/>
<#if optGroupInternalListUiBean.parameters.listTitle??>
<#if stack.findString(optGroupInternalListUiBean.parameters.listTitle)??>
<#assign optGroupItemTitle= stack.findString(optGroupInternalListUiBean.parameters.listTitle)/>
</#if>
</#if>
<option value="${tmpKeyStr?html}"<#rt>
<#if tag.contains(parameters.nameValue, tmpKey) == true>
selected="selected"<#rt>
@@ -57,6 +63,9 @@
<#if optGroupItemCssStyle?has_content>
style="${optGroupItemCssStyle?html}"<#rt/>
</#if>
<#if optGroupItemTitle?has_content>
title="${optGroupItemTitle?html}"<#rt/>
</#if>
>${tmpValue?html}<#t>
</option><#lt>
<#assign trash=stack.pop() />
@@ -81,6 +81,14 @@ Please do not edit it directly.
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the listKey attribute.</td>
</tr>
<tr>
<td align="left" valign="top">listTitle</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
<td align="left" valign="top">false</td>
<td align="left" valign="top">String</td>
<td align="left" valign="top">Property of list objects to get title from</td>
</tr>
<tr>
<td align="left" valign="top">listValue</td>
<td align="left" valign="top">false</td>
@@ -260,12 +260,14 @@ public class OptGroupTest extends AbstractUITagTest {
selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
selectTag.setListCssClass("'option-css-class'");
selectTag.setListCssStyle("'background-color: green;'");
selectTag.setListTitle("'option-title'");
OptGroupTag optGroupTag1 = new OptGroupTag();
optGroupTag1.setLabel("My Label 1");
optGroupTag1.setList("%{#{'AAA':'aaa','BBB':'bbb','CCC':'ccc'}}");
optGroupTag1.setListCssClass("'optgroup-option-css-class'");
optGroupTag1.setListCssStyle("'background-color: blue;'");
optGroupTag1.setListTitle("'optgroup-option-title'");
OptGroupTag optGroupTag2 = new OptGroupTag();
optGroupTag2.setLabel("My Label 2");
@@ -2,21 +2,21 @@
<td class="tdLabel"><label for="mySelection" class="label">My Selection:</label></td>
<td class="tdInput">
<select name="mySelection" id="mySelection">
<option value="ONE" class="option-css-class" style="background-color: green;">one</option>
<option value="TWO" class="option-css-class" style="background-color: green;">two</option>
<option value="THREE" class="option-css-class" style="background-color: green;">three</option>
<option value="ONE" class="option-css-class" style="background-color: green;" title="option-title">one</option>
<option value="TWO" class="option-css-class" style="background-color: green;" title="option-title">two</option>
<option value="THREE" class="option-css-class" style="background-color: green;" title="option-title">three</option>
<optgroup
label="My Label 1"
>
<option value="AAA" class="optgroup-option-css-class" style="background-color: blue;"
<option value="AAA" class="optgroup-option-css-class" style="background-color: blue;" title="optgroup-option-title"
>aaa
</option>
<option value="BBB" class="optgroup-option-css-class" style="background-color: blue;"
<option value="BBB" class="optgroup-option-css-class" style="background-color: blue;" title="optgroup-option-title"
>bbb
</option>
<option value="CCC" class="optgroup-option-css-class" style="background-color: blue;"
<option value="CCC" class="optgroup-option-css-class" style="background-color: blue;" title="optgroup-option-title"
>ccc
</option>
</optgroup>