You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by am...@apache.org on 2018/12/13 20:50:51 UTC
[struts] branch struts-2-5-x updated (3609279 -> b431755)
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a change to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git.
from 3609279 Enhance after_success for Travis CI
new d33930f WW-4987 Add listCssClass to optgroup tag
new 2f99110 WW-4987 Add test for listCssClass in optgroup tag
new 264e03b Add listCssStyle to optgroup tag
new 1d49a06 Add listTitle to optgroup tag
new c694c6f Improve optgroup template
new b431755 Improve optgroup list attributes test
The 6 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../org/apache/struts2/components/OptGroup.java | 15 ++++++++
.../apache/struts2/views/jsp/ui/OptGroupTag.java | 18 ++++++++++
.../main/resources/template/simple/optgroup.ftl | 36 ++++++++++++++-----
core/src/site/resources/tags/optgroup.html | 24 +++++++++++++
.../apache/struts2/views/jsp/ui/OptGroupTest.java | 36 +++++++++++++++++++
.../org/apache/struts2/views/jsp/ui/OptGroup-8.txt | 40 ++++++++++++++++++++++
6 files changed, 161 insertions(+), 8 deletions(-)
create mode 100644 core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
[struts] 01/06: WW-4987 Add listCssClass to optgroup tag
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a commit to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git
commit d33930f3bdb969e3899f28105b7e799cea0f0f2b
Author: Aleksandr Mashchenko <am...@apache.org>
AuthorDate: Tue Dec 4 22:25:15 2018 +0200
WW-4987 Add listCssClass to optgroup tag
---
.../org/apache/struts2/components/OptGroup.java | 5 +++++
.../apache/struts2/views/jsp/ui/OptGroupTag.java | 6 ++++++
.../main/resources/template/simple/optgroup.ftl | 24 ++++++++++++++--------
core/src/site/resources/tags/optgroup.html | 8 ++++++++
4 files changed, 35 insertions(+), 8 deletions(-)
diff --git a/core/src/main/java/org/apache/struts2/components/OptGroup.java b/core/src/main/java/org/apache/struts2/components/OptGroup.java
index 58d0b9a..8e992ca 100644
--- a/core/src/main/java/org/apache/struts2/components/OptGroup.java
+++ b/core/src/main/java/org/apache/struts2/components/OptGroup.java
@@ -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);
+ }
}
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
index da2c1dc..443e575 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
@@ -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;
+ }
}
diff --git a/core/src/main/resources/template/simple/optgroup.ftl b/core/src/main/resources/template/simple/optgroup.ftl
index f1f8a3e..9a4d3a7 100644
--- a/core/src/main/resources/template/simple/optgroup.ftl
+++ b/core/src/main/resources/template/simple/optgroup.ftl
@@ -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}"
+ <#assign optGroupItemCssClass = ''/>
+ <#if optGroupInternalListUiBean.parameters.listCssClass??>
+ <#if stack.findString(optGroupInternalListUiBean.parameters.listCssClass)??>
+ <#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.parameters.listCssClass)/>
+ </#if>
+ </#if>
+ <option value="${tmpKeyStr?html}"<#rt>
<#if tag.contains(parameters.nameValue, tmpKey) == true>
- selected="selected"
+ selected="selected"<#rt>
+ </#if>
+ <#if optGroupItemCssClass?has_content>
+ class="${optGroupItemCssClass?html}"<#rt/>
</#if>
- >${tmpValue?html}
- </option>
+ >${tmpValue?html}<#t>
+ </option><#lt>
<#assign trash=stack.pop() />
</#list>
</optgroup>
diff --git a/core/src/site/resources/tags/optgroup.html b/core/src/site/resources/tags/optgroup.html
index 3198d0e..977a394 100644
--- a/core/src/site/resources/tags/optgroup.html
+++ b/core/src/site/resources/tags/optgroup.html
@@ -58,6 +58,14 @@ Please do not edit it directly.
<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>
<td align="left" valign="top"></td>
[struts] 06/06: Improve optgroup list attributes test
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a commit to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git
commit b4317553323c5e384080eed5eaa49e92d6ebd52a
Author: Aleksandr Mashchenko <am...@apache.org>
AuthorDate: Wed Dec 5 21:56:30 2018 +0200
Improve optgroup list attributes test
(cherry picked from commit 48d40ae6ac3a6cb72ef72b677b66b60672b46ad0)
---
.../apache/struts2/views/jsp/ui/OptGroupTest.java | 21 ++++++++++++---------
.../org/apache/struts2/views/jsp/ui/OptGroup-8.txt | 12 ++++++------
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index 07da6f6..5a2b351 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -257,21 +257,24 @@ public class OptGroupTest extends AbstractUITagTest {
SelectTag selectTag = new SelectTag();
selectTag.setName("mySelection");
selectTag.setLabel("My Selection");
- selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
- selectTag.setListCssClass("'option-css-class'");
- selectTag.setListCssStyle("'background-color: green;'");
- selectTag.setListTitle("'option-title'");
+ selectTag.setList("#{'ONE':'one','TWO':'two','THREE':'three'}");
+ selectTag.setListCssClass("'option-css-class ' + key");
+ selectTag.setListCssStyle("'background-color: green; font-family: ' + key");
+ selectTag.setListTitle("'option-title' + key");
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'");
+ optGroupTag1.setList("#{'AAA':'aaa','BBB':'bbb','CCC':'ccc'}");
+ optGroupTag1.setListCssClass("'optgroup-option-css-class ' + key");
+ optGroupTag1.setListCssStyle("'background-color: blue; font-family: ' + key");
+ optGroupTag1.setListTitle("'optgroup-option-title' + key");
OptGroupTag optGroupTag2 = new OptGroupTag();
optGroupTag2.setLabel("My Label 2");
- optGroupTag2.setList("%{#{'DDD':'ddd','EEE':'eee','FFF':'fff'}}");
+ optGroupTag2.setList("#{'DDD':'ddd','EEE':'eee','FFF':'fff'}");
+ optGroupTag2.setListCssClass("notExistingProperty");
+ optGroupTag2.setListCssStyle("notExistingProperty");
+ optGroupTag2.setListTitle("notExistingProperty");
selectTag.setPageContext(pageContext);
selectTag.doStartTag();
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
index fbde2bc..79468fe 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
@@ -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;" 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>
+ <option value="ONE" class="option-css-class ONE" style="background-color: green; font-family: ONE" title="option-title ONE">one</option>
+ <option value="TWO" class="option-css-class TWO" style="background-color: green; font-family: TWO" title="option-title TWO">two</option>
+ <option value="THREE" class="option-css-class THREE" style="background-color: green; font-family: THREE" title="option-title THREE">three</option>
<optgroup
label="My Label 1"
>
- <option value="AAA" class="optgroup-option-css-class" style="background-color: blue;" title="optgroup-option-title"
+ <option value="AAA" class="optgroup-option-css-class AAA" style="background-color: blue; font-family: AAA" title="optgroup-option-title AAA"
>aaa
</option>
- <option value="BBB" class="optgroup-option-css-class" style="background-color: blue;" title="optgroup-option-title"
+ <option value="BBB" class="optgroup-option-css-class BBB" style="background-color: blue; font-family: BBB" title="optgroup-option-title BBB"
>bbb
</option>
- <option value="CCC" class="optgroup-option-css-class" style="background-color: blue;" title="optgroup-option-title"
+ <option value="CCC" class="optgroup-option-css-class CCC" style="background-color: blue; font-family: CCC" title="optgroup-option-title CCC"
>ccc
</option>
</optgroup>
[struts] 03/06: Add listCssStyle to optgroup tag
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a commit to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git
commit 264e03b7ed0719227dd1d6afd374a3cf75135ab7
Author: Aleksandr Mashchenko <am...@apache.org>
AuthorDate: Tue Dec 4 22:56:44 2018 +0200
Add listCssStyle to optgroup tag
(cherry picked from commit 3c24bae87f196edf1cf116f8130e4d5f0891d0c0)
---
.../main/java/org/apache/struts2/components/OptGroup.java | 5 +++++
.../java/org/apache/struts2/views/jsp/ui/OptGroupTag.java | 6 ++++++
core/src/main/resources/template/simple/optgroup.ftl | 9 +++++++++
core/src/site/resources/tags/optgroup.html | 8 ++++++++
.../java/org/apache/struts2/views/jsp/ui/OptGroupTest.java | 4 +++-
.../resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt | 12 ++++++------
6 files changed, 37 insertions(+), 7 deletions(-)
diff --git a/core/src/main/java/org/apache/struts2/components/OptGroup.java b/core/src/main/java/org/apache/struts2/components/OptGroup.java
index 8e992ca..3042989 100644
--- a/core/src/main/java/org/apache/struts2/components/OptGroup.java
+++ b/core/src/main/java/org/apache/struts2/components/OptGroup.java
@@ -145,4 +145,9 @@ public class OptGroup extends Component {
public void setListCssClass(String listCssClass) {
internalUiBean.setListCssClass(listCssClass);
}
+
+ @StrutsTagAttribute(description = "Property of list objects to get css style from")
+ public void setListCssStyle(String listCssStyle) {
+ internalUiBean.setListCssStyle(listCssStyle);
+ }
}
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
index 443e575..870c754 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
@@ -37,6 +37,7 @@ public class OptGroupTag extends ComponentTagSupport {
protected String listKey;
protected String listValue;
protected String listCssClass;
+ protected String listCssStyle;
public Component getBean(ValueStack stack, HttpServletRequest req, HttpServletResponse res) {
return new OptGroup(stack, req, res);
@@ -52,6 +53,7 @@ public class OptGroupTag extends ComponentTagSupport {
optGroup.setListKey(listKey);
optGroup.setListValue(listValue);
optGroup.setListCssClass(listCssClass);
+ optGroup.setListCssStyle(listCssStyle);
}
public void setList(String list) {
@@ -77,4 +79,8 @@ public class OptGroupTag extends ComponentTagSupport {
public void setListCssClass(String listCssClass) {
this.listCssClass = listCssClass;
}
+
+ public void setListCssStyle(String listCssStyle) {
+ this.listCssStyle = listCssStyle;
+ }
}
diff --git a/core/src/main/resources/template/simple/optgroup.ftl b/core/src/main/resources/template/simple/optgroup.ftl
index 9a4d3a7..0f04f21 100644
--- a/core/src/main/resources/template/simple/optgroup.ftl
+++ b/core/src/main/resources/template/simple/optgroup.ftl
@@ -41,6 +41,12 @@
<#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.parameters.listCssClass)/>
</#if>
</#if>
+ <#assign optGroupItemCssStyle = ''/>
+ <#if optGroupInternalListUiBean.parameters.listCssStyle??>
+ <#if stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)??>
+ <#assign optGroupItemCssStyle= stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)/>
+ </#if>
+ </#if>
<option value="${tmpKeyStr?html}"<#rt>
<#if tag.contains(parameters.nameValue, tmpKey) == true>
selected="selected"<#rt>
@@ -48,6 +54,9 @@
<#if optGroupItemCssClass?has_content>
class="${optGroupItemCssClass?html}"<#rt/>
</#if>
+ <#if optGroupItemCssStyle?has_content>
+ style="${optGroupItemCssStyle?html}"<#rt/>
+ </#if>
>${tmpValue?html}<#t>
</option><#lt>
<#assign trash=stack.pop() />
diff --git a/core/src/site/resources/tags/optgroup.html b/core/src/site/resources/tags/optgroup.html
index 977a394..111fdae 100644
--- a/core/src/site/resources/tags/optgroup.html
+++ b/core/src/site/resources/tags/optgroup.html
@@ -66,6 +66,14 @@ Please do not edit it directly.
<td align="left" valign="top">Property of list objects to get css class from</td>
</tr>
<tr>
+ <td align="left" valign="top">listCssStyle</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 style from</td>
+ </tr>
+ <tr>
<td align="left" valign="top">listKey</td>
<td align="left" valign="top">false</td>
<td align="left" valign="top"></td>
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index 81c0e12..4505c5b 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -253,17 +253,19 @@ public class OptGroupTest extends AbstractUITagTest {
verify(SelectTag.class.getResource("OptGroup-6.txt"));
}
- public void testOptGroupListCssClass() throws Exception {
+ public void testOptGroupListAttributes() throws Exception {
SelectTag selectTag = new SelectTag();
selectTag.setName("mySelection");
selectTag.setLabel("My Selection");
selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
selectTag.setListCssClass("'option-css-class'");
+ selectTag.setListCssStyle("'background-color: green;'");
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;'");
OptGroupTag optGroupTag2 = new OptGroupTag();
optGroupTag2.setLabel("My Label 2");
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
index bc2c30f..52de292 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
@@ -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">one</option>
- <option value="TWO" class="option-css-class">two</option>
- <option value="THREE" class="option-css-class">three</option>
+ <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>
<optgroup
label="My Label 1"
>
- <option value="AAA" class="optgroup-option-css-class"
+ <option value="AAA" class="optgroup-option-css-class" style="background-color: blue;"
>aaa
</option>
- <option value="BBB" class="optgroup-option-css-class"
+ <option value="BBB" class="optgroup-option-css-class" style="background-color: blue;"
>bbb
</option>
- <option value="CCC" class="optgroup-option-css-class"
+ <option value="CCC" class="optgroup-option-css-class" style="background-color: blue;"
>ccc
</option>
</optgroup>
[struts] 02/06: WW-4987 Add test for listCssClass in optgroup tag
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a commit to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git
commit 2f99110189513b594da1217f8e18a783536f2f56
Author: Aleksandr Mashchenko <am...@apache.org>
AuthorDate: Tue Dec 4 22:26:26 2018 +0200
WW-4987 Add test for listCssClass in optgroup tag
(cherry picked from commit 94210a02e73a32a0e20d111ac8270191ee2cb5d6)
---
.../apache/struts2/views/jsp/ui/OptGroupTest.java | 29 ++++++++++++++++
.../org/apache/struts2/views/jsp/ui/OptGroup-8.txt | 40 ++++++++++++++++++++++
2 files changed, 69 insertions(+)
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index d4bd0e2..81c0e12 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -253,4 +253,33 @@ public class OptGroupTest extends AbstractUITagTest {
verify(SelectTag.class.getResource("OptGroup-6.txt"));
}
+ public void testOptGroupListCssClass() throws Exception {
+ SelectTag selectTag = new SelectTag();
+ selectTag.setName("mySelection");
+ selectTag.setLabel("My Selection");
+ selectTag.setList("%{#{'ONE':'one','TWO':'two','THREE':'three'}}");
+ selectTag.setListCssClass("'option-css-class'");
+
+ OptGroupTag optGroupTag1 = new OptGroupTag();
+ optGroupTag1.setLabel("My Label 1");
+ optGroupTag1.setList("%{#{'AAA':'aaa','BBB':'bbb','CCC':'ccc'}}");
+ optGroupTag1.setListCssClass("'optgroup-option-css-class'");
+
+ OptGroupTag optGroupTag2 = new OptGroupTag();
+ optGroupTag2.setLabel("My Label 2");
+ optGroupTag2.setList("%{#{'DDD':'ddd','EEE':'eee','FFF':'fff'}}");
+
+ selectTag.setPageContext(pageContext);
+ selectTag.doStartTag();
+ optGroupTag1.setPageContext(pageContext);
+ optGroupTag1.doStartTag();
+ optGroupTag1.doEndTag();
+ optGroupTag2.setPageContext(pageContext);
+ optGroupTag2.doStartTag();
+ optGroupTag2.doEndTag();
+ selectTag.doEndTag();
+
+ //System.out.println(writer.toString());
+ verify(SelectTag.class.getResource("OptGroup-8.txt"));
+ }
}
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
new file mode 100644
index 0000000..bc2c30f
--- /dev/null
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
@@ -0,0 +1,40 @@
+<tr>
+ <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">one</option>
+ <option value="TWO" class="option-css-class">two</option>
+ <option value="THREE" class="option-css-class">three</option>
+
+<optgroup
+ label="My Label 1"
+>
+
+ <option value="AAA" class="optgroup-option-css-class"
+ >aaa
+ </option>
+ <option value="BBB" class="optgroup-option-css-class"
+ >bbb
+ </option>
+ <option value="CCC" class="optgroup-option-css-class"
+ >ccc
+ </option>
+</optgroup>
+<optgroup
+ label="My Label 2"
+>
+
+ <option value="DDD"
+ >ddd
+ </option>
+ <option value="EEE"
+ >eee
+ </option>
+ <option value="FFF"
+ >fff
+ </option>
+</optgroup>
+
+</select>
+</td>
+</tr>
[struts] 05/06: Improve optgroup template
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a commit to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git
commit c694c6fdfbe8ff67d95b08dc84b917a654a7e820
Author: Aleksandr Mashchenko <am...@apache.org>
AuthorDate: Wed Dec 5 21:51:08 2018 +0200
Improve optgroup template
(cherry picked from commit 60dfc4d141cb08d2bc8b975cdd821b79d1bba24f)
---
core/src/main/resources/template/simple/optgroup.ftl | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/core/src/main/resources/template/simple/optgroup.ftl b/core/src/main/resources/template/simple/optgroup.ftl
index a424fe7..fc4c78f 100644
--- a/core/src/main/resources/template/simple/optgroup.ftl
+++ b/core/src/main/resources/template/simple/optgroup.ftl
@@ -37,21 +37,15 @@
<#assign tmpKeyStr = tmpKey.toString() />
<#assign optGroupItemCssClass = ''/>
<#if optGroupInternalListUiBean.parameters.listCssClass??>
- <#if stack.findString(optGroupInternalListUiBean.parameters.listCssClass)??>
- <#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.parameters.listCssClass)/>
- </#if>
+ <#assign optGroupItemCssClass= stack.findString(optGroupInternalListUiBean.parameters.listCssClass)!''/>
</#if>
<#assign optGroupItemCssStyle = ''/>
<#if optGroupInternalListUiBean.parameters.listCssStyle??>
- <#if stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)??>
- <#assign optGroupItemCssStyle= stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)/>
- </#if>
+ <#assign optGroupItemCssStyle= stack.findString(optGroupInternalListUiBean.parameters.listCssStyle)!''/>
</#if>
<#assign optGroupItemTitle = ''/>
<#if optGroupInternalListUiBean.parameters.listTitle??>
- <#if stack.findString(optGroupInternalListUiBean.parameters.listTitle)??>
- <#assign optGroupItemTitle= stack.findString(optGroupInternalListUiBean.parameters.listTitle)/>
- </#if>
+ <#assign optGroupItemTitle= stack.findString(optGroupInternalListUiBean.parameters.listTitle)!''/>
</#if>
<option value="${tmpKeyStr?html}"<#rt>
<#if tag.contains(parameters.nameValue, tmpKey) == true>
[struts] 04/06: Add listTitle to optgroup tag
Posted by am...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
amashchenko pushed a commit to branch struts-2-5-x
in repository https://gitbox.apache.org/repos/asf/struts.git
commit 1d49a062725a8eada6b96dac38cf9978a59b3340
Author: Aleksandr Mashchenko <am...@apache.org>
AuthorDate: Tue Dec 4 23:02:31 2018 +0200
Add listTitle to optgroup tag
(cherry picked from commit 123a0906ce455c8ea7dc6a7580159a614c0b46bb)
---
.../main/java/org/apache/struts2/components/OptGroup.java | 5 +++++
.../java/org/apache/struts2/views/jsp/ui/OptGroupTag.java | 6 ++++++
core/src/main/resources/template/simple/optgroup.ftl | 9 +++++++++
core/src/site/resources/tags/optgroup.html | 8 ++++++++
.../java/org/apache/struts2/views/jsp/ui/OptGroupTest.java | 2 ++
.../resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt | 12 ++++++------
6 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/core/src/main/java/org/apache/struts2/components/OptGroup.java b/core/src/main/java/org/apache/struts2/components/OptGroup.java
index 3042989..28c6783 100644
--- a/core/src/main/java/org/apache/struts2/components/OptGroup.java
+++ b/core/src/main/java/org/apache/struts2/components/OptGroup.java
@@ -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);
+ }
}
diff --git a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
index 870c754..bd90ff5 100644
--- a/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
+++ b/core/src/main/java/org/apache/struts2/views/jsp/ui/OptGroupTag.java
@@ -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;
+ }
}
diff --git a/core/src/main/resources/template/simple/optgroup.ftl b/core/src/main/resources/template/simple/optgroup.ftl
index 0f04f21..a424fe7 100644
--- a/core/src/main/resources/template/simple/optgroup.ftl
+++ b/core/src/main/resources/template/simple/optgroup.ftl
@@ -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() />
diff --git a/core/src/site/resources/tags/optgroup.html b/core/src/site/resources/tags/optgroup.html
index 111fdae..5a57e95 100644
--- a/core/src/site/resources/tags/optgroup.html
+++ b/core/src/site/resources/tags/optgroup.html
@@ -82,6 +82,14 @@ Please do not edit it directly.
<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>
<td align="left" valign="top"></td>
diff --git a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
index 4505c5b..07da6f6 100644
--- a/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
+++ b/core/src/test/java/org/apache/struts2/views/jsp/ui/OptGroupTest.java
@@ -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");
diff --git a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
index 52de292..fbde2bc 100644
--- a/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
+++ b/core/src/test/resources/org/apache/struts2/views/jsp/ui/OptGroup-8.txt
@@ -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>