1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.view.facelets.pss.acid.component;
20
21 import javax.faces.component.FacesComponent;
22 import javax.faces.component.UIComponentBase;
23 import javax.faces.component.UIViewRoot;
24 import javax.faces.context.FacesContext;
25 import javax.faces.event.AbortProcessingException;
26 import javax.faces.event.PreRenderViewEvent;
27 import javax.faces.event.SystemEvent;
28 import javax.faces.event.SystemEventListener;
29
30 @FacesComponent(value = "com.myapp.UISelfRenderComponent")
31 public class UISelfRenderComponent extends UIComponentBase implements
32 SystemEventListener
33 {
34
35
36
37
38
39 public UISelfRenderComponent()
40 {
41
42 setRendererType("testcomponentself");
43
44 FacesContext context = FacesContext.getCurrentInstance();
45 UIViewRoot root = context.getViewRoot();
46
47 root.subscribeToViewEvent(PreRenderViewEvent.class, this);
48 }
49
50
51
52
53
54 @Override
55 public String getFamily()
56 {
57
58 return "com.myapp";
59 }
60
61 public boolean isListenerForSource(Object source)
62 {
63
64 return (source instanceof UIViewRoot);
65 }
66
67 public void processEvent(SystemEvent event) throws AbortProcessingException
68 {
69
70 getChildren().add(getChildren().remove(0));
71 }
72 }