diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/ResultMessages.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/ResultMessages.java index 2e26a8648..fc16c55aa 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/ResultMessages.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/ResultMessages.java @@ -16,8 +16,12 @@ package org.terasoluna.gfw.common.message; import static org.terasoluna.gfw.common.message.StandardResultMessageType.DANGER; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.DARK; import static org.terasoluna.gfw.common.message.StandardResultMessageType.ERROR; import static org.terasoluna.gfw.common.message.StandardResultMessageType.INFO; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.LIGHT; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.PRIMARY; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.SECONDARY; import static org.terasoluna.gfw.common.message.StandardResultMessageType.SUCCESS; import static org.terasoluna.gfw.common.message.StandardResultMessageType.WARN; import static org.terasoluna.gfw.common.message.StandardResultMessageType.WARNING; @@ -237,6 +241,42 @@ public static ResultMessages danger() { return new ResultMessages(DANGER); } + /** + * factory method for primary messages. + * @return error messages + * @since 5.7.0 + */ + public static ResultMessages primary() { + return new ResultMessages(PRIMARY); + } + + /** + * factory method for secondary messages. + * @return error messages + * @since 5.7.0 + */ + public static ResultMessages secondary() { + return new ResultMessages(SECONDARY); + } + + /** + * factory method for light messages. + * @return error messages + * @since 5.7.0 + */ + public static ResultMessages light() { + return new ResultMessages(LIGHT); + } + + /** + * factory method for dark messages. + * @return error messages + * @since 5.7.0 + */ + public static ResultMessages dark() { + return new ResultMessages(DARK); + } + /** * Returns {@link Iterator} instance that iterates over a list of {@link ResultMessage} * @see java.lang.Iterable#iterator() diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/StandardResultMessageType.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/StandardResultMessageType.java index 2aa016e99..b13c63ba3 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/StandardResultMessageType.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/main/java/org/terasoluna/gfw/common/message/StandardResultMessageType.java @@ -24,6 +24,11 @@ *
  • warn(Deprecated from 5.0.0, will be removed in the future)
  • *
  • warning(Added from 5.0.0)
  • *
  • error
  • + *
  • danger
  • + *
  • primary(Added from 5.7.0)
  • + *
  • secondary(Added from 5.7.0)
  • + *
  • light(Added from 5.7.0)
  • + *
  • dark(Added from 5.7.0)
  • * * The level of danger is as same as error and danger is usually used as alias for * error. @@ -54,7 +59,27 @@ public enum StandardResultMessageType implements ResultMessageType { /** * message type is danger. */ - DANGER("danger"); + DANGER("danger"), + /** + * message type is primary. + * @since 5.7.0 + */ + PRIMARY("primary"), + /** + * message type is secondary. + * @since 5.7.0 + */ + SECONDARY("secondary"), + /** + * message type is light. + * @since 5.7.0 + */ + LIGHT("light"), + /** + * message type is dark. + * @since 5.7.0 + */ + DARK("dark"); /** * message type diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/ResultMessagesTest.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/ResultMessagesTest.java index f54bf14c1..6c0b7fb20 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/ResultMessagesTest.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/ResultMessagesTest.java @@ -19,8 +19,12 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.fail; import static org.terasoluna.gfw.common.message.StandardResultMessageType.DANGER; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.DARK; import static org.terasoluna.gfw.common.message.StandardResultMessageType.ERROR; import static org.terasoluna.gfw.common.message.StandardResultMessageType.INFO; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.LIGHT; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.PRIMARY; +import static org.terasoluna.gfw.common.message.StandardResultMessageType.SECONDARY; import static org.terasoluna.gfw.common.message.StandardResultMessageType.SUCCESS; import static org.terasoluna.gfw.common.message.StandardResultMessageType.WARN; import static org.terasoluna.gfw.common.message.StandardResultMessageType.WARNING; @@ -258,6 +262,54 @@ public void issue24_testWarning() { assertThat(messages.getList(), is(Arrays.asList(msg1, msg2))); } + @Test + public void testPrimary() { + ResultMessage msg1 = ResultMessage.fromCode("foo", "aa"); + ResultMessage msg2 = ResultMessage.fromCode("bar", "bb"); + + ResultMessages messages = ResultMessages.primary().add("foo", "aa").add( + "bar", "bb"); + + assertThat(messages.getType(), is((ResultMessageType) PRIMARY)); + assertThat(messages.getList(), is(Arrays.asList(msg1, msg2))); + } + + @Test + public void testSecondary() { + ResultMessage msg1 = ResultMessage.fromCode("foo", "aa"); + ResultMessage msg2 = ResultMessage.fromCode("bar", "bb"); + + ResultMessages messages = ResultMessages.secondary().add("foo", "aa") + .add("bar", "bb"); + + assertThat(messages.getType(), is((ResultMessageType) SECONDARY)); + assertThat(messages.getList(), is(Arrays.asList(msg1, msg2))); + } + + @Test + public void testLight() { + ResultMessage msg1 = ResultMessage.fromCode("foo", "aa"); + ResultMessage msg2 = ResultMessage.fromCode("bar", "bb"); + + ResultMessages messages = ResultMessages.light().add("foo", "aa").add( + "bar", "bb"); + + assertThat(messages.getType(), is((ResultMessageType) LIGHT)); + assertThat(messages.getList(), is(Arrays.asList(msg1, msg2))); + } + + @Test + public void testDark() { + ResultMessage msg1 = ResultMessage.fromCode("foo", "aa"); + ResultMessage msg2 = ResultMessage.fromCode("bar", "bb"); + + ResultMessages messages = ResultMessages.dark().add("foo", "aa").add( + "bar", "bb"); + + assertThat(messages.getType(), is((ResultMessageType) DARK)); + assertThat(messages.getList(), is(Arrays.asList(msg1, msg2))); + } + @Test public void testSerialization() { try { diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/StandardResultMessageTypeTest.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/StandardResultMessageTypeTest.java index 96cdac31e..72b36f40a 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/StandardResultMessageTypeTest.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-common/src/test/java/org/terasoluna/gfw/common/message/StandardResultMessageTypeTest.java @@ -59,4 +59,30 @@ public void issue24_testWarning() { assertThat(StandardResultMessageType.WARNING.toString(), is("warning")); } + @Test + public void testPrimary() { + assertThat(StandardResultMessageType.PRIMARY.getType(), is("primary")); + assertThat(StandardResultMessageType.PRIMARY.toString(), is("primary")); + } + + @Test + public void testSecondary() { + assertThat(StandardResultMessageType.SECONDARY.getType(), is( + "secondary")); + assertThat(StandardResultMessageType.SECONDARY.toString(), is( + "secondary")); + } + + @Test + public void testLight() { + assertThat(StandardResultMessageType.LIGHT.getType(), is("light")); + assertThat(StandardResultMessageType.LIGHT.toString(), is("light")); + } + + @Test + public void testDark() { + assertThat(StandardResultMessageType.DARK.getType(), is("dark")); + assertThat(StandardResultMessageType.DARK.toString(), is("dark")); + } + } diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/main/java/org/terasoluna/gfw/web/pagination/PaginationTag.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/main/java/org/terasoluna/gfw/web/pagination/PaginationTag.java index 22a488322..8e6693f8e 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/main/java/org/terasoluna/gfw/web/pagination/PaginationTag.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/main/java/org/terasoluna/gfw/web/pagination/PaginationTag.java @@ -92,6 +92,12 @@ public class PaginationTag extends RequestContextAwareTag { */ private String innerElementClass = PaginationInfo.DEFAULT_INNER_CLASS; + /** + * Value of "class" attribute of anchor tag of pagination + * @since 5.7.0 + */ + private String anchorClass = PaginationInfo.DEFAULT_A_CLASS; + /** * Display text of the link of back to the top */ @@ -183,6 +189,10 @@ protected void writeAnchor(TagWriter tagWriter, String href, String value) throws JspException { if (StringUtils.hasText(href)) { tagWriter.startTag(PaginationInfo.A_ELM); + if (StringUtils.hasText(anchorClass)) { + tagWriter.writeAttribute(PaginationInfo.CLASS_ATTR, + anchorClass); + } tagWriter.writeAttribute(PaginationInfo.HREF_ATTR, href); tagWriter.appendValue(value); tagWriter.endTag(true); @@ -393,6 +403,7 @@ public void release() { this.outerElementClass = null; this.innerElement = null; this.innerElementClass = null; + this.anchorClass = null; this.firstLinkText = null; this.previousLinkText = null; this.nextLinkText = null; @@ -509,6 +520,15 @@ public void setInnerElementClass(String innerElementClass) { this.innerElementClass = innerElementClass; } + /** + * Set value of "class" attribute of anchor tag of pagination
    + * @param anchorClass Value of "class" attribute of anchor tag of pagination + * @since 5.7.0 + */ + public void setAnchorClass(String anchorClass) { + this.anchorClass = anchorClass; + } + /** * Set display text of the link of back to the top
    * @param firstLinkText Display text of the link of back to the top diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/test/java/org/terasoluna/gfw/web/pagination/PaginationTagTest.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/test/java/org/terasoluna/gfw/web/pagination/PaginationTagTest.java index 133122467..7e1f539a4 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/test/java/org/terasoluna/gfw/web/pagination/PaginationTagTest.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-web-jsp/src/test/java/org/terasoluna/gfw/web/pagination/PaginationTagTest.java @@ -106,6 +106,8 @@ public void testRelease01() throws Exception { nullValue())); assertThat(ReflectionTestUtils.getField(tag, "innerElementClass"), is( nullValue())); + assertThat(ReflectionTestUtils.getField(tag, "anchorClass"), is( + nullValue())); assertThat(ReflectionTestUtils.getField(tag, "firstLinkText"), is( nullValue())); assertThat(ReflectionTestUtils.getField(tag, "previousLinkText"), is( @@ -593,6 +595,7 @@ public void testDoStartTagInternal16() throws Exception { *
          * -outer tag class change.
          * -inner tag class change.
    +     * -anchor tag class change.
          * 
    */ @Test @@ -610,11 +613,12 @@ public void testDoStartTagInternal17() throws Exception { // customize tag.setOuterElementClass("all"); tag.setInnerElementClass("item"); + tag.setAnchorClass("link"); int ret = tag.doStartTagInternal(); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); - String expected = ""; + String expected = ""; assertThat(getOutput(), is(expected)); } @@ -624,6 +628,7 @@ public void testDoStartTagInternal17() throws Exception { *
          * -outer tag class change.
          * -inner tag class change.
    +     * -anchor tag class change.
          * 
    */ @Test @@ -641,11 +646,12 @@ public void testDoStartTagInternal17_2() throws Exception { // customize tag.setOuterElementClass("all"); tag.setInnerElementClass("item"); + tag.setAnchorClass("link"); int ret = tag.doStartTagInternal(); assertThat(ret, is(TagSupport.EVAL_BODY_INCLUDE)); - String expected = ""; + String expected = ""; assertThat(getOutput(), is(expected)); } diff --git a/terasoluna-gfw-common-libraries/terasoluna-gfw-web/src/main/java/org/terasoluna/gfw/web/pagination/PaginationInfo.java b/terasoluna-gfw-common-libraries/terasoluna-gfw-web/src/main/java/org/terasoluna/gfw/web/pagination/PaginationInfo.java index e6b46318b..6e712ee2c 100644 --- a/terasoluna-gfw-common-libraries/terasoluna-gfw-web/src/main/java/org/terasoluna/gfw/web/pagination/PaginationInfo.java +++ b/terasoluna-gfw-common-libraries/terasoluna-gfw-web/src/main/java/org/terasoluna/gfw/web/pagination/PaginationInfo.java @@ -144,6 +144,12 @@ public int getEnd() { */ public static final String DEFAULT_INNER_CLASS = ""; + /** + * Value of "class" attribute of anchor tag of pagination + * @since 5.7.0 + */ + public static final String DEFAULT_A_CLASS = ""; + /** * Display text of the link of back to the top */