Author: tchemit Date: 2012-08-24 01:05:15 +0200 (Fri, 24 Aug 2012) New Revision: 3624 Url: http://chorem.org/repositories/revision/pollen/3624 Log: improve flash messages (using a Set instead of a List to avoid duplicated messages) Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java 2012-08-23 22:56:27 UTC (rev 3623) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/PollenSession.java 2012-08-23 23:05:15 UTC (rev 3624) @@ -22,8 +22,8 @@ */ package org.chorem.pollen.ui; -import com.google.common.collect.Lists; import com.google.common.collect.Maps; +import com.google.common.collect.Sets; import com.opensymphony.xwork2.ActionContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -34,8 +34,8 @@ import javax.servlet.http.HttpSession; import java.io.Serializable; import java.util.Iterator; -import java.util.List; import java.util.Map; +import java.util.Set; /** * User session to put in servlet session. @@ -108,9 +108,9 @@ return (T) result; } - public <T extends Serializable> List<T> getDynamicListData(String token) { + public <T extends Serializable> Set<T> getDynamicSetData(String token) { Serializable result = getDynamicData().get(token); - return (List<T>) result; + return (Set<T>) result; } public <T extends Serializable> T consumeDynamicData(String token) { @@ -121,15 +121,15 @@ return result; } - public <T extends Serializable> List<T> consumeDynamicListData(String token) { - List<T> result = getDynamicListData(token); + public <T extends Serializable> Set<T> consumeDynamicSetData(String token) { + Set<T> result = getDynamicSetData(token); if (result != null) { removeDynamicData(token); } return result; } - public <T extends Serializable> void putDynamicListData(String token, List<T> data) { + public <T extends Serializable> void putDynamicSetData(String token, Set<T> data) { getDynamicData().put(token, (Serializable) data); if (log.isDebugEnabled()) { log.debug("Dynamic attributes size : " + getDynamicData().size()); @@ -167,10 +167,10 @@ } public void addMessage(String messageScope, String message) { - List<String> messages = getDynamicListData(messageScope); + Set<String> messages = getDynamicSetData(messageScope); if (messages == null) { - messages = Lists.newArrayList(message); - putDynamicListData(messageScope, messages); + messages = Sets.newHashSet(message); + putDynamicSetData(messageScope, messages); } else { messages.add(message); } Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java 2012-08-23 22:56:27 UTC (rev 3623) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/PollenActionSupport.java 2012-08-23 23:05:15 UTC (rev 3624) @@ -305,44 +305,44 @@ } public Collection<String> getFlashMessages() { - List<String> result = getPollenSession().consumeDynamicListData(PollenSession.SESSION_TOKEN_MESSAGES); + Collection<String> result = getPollenSession().consumeDynamicSetData(PollenSession.SESSION_TOKEN_MESSAGES); return result; } public Collection<String> getFlashErrors() { - List<String> result = getPollenSession().consumeDynamicListData(PollenSession.SESSION_TOKEN_ERRORS); + Collection<String> result = getPollenSession().consumeDynamicSetData(PollenSession.SESSION_TOKEN_ERRORS); return result; } public Collection<String> getFlashWarnings() { - List<String> result = getPollenSession().consumeDynamicListData(PollenSession.SESSION_TOKEN_WARNINGS); + Collection<String> result = getPollenSession().consumeDynamicSetData(PollenSession.SESSION_TOKEN_WARNINGS); return result; } public boolean hasFlashMessages() { - List<String> result = getPollenSession().getDynamicListData(PollenSession.SESSION_TOKEN_MESSAGES); + Collection<String> result = getPollenSession().getDynamicSetData(PollenSession.SESSION_TOKEN_MESSAGES); return CollectionUtils.isNotEmpty(result); } public boolean hasFlashErrors() { - List<String> result = getPollenSession().getDynamicListData(PollenSession.SESSION_TOKEN_ERRORS); + Collection<String> result = getPollenSession().getDynamicSetData(PollenSession.SESSION_TOKEN_ERRORS); return CollectionUtils.isNotEmpty(result); } public boolean hasFlashWarnings() { - List<String> result = getPollenSession().getDynamicListData(PollenSession.SESSION_TOKEN_WARNINGS); + Collection<String> result = getPollenSession().getDynamicSetData(PollenSession.SESSION_TOKEN_WARNINGS); return CollectionUtils.isNotEmpty(result); } public void clearFlashMessages() { - List<String> result = getPollenSession().getDynamicListData(PollenSession.SESSION_TOKEN_MESSAGES); + Collection<String> result = getPollenSession().getDynamicSetData(PollenSession.SESSION_TOKEN_MESSAGES); if (result != null) { result.clear(); } } public void clearFlashErrors() { - List<String> result = getPollenSession().getDynamicListData(PollenSession.SESSION_TOKEN_ERRORS); + Collection<String> result = getPollenSession().getDynamicSetData(PollenSession.SESSION_TOKEN_ERRORS); if (result != null) { result.clear(); }