1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.orchestra.viewController.jsf;
20
21 import org.apache.myfaces.orchestra.viewController.ViewControllerManager;
22 import org.apache.myfaces.orchestra.viewController._ViewControllerUtils;
23
24 import javax.faces.context.FacesContext;
25 import javax.faces.el.EvaluationException;
26 import javax.faces.el.VariableResolver;
27
28 /***
29 * Provides a way to access the viewController through the JSF expression language (EL)
30 * using the special variable name <code>oxViewController</code>.
31 */
32 public class ViewControllerVariableResolver extends VariableResolver
33 {
34 private final static String VIEW_CONTROLLER_VARIABLE = "oxViewController";
35
36 private final VariableResolver original;
37
38 public ViewControllerVariableResolver(VariableResolver original)
39 {
40 this.original = original;
41 }
42
43 public Object resolveVariable(FacesContext facesContext, String variableName) throws EvaluationException
44 {
45 if (VIEW_CONTROLLER_VARIABLE.equals(variableName))
46 {
47 ViewControllerManager manager = _ViewControllerUtils.getViewControllerManager(facesContext);
48 return manager.getViewController(facesContext.getViewRoot().getViewId());
49 }
50
51 return original.resolveVariable(facesContext, variableName);
52 }
53 }