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.event;
21
22 import org.apache.myfaces.tobago.util.FacesELUtils;
23
24 import javax.el.ELContext;
25 import javax.el.MethodExpression;
26 import javax.faces.component.StateHolder;
27 import javax.faces.context.FacesContext;
28
29 public class MethodExpressionTreeSelectedListener implements TreeSelectedListener, StateHolder {
30
31 private MethodExpression methodExpression;
32
33 private boolean isTransient = false;
34
35 public MethodExpressionTreeSelectedListener() {
36 }
37
38 public MethodExpressionTreeSelectedListener(final MethodExpression methodExpression) {
39 this.methodExpression = methodExpression;
40 }
41
42 @Override
43 public void treeSelected(final TreeSelectedEvent event) {
44 FacesELUtils.invokeMethodExpression(FacesContext.getCurrentInstance(), methodExpression, event);
45 }
46
47 private ELContext elContext() {
48 return FacesContext.getCurrentInstance().getELContext();
49 }
50
51 @Override
52 public void restoreState(final FacesContext context, final Object state) {
53 methodExpression = (MethodExpression) state;
54 }
55
56 @Override
57 public Object saveState(final FacesContext context) {
58 return methodExpression;
59 }
60
61 @Override
62 public void setTransient(final boolean newTransientValue) {
63 isTransient = newTransientValue;
64 }
65
66 @Override
67 public boolean isTransient() {
68 return isTransient;
69 }
70 }