// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.framework.screen.iface.jsf;
import java.util.List;
import java.util.ResourceBundle;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.context.Flash;
import org.apache.commons.lang3.StringUtils;
/**
* Faces Helper.
* @author nilcy
*/
public final class FacesHelper {
/** コンストラクタ */
private FacesHelper() {
}
/**
* Add faces message.
* @param aSeverity severity
* @param aMessage message
*/
public static void addFacesMessage(final FacesMessage.Severity aSeverity, final String aMessage) {
getCurrentInstance().addMessage(null, new FacesMessage(aSeverity, aMessage, aMessage));
}
/**
* Add faces messages.
* @param aSeverity severity
* @param aMessages messages
*/
public static void addFacesMessages(final FacesMessage.Severity aSeverity,
final List<String> aMessages) {
for (final String message : aMessages) {
addFacesMessage(aSeverity, message);
}
}
/**
* Add faces messages.
* @param aSeverity severity
* @param aCause cause
* @param aDefaultMessage default message
*/
public static void addFacesMessage(final FacesMessage.Severity aSeverity,
final Exception aCause, final String aDefaultMessage) {
final String message = aCause.getLocalizedMessage();
if (!StringUtils.isEmpty(message)) {
addFacesMessage(aSeverity, message);
} else {
addFacesMessage(aSeverity, aDefaultMessage);
}
}
/**
* Add success message.
* @param aMessage success message
*/
public static void addSuccessMessage(final String aMessage) {
addFacesMessage(FacesMessage.SEVERITY_INFO, aMessage);
}
/**
* Add success bundle message.
* @param aKey key
*/
public static void addSuccessBundleMessage(final String aKey) {
addSuccessMessage(getBundleMessage(aKey));
}
/**
* current instance.
* @return getCurrentInstance
*/
public static FacesContext getCurrentInstance() {
return FacesContext.getCurrentInstance();
}
/**
* external context.
* @return getExternalContext
*/
public static ExternalContext getExternalContext() {
return getCurrentInstance().getExternalContext();
}
/**
* flash.
* @return flash
*/
public static Flash getFlash() {
return getExternalContext().getFlash();
}
/**
* bundle.
* @return bundle
*/
private static ResourceBundle getBundle() {
return ResourceBundle.getBundle(FacesProfile.BUNDLE_BASENAME, getExternalContext()
.getRequestLocale());
}
/**
* bundle message.
* @param aKey key
* @return bundle message
*/
public static String getBundleMessage(final String aKey) {
return getBundle().getString(aKey);
}
/** Keep message. */
public static void keepMessage() {
getExternalContext().getFlash().setKeepMessages(true);
}
}