1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.custom.ppr;
20
21 import javax.faces.FacesException;
22 import javax.faces.component.UIViewRoot;
23 import javax.faces.context.FacesContext;
24 import javax.faces.event.PhaseListener;
25 import javax.faces.lifecycle.Lifecycle;
26
27
28
29
30
31
32 public class PPRLifecycleWrapper extends Lifecycle
33 {
34 private final Lifecycle delegate;
35
36 public PPRLifecycleWrapper(Lifecycle delegate)
37 {
38 this.delegate = delegate;
39 }
40
41 public void addPhaseListener(PhaseListener listener)
42 {
43 this.delegate.addPhaseListener(listener);
44 }
45
46 public void execute(final FacesContext context) throws FacesException
47 {
48 if (PPRSupport.isPartialRequest(context))
49 {
50 FacesContext wrappedContext = new PPRFacesContextWrapper(context)
51 {
52 public UIViewRoot getViewRoot()
53 {
54 UIViewRoot viewRoot = context.getViewRoot();
55 if (viewRoot == null)
56 {
57 return null;
58 }
59
60 return new PPRViewRootWrapper(viewRoot);
61 }
62 };
63
64 this.delegate.execute(wrappedContext);
65 }
66 else
67 {
68 this.delegate.execute(context);
69 }
70 }
71
72 public PhaseListener[] getPhaseListeners()
73 {
74 return this.delegate.getPhaseListeners();
75 }
76
77 public void removePhaseListener(PhaseListener listener)
78 {
79 this.delegate.removePhaseListener(listener);
80 }
81
82 public void render(FacesContext context) throws FacesException
83 {
84 this.delegate.render(context);
85 }
86 }