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 javax.faces.context.FacesContext;
22 import javax.faces.el.EvaluationException;
23 import javax.faces.el.VariableResolver;
24
25 import org.apache.myfaces.orchestra.viewController.ViewControllerManager;
26 import org.apache.myfaces.orchestra.viewController.ViewControllerManagerFactory;
27
28
29
30
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 = ViewControllerManagerFactory.getInstance();
48 return manager.getViewController(facesContext.getViewRoot().getViewId());
49 }
50
51 return original.resolveVariable(facesContext, variableName);
52 }
53 }