Mercurial > hg > ismi-richfaces
diff src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/FacesUtils.java @ 1:2e911857a759
(none)
author | jurzua |
---|---|
date | Wed, 29 Oct 2014 14:00:28 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/FacesUtils.java Wed Oct 29 14:00:28 2014 +0000 @@ -0,0 +1,134 @@ +package de.mpiwg.itgroup.ismi.util.guiComponents; +import javax.faces.FactoryFinder; +import javax.faces.application.Application; +import javax.faces.application.ApplicationFactory; +import javax.faces.application.FacesMessage; +import javax.faces.context.ExternalContext; +import javax.faces.context.FacesContext; +import javax.faces.el.ValueBinding; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; + +/** + * JSF utilities. + */ +public class FacesUtils { + /** + * Get servlet context. + * + * @return the servlet context + */ + public static ServletContext getServletContext() { + return (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext(); + } + + public static ExternalContext getExternalContext() { + FacesContext fc = FacesContext.getCurrentInstance(); + return fc.getExternalContext(); + } + + public static HttpSession getHttpSession(boolean create) { + return (HttpSession) FacesContext.getCurrentInstance(). + getExternalContext().getSession(create); + } + + /** + * Get managed bean based on the bean name. + * + * @param beanName the bean name + * @return the managed bean associated with the bean name + */ + public static Object getManagedBean(String beanName) { + + return getValueBinding(getJsfEl(beanName)).getValue(FacesContext.getCurrentInstance()); + } + + /** + * Remove the managed bean based on the bean name. + * + * @param beanName the bean name of the managed bean to be removed + */ + public static void resetManagedBean(String beanName) { + getValueBinding(getJsfEl(beanName)).setValue(FacesContext.getCurrentInstance(), null); + } + + /** + * Store the managed bean inside the session scope. + * + * @param beanName the name of the managed bean to be stored + * @param managedBean the managed bean to be stored + */ + public static void setManagedBeanInSession(String beanName, Object managedBean) { + FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(beanName, managedBean); + } + + /** + * Get parameter value from request scope. + * + * @param name the name of the parameter + * @return the parameter value + */ + public static String getRequestParameter(String name) { + return (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name); + } + + /** + * Add information message. + * + * @param msg the information message + */ + public static void addInfoMessage(String msg) { + addInfoMessage(null, msg); + } + + /** + * Add information message to a specific client. + * + * @param clientId the client id + * @param msg the information message + */ + public static void addInfoMessage(String clientId, String msg) { + FacesContext.getCurrentInstance().addMessage(clientId, new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg)); + } + + /** + * Add error message. + * + * @param msg the error message + */ + public static void addErrorMessage(String msg) { + addErrorMessage(null, msg); + } + + /** + * Add error message to a specific client. + * + * @param clientId the client id + * @param msg the error message + */ + public static void addErrorMessage(String clientId, String msg) { + FacesContext.getCurrentInstance().addMessage(clientId, new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg)); + } + + private static Application getApplication() { + ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY); + return appFactory.getApplication(); + } + + private static ValueBinding getValueBinding(String el) { + return getApplication().createValueBinding(el); + } + + private static HttpServletRequest getServletRequest() { + return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); + } + + private static Object getElValue(String el) { + return getValueBinding(el).getValue(FacesContext.getCurrentInstance()); + } + + private static String getJsfEl(String value) { + return "#{" + value + "}"; + } + } \ No newline at end of file