annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.util.guiComponents;
jurzua
parents:
diff changeset
2 import javax.faces.FactoryFinder;
jurzua
parents:
diff changeset
3 import javax.faces.application.Application;
jurzua
parents:
diff changeset
4 import javax.faces.application.ApplicationFactory;
jurzua
parents:
diff changeset
5 import javax.faces.application.FacesMessage;
jurzua
parents:
diff changeset
6 import javax.faces.context.ExternalContext;
jurzua
parents:
diff changeset
7 import javax.faces.context.FacesContext;
jurzua
parents:
diff changeset
8 import javax.faces.el.ValueBinding;
jurzua
parents:
diff changeset
9 import javax.servlet.ServletContext;
jurzua
parents:
diff changeset
10 import javax.servlet.http.HttpServletRequest;
jurzua
parents:
diff changeset
11 import javax.servlet.http.HttpSession;
jurzua
parents:
diff changeset
12
jurzua
parents:
diff changeset
13 /**
jurzua
parents:
diff changeset
14 * JSF utilities.
jurzua
parents:
diff changeset
15 */
jurzua
parents:
diff changeset
16 public class FacesUtils {
jurzua
parents:
diff changeset
17 /**
jurzua
parents:
diff changeset
18 * Get servlet context.
jurzua
parents:
diff changeset
19 *
jurzua
parents:
diff changeset
20 * @return the servlet context
jurzua
parents:
diff changeset
21 */
jurzua
parents:
diff changeset
22 public static ServletContext getServletContext() {
jurzua
parents:
diff changeset
23 return (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
jurzua
parents:
diff changeset
24 }
jurzua
parents:
diff changeset
25
jurzua
parents:
diff changeset
26 public static ExternalContext getExternalContext() {
jurzua
parents:
diff changeset
27 FacesContext fc = FacesContext.getCurrentInstance();
jurzua
parents:
diff changeset
28 return fc.getExternalContext();
jurzua
parents:
diff changeset
29 }
jurzua
parents:
diff changeset
30
jurzua
parents:
diff changeset
31 public static HttpSession getHttpSession(boolean create) {
jurzua
parents:
diff changeset
32 return (HttpSession) FacesContext.getCurrentInstance().
jurzua
parents:
diff changeset
33 getExternalContext().getSession(create);
jurzua
parents:
diff changeset
34 }
jurzua
parents:
diff changeset
35
jurzua
parents:
diff changeset
36 /**
jurzua
parents:
diff changeset
37 * Get managed bean based on the bean name.
jurzua
parents:
diff changeset
38 *
jurzua
parents:
diff changeset
39 * @param beanName the bean name
jurzua
parents:
diff changeset
40 * @return the managed bean associated with the bean name
jurzua
parents:
diff changeset
41 */
jurzua
parents:
diff changeset
42 public static Object getManagedBean(String beanName) {
jurzua
parents:
diff changeset
43
jurzua
parents:
diff changeset
44 return getValueBinding(getJsfEl(beanName)).getValue(FacesContext.getCurrentInstance());
jurzua
parents:
diff changeset
45 }
jurzua
parents:
diff changeset
46
jurzua
parents:
diff changeset
47 /**
jurzua
parents:
diff changeset
48 * Remove the managed bean based on the bean name.
jurzua
parents:
diff changeset
49 *
jurzua
parents:
diff changeset
50 * @param beanName the bean name of the managed bean to be removed
jurzua
parents:
diff changeset
51 */
jurzua
parents:
diff changeset
52 public static void resetManagedBean(String beanName) {
jurzua
parents:
diff changeset
53 getValueBinding(getJsfEl(beanName)).setValue(FacesContext.getCurrentInstance(), null);
jurzua
parents:
diff changeset
54 }
jurzua
parents:
diff changeset
55
jurzua
parents:
diff changeset
56 /**
jurzua
parents:
diff changeset
57 * Store the managed bean inside the session scope.
jurzua
parents:
diff changeset
58 *
jurzua
parents:
diff changeset
59 * @param beanName the name of the managed bean to be stored
jurzua
parents:
diff changeset
60 * @param managedBean the managed bean to be stored
jurzua
parents:
diff changeset
61 */
jurzua
parents:
diff changeset
62 public static void setManagedBeanInSession(String beanName, Object managedBean) {
jurzua
parents:
diff changeset
63 FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(beanName, managedBean);
jurzua
parents:
diff changeset
64 }
jurzua
parents:
diff changeset
65
jurzua
parents:
diff changeset
66 /**
jurzua
parents:
diff changeset
67 * Get parameter value from request scope.
jurzua
parents:
diff changeset
68 *
jurzua
parents:
diff changeset
69 * @param name the name of the parameter
jurzua
parents:
diff changeset
70 * @return the parameter value
jurzua
parents:
diff changeset
71 */
jurzua
parents:
diff changeset
72 public static String getRequestParameter(String name) {
jurzua
parents:
diff changeset
73 return (String) FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(name);
jurzua
parents:
diff changeset
74 }
jurzua
parents:
diff changeset
75
jurzua
parents:
diff changeset
76 /**
jurzua
parents:
diff changeset
77 * Add information message.
jurzua
parents:
diff changeset
78 *
jurzua
parents:
diff changeset
79 * @param msg the information message
jurzua
parents:
diff changeset
80 */
jurzua
parents:
diff changeset
81 public static void addInfoMessage(String msg) {
jurzua
parents:
diff changeset
82 addInfoMessage(null, msg);
jurzua
parents:
diff changeset
83 }
jurzua
parents:
diff changeset
84
jurzua
parents:
diff changeset
85 /**
jurzua
parents:
diff changeset
86 * Add information message to a specific client.
jurzua
parents:
diff changeset
87 *
jurzua
parents:
diff changeset
88 * @param clientId the client id
jurzua
parents:
diff changeset
89 * @param msg the information message
jurzua
parents:
diff changeset
90 */
jurzua
parents:
diff changeset
91 public static void addInfoMessage(String clientId, String msg) {
jurzua
parents:
diff changeset
92 FacesContext.getCurrentInstance().addMessage(clientId, new FacesMessage(FacesMessage.SEVERITY_INFO, msg, msg));
jurzua
parents:
diff changeset
93 }
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95 /**
jurzua
parents:
diff changeset
96 * Add error message.
jurzua
parents:
diff changeset
97 *
jurzua
parents:
diff changeset
98 * @param msg the error message
jurzua
parents:
diff changeset
99 */
jurzua
parents:
diff changeset
100 public static void addErrorMessage(String msg) {
jurzua
parents:
diff changeset
101 addErrorMessage(null, msg);
jurzua
parents:
diff changeset
102 }
jurzua
parents:
diff changeset
103
jurzua
parents:
diff changeset
104 /**
jurzua
parents:
diff changeset
105 * Add error message to a specific client.
jurzua
parents:
diff changeset
106 *
jurzua
parents:
diff changeset
107 * @param clientId the client id
jurzua
parents:
diff changeset
108 * @param msg the error message
jurzua
parents:
diff changeset
109 */
jurzua
parents:
diff changeset
110 public static void addErrorMessage(String clientId, String msg) {
jurzua
parents:
diff changeset
111 FacesContext.getCurrentInstance().addMessage(clientId, new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg));
jurzua
parents:
diff changeset
112 }
jurzua
parents:
diff changeset
113
jurzua
parents:
diff changeset
114 private static Application getApplication() {
jurzua
parents:
diff changeset
115 ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
jurzua
parents:
diff changeset
116 return appFactory.getApplication();
jurzua
parents:
diff changeset
117 }
jurzua
parents:
diff changeset
118
jurzua
parents:
diff changeset
119 private static ValueBinding getValueBinding(String el) {
jurzua
parents:
diff changeset
120 return getApplication().createValueBinding(el);
jurzua
parents:
diff changeset
121 }
jurzua
parents:
diff changeset
122
jurzua
parents:
diff changeset
123 private static HttpServletRequest getServletRequest() {
jurzua
parents:
diff changeset
124 return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
jurzua
parents:
diff changeset
125 }
jurzua
parents:
diff changeset
126
jurzua
parents:
diff changeset
127 private static Object getElValue(String el) {
jurzua
parents:
diff changeset
128 return getValueBinding(el).getValue(FacesContext.getCurrentInstance());
jurzua
parents:
diff changeset
129 }
jurzua
parents:
diff changeset
130
jurzua
parents:
diff changeset
131 private static String getJsfEl(String value) {
jurzua
parents:
diff changeset
132 return "#{" + value + "}";
jurzua
parents:
diff changeset
133 }
jurzua
parents:
diff changeset
134 }