/**
*
*/
package net.conselldemallorca.helium.webapp.v3.helper;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.validation.BindingResult;
import org.springframework.validation.ObjectError;
/**
* Utilitat per a mostrar missatges d'alerta o informaciĆ³.
*
* @author Limit Tecnologies <limit@limit.es>
*/
public class MissatgesHelper {
public static final String SESSION_ATTRIBUTE_ERROR = "MissatgesHelper.Error";
public static final String SESSION_ATTRIBUTE_WARNING = "MissatgesHelper.Warning";
public static final String SESSION_ATTRIBUTE_SUCCESS = "MissatgesHelper.Success";
public static final String SESSION_ATTRIBUTE_INFO = "MissatgesHelper.Info";
public static void error(
HttpServletRequest request,
String text) {
newAlert(
request,
SESSION_ATTRIBUTE_ERROR,
text);
}
public static void warning(
HttpServletRequest request,
String text) {
newAlert(
request,
SESSION_ATTRIBUTE_WARNING,
text);
}
public static void success(
HttpServletRequest request,
String text) {
newAlert(
request,
SESSION_ATTRIBUTE_SUCCESS,
text);
}
public static void info(
HttpServletRequest request,
String text) {
newAlert(
request,
SESSION_ATTRIBUTE_INFO,
text);
}
public List<String> getErrors(
HttpServletRequest request,
boolean delete) {
return getAlerts(
request,
SESSION_ATTRIBUTE_ERROR,
delete);
}
public List<String> getWarnings(
HttpServletRequest request,
boolean delete) {
return getAlerts(
request,
SESSION_ATTRIBUTE_WARNING,
delete);
}
public List<String> getSuccesses(
HttpServletRequest request,
boolean delete) {
return getAlerts(
request,
SESSION_ATTRIBUTE_SUCCESS,
delete);
}
public List<String> getInfos(
HttpServletRequest request,
boolean delete) {
return getAlerts(
request,
SESSION_ATTRIBUTE_INFO,
delete);
}
@SuppressWarnings("unchecked")
private static void newAlert(
HttpServletRequest request,
String attributeName,
String text) {
HttpSession session = request.getSession();
List<String> alerts = (List<String>)session.getAttribute(attributeName);
if (alerts == null) {
alerts = new ArrayList<String>();
session.setAttribute(attributeName, alerts);
}
alerts.add(text);
}
@SuppressWarnings("unchecked")
private static List<String> getAlerts(
HttpServletRequest request,
String attributeName,
boolean delete) {
HttpSession session = request.getSession();
List<String> alerts = (List<String>)session.getAttribute(attributeName);
if (delete)
session.removeAttribute(attributeName);
return alerts;
}
public static void error(
HttpServletRequest request,
BindingResult result,
String textValidacio) {
for (ObjectError error: result.getAllErrors()) {
String errorText = (error.getDefaultMessage() == null || error.getDefaultMessage().isEmpty()) ? textValidacio : error.getDefaultMessage();
error(request, errorText);
}
}
public static void errorGlobal(
HttpServletRequest request,
BindingResult result,
String textValidacio) {
for (ObjectError error: result.getGlobalErrors()) {
String errorText = (error.getDefaultMessage() == null || error.getDefaultMessage().isEmpty()) ? textValidacio : error.getDefaultMessage();
error(request, errorText);
}
}
}