WW-4987 Add listCssClass to optgroup tag

This commit is contained in:
Aleksandr Mashchenko
2018-12-04 22:25:15 +02:00
parent 360927931c
commit d33930f3bd
4 changed files with 36 additions and 9 deletions
@@ -140,4 +140,9 @@ public class OptGroup extends Component {
public void setListValue(String listValue) {
internalUiBean.setListValue(listValue);
}
@StrutsTagAttribute(description = "Property of list objects to get css class from")
public void setListCssClass(String listCssClass) {
internalUiBean.setListCssClass(listCssClass);
}
}
@@ -36,6 +36,7 @@ public class OptGroupTag extends ComponentTagSupport {
protected String disabled;
protected String listKey;
protected String listValue;
protected String listCssClass;
public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
return new OptGroup(stack, req, res);
@@ -50,6 +51,7 @@ public class OptGroupTag extends ComponentTagSupport {
optGroup.setDisabled(disabled);
optGroup.setListKey(listKey);
optGroup.setListValue(listValue);
optGroup.setListCssClass(listCssClass);
}
public void setList(String list) {
@@ -71,4 +73,8 @@ public class OptGroupTag extends ComponentTagSupport {
public void setListValue(String listValue) {
this.listValue = listValue;
}
public void setListCssClass(String listCssClass) {
this.listCssClass = listCssClass;
}
}
@@ -21,27 +21,35 @@
<#if parameters.optGroupInternalListUiBeanList??>
<#assign optGroupInternalListUiBeans=parameters.optGroupInternalListUiBeanList />
<#list optGroupInternalListUiBeans as optGroupInternalListUiBean>
<optgroup
<optgroup<#rt>
<#if optGroupInternalListUiBean.parameters.label?has_content>
label="${optGroupInternalListUiBean.parameters.label}"
label="${optGroupInternalListUiBean.parameters.label}"<#rt>
</#if>
<#if optGroupInternalListUiBean.parameters.disabled!false>
disabled="disabled"
disabled="disabled"<#rt>
</#if>
<#include "/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl" />
>
<#list optGroupInternalListUiBean.parameters.list as optGroupBean>
<#assign trash=stack.push(optGroupBean) />
<#assign tmpKey=stack.findValue(optGroupInternalListUiBean.parameters.listKey) />
<#assign tmpValue=stack.findValue(optGroupInternalListUiBean.parameters.listValue) />
<#assign tmpKeyStr = tmpKey.toString() />
<option value="${tmpKeyStr?html}"
<#if tag.contains(parameters.nameValue, tmpKey) == true>
selected="selected"
<#assign optGroupItemCssClass = ''/>
<#if optGroupInternalListUiBean.parameters.listCssClass??>
<#if stack.findString(optGroupInternalListUiBean.parameters.listCssClass)??>
<#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.parameters.listCssClass)/>
</#if>
</#if>
>${tmpValue?html}
</option>
<option value="${tmpKeyStr?html}"<#rt>
<#if tag.contains(parameters.nameValue, tmpKey) == true>
selected="selected"<#rt>
</#if>
<#if optGroupItemCssClass?has_content>
class="${optGroupItemCssClass?html}"<#rt/>
</#if>
>${tmpValue?html}<#t>
</option><#lt>
<#assign trash=stack.pop() />
</#list>
</optgroup>
@@ -57,6 +57,14 @@ Please do not edit it directly.
<td align="left" valign="top">String</td>
<td align="left" valign="top">Set the list attribute.</td>
</tr>
<tr>
<td align="left" valign="top">listCssClass</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 css class from</td>
</tr>
<tr>
<td align="left" valign="top">listKey</td>
<td align="left" valign="top">false</td>