1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.util;
21
22 import org.apache.commons.collections.list.SetUniqueList;
23 import org.apache.commons.collections.set.ListOrderedSet;
24 import org.apache.myfaces.tobago.compat.FacesUtils;
25 import org.apache.myfaces.tobago.internal.component.AbstractUIPopup;
26
27 import javax.faces.context.FacesContext;
28 import java.util.ArrayList;
29 import java.util.Collections;
30 import java.util.List;
31 import java.util.Set;
32
33 @SuppressWarnings("unchecked")
34 public final class FacesContextUtils {
35 private static final String TOBAGO_AJAX = "org.apache.myfaces.tobago.ajax";
36 private static final String TOBAGO_AJAX_COMPONENT_ID = "org.apache.myfaces.tobago.ajaxComponentId";
37 private static final String TOBAGO_ENCTYPE = "org.apache.myfaces.tobago.enctype";
38 private static final String TOBAGO_SCRIPT_FILES = "org.apache.myfaces.tobago.scriptFiles";
39 private static final String TOBAGO_SCRIPT_BLOCKS = "org.apache.myfaces.tobago.scriptBlocks";
40 private static final String TOBAGO_STYLE_FILES = "org.apache.myfaces.tobago.styleFiles";
41 private static final String TOBAGO_STYLE_BLOCKS = "org.apache.myfaces.tobago.styleBlocks";
42 private static final String TOBAGO_ONLOAD_SCRIPTS = "org.apache.myfaces.tobago.onloadScripts";
43 private static final String TOBAGO_ONUNLOAD_SCRIPTS = "org.apache.myfaces.tobago.onunloadScripts";
44 private static final String TOBAGO_ONEXIT_SCRIPTS = "org.apache.myfaces.tobago.onexitScripts";
45 private static final String TOBAGO_ONSUBMIT_SCRIPTS = "org.apache.myfaces.tobago.onsubmitScripts";
46 private static final String TOBAGO_POPUPS = "org.apache.myfaces.tobago.popups";
47 private static final String TOBAGO_MENU_ACCELERATORS = "org.apache.myfaces.tobago.menuAccelerators";
48 private static final String TOBAGO_FOCUS_ID = "org.apache.myfaces.tobago.focusId";
49 private static final String TOBAGO_ACTION_ID = "org.apache.myfaces.tobago.actionId";
50
51 public static boolean isAjax(FacesContext context) {
52 return FacesUtils.getFacesContextAttributes(context).containsKey(TOBAGO_AJAX);
53 }
54
55 public static void setAjax(FacesContext context, boolean ajax) {
56 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_AJAX, ajax);
57 }
58
59 public static void setFocusId(FacesContext context, String focusId) {
60 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_FOCUS_ID, focusId);
61 }
62
63 public static String getFocusId(FacesContext context) {
64 return (String) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_FOCUS_ID);
65 }
66
67 public static void setActionId(FacesContext context, String actionId) {
68 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ACTION_ID, actionId);
69 }
70
71 public static String getActionId(FacesContext context) {
72 return (String) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ACTION_ID);
73 }
74
75
76 public static String getAjaxComponentId(FacesContext context) {
77 return (String) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_AJAX_COMPONENT_ID);
78 }
79
80 public static void setAjaxComponentId(FacesContext context, String ajaxComponentId) {
81 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_AJAX_COMPONENT_ID, ajaxComponentId);
82 }
83
84 public static String getEnctype(FacesContext context) {
85 return (String) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ENCTYPE);
86 }
87
88 public static void setEnctype(FacesContext context, String enctype) {
89 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ENCTYPE, enctype);
90 }
91
92 public static List<String> getScriptFiles(FacesContext context) {
93 List<String> list = (List<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_SCRIPT_FILES);
94 if (list == null) {
95 return Collections.EMPTY_LIST;
96 }
97 return list;
98 }
99
100 public static void addScriptFile(FacesContext context, String file) {
101 List<String> list = (List<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_SCRIPT_FILES);
102 if (list == null) {
103 list = SetUniqueList.decorate(new ArrayList());
104 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_SCRIPT_FILES, list);
105 }
106 list.add(file);
107
108 }
109
110 public static Set<String> getScriptBlocks(FacesContext context) {
111 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_SCRIPT_BLOCKS);
112 if (set == null) {
113 return Collections.EMPTY_SET;
114 }
115 return set;
116 }
117
118 public static void addScriptBlock(FacesContext context, String script) {
119 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_SCRIPT_BLOCKS);
120 if (set == null) {
121 set = new ListOrderedSet();
122 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_SCRIPT_BLOCKS, set);
123 }
124 set.add(script);
125 }
126
127
128 public static Set<String> getStyleFiles(FacesContext context) {
129 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_STYLE_FILES);
130 if (set == null) {
131 return Collections.EMPTY_SET;
132 }
133 return set;
134 }
135
136 public static void addStyleFile(FacesContext context, String script) {
137 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_STYLE_FILES);
138 if (set == null) {
139 set = new ListOrderedSet();
140 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_STYLE_FILES, set);
141 }
142 set.add(script);
143 }
144
145 public static Set<String> getStyleBlocks(FacesContext context) {
146 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_STYLE_BLOCKS);
147 if (set == null) {
148 return Collections.EMPTY_SET;
149 }
150 return set;
151 }
152
153 public static void addStyleBlock(FacesContext context, String script) {
154 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_STYLE_BLOCKS);
155 if (set == null) {
156 set = new ListOrderedSet();
157 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_STYLE_BLOCKS, set);
158 }
159 set.add(script);
160 }
161
162 public static List<String> getOnloadScripts(FacesContext context) {
163 List<String> list = (List<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONLOAD_SCRIPTS);
164 if (list == null) {
165 return Collections.EMPTY_LIST;
166 }
167 return list;
168 }
169
170
171 public static void addOnloadScript(FacesContext context, String file) {
172 List<String> list = (List<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONLOAD_SCRIPTS);
173 if (list == null) {
174 list = SetUniqueList.decorate(new ArrayList());
175 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ONLOAD_SCRIPTS, list);
176 }
177 list.add(file);
178 }
179
180 public static void addOnloadScript(FacesContext context, int position, String file) {
181 List<String> list = (List<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONLOAD_SCRIPTS);
182 if (list == null) {
183 list = SetUniqueList.decorate(new ArrayList());
184 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ONLOAD_SCRIPTS, list);
185 }
186 list.add(position, file);
187 }
188
189 public static Set<String> getOnunloadScripts(FacesContext context) {
190 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONUNLOAD_SCRIPTS);
191 if (set == null) {
192 return Collections.EMPTY_SET;
193 }
194 return set;
195 }
196
197 public static void addOnunloadScript(FacesContext context, String script) {
198 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONUNLOAD_SCRIPTS);
199 if (set == null) {
200 set = new ListOrderedSet();
201 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ONUNLOAD_SCRIPTS, set);
202 }
203 set.add(script);
204 }
205
206 public static Set<String> getOnexitScripts(FacesContext context) {
207 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONEXIT_SCRIPTS);
208 if (set == null) {
209 return Collections.EMPTY_SET;
210 }
211 return set;
212 }
213
214 public static void addOnexitScript(FacesContext context, String script) {
215 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONEXIT_SCRIPTS);
216 if (set == null) {
217 set = new ListOrderedSet();
218 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ONEXIT_SCRIPTS, set);
219 }
220 set.add(script);
221 }
222
223 public static Set<String> getOnsubmitScripts(FacesContext context) {
224 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONSUBMIT_SCRIPTS);
225 if (set == null) {
226 return Collections.EMPTY_SET;
227 }
228 return set;
229 }
230
231 public static void addOnsubmitScript(FacesContext context, String script) {
232 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_ONSUBMIT_SCRIPTS);
233 if (set == null) {
234 set = new ListOrderedSet();
235 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_ONSUBMIT_SCRIPTS, set);
236 }
237 set.add(script);
238 }
239
240 public static void clearMenuAcceleratorScripts(FacesContext context) {
241 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_MENU_ACCELERATORS);
242 set.clear();
243 }
244
245 public static Set<String> getMenuAcceleratorScripts(FacesContext context) {
246 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_MENU_ACCELERATORS);
247 if (set == null) {
248 return Collections.EMPTY_SET;
249 }
250 return set;
251 }
252
253 public static void addMenuAcceleratorScript(FacesContext context, String script) {
254 Set<String> set = (Set<String>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_MENU_ACCELERATORS);
255 if (set == null) {
256 set = new ListOrderedSet();
257 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_MENU_ACCELERATORS, set);
258 }
259 set.add(script);
260 }
261
262 public static Set<AbstractUIPopup> getPopups(FacesContext context) {
263 Set<AbstractUIPopup> set = (Set<AbstractUIPopup>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_POPUPS);
264 if (set == null) {
265 return Collections.EMPTY_SET;
266 }
267 return set;
268 }
269
270 public static void addPopup(FacesContext context, AbstractUIPopup popup) {
271 Set<AbstractUIPopup> set = (Set<AbstractUIPopup>) FacesUtils.getFacesContextAttributes(context).get(TOBAGO_POPUPS);
272 if (set == null) {
273 set = new ListOrderedSet();
274 FacesUtils.getFacesContextAttributes(context).put(TOBAGO_POPUPS, set);
275 }
276 set.add(popup);
277 }
278 }