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.compat.FacesUtilsEL;
23
24 import javax.el.MethodExpression;
25 import javax.faces.component.StateHolder;
26 import javax.faces.context.FacesContext;
27 import javax.faces.event.AbortProcessingException;
28
29 public class MethodExpressionStateChangeListener implements SheetStateChangeListener, StateHolder {
30
31 private MethodExpression methodExpression;
32
33 private boolean isTransient = false;
34
35 public MethodExpressionStateChangeListener() {
36 }
37
38 public MethodExpressionStateChangeListener(MethodExpression methodExpression) {
39 this.methodExpression = methodExpression;
40 }
41
42 public void processSheetStateChange(SheetStateChangeEvent actionEvent) throws AbortProcessingException {
43 FacesUtilsEL.invokeMethodExpression(FacesContext.getCurrentInstance(), methodExpression, actionEvent);
44 }
45
46 public void restoreState(FacesContext context, Object state) {
47 methodExpression = (MethodExpression) state;
48 }
49
50 public Object saveState(FacesContext context) {
51 return methodExpression;
52 }
53
54 public void setTransient(boolean newTransientValue) {
55 isTransient = newTransientValue;
56 }
57
58 public boolean isTransient() {
59 return isTransient;
60 }
61
62 }