1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.custom.dojo;
21
22 import org.apache.myfaces.shared_tomahawk.renderkit.JSFAttr;
23 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRenderer;
24
25 import java.io.IOException;
26
27 import javax.faces.component.UIComponent;
28 import javax.faces.context.FacesContext;
29
30
31
32
33
34
35
36
37
38
39
40
41
42 public class DojoInitializerRenderer extends HtmlRenderer {
43
44 public static final String RENDERER_TYPE = "org.apache.myfaces.DojoInitializerRenderer";
45
46 public void decode(FacesContext context, UIComponent component) {
47 super.decode(context, component);
48
49 }
50
51 public void encodeBegin(FacesContext context, UIComponent component) throws IOException {
52
53 if ((context == null) || (component == null)) {
54 throw new NullPointerException();
55 }
56
57 Boolean rendered = (Boolean) component.getAttributes().get("rendered");
58
59 if ((rendered != null) && (!rendered.booleanValue()))
60 return;
61
62 super.encodeBegin(context, component);
63
64 }
65
66
67
68
69
70 public void encodeEnd(FacesContext facesContext, UIComponent component) throws IOException {
71 super.encodeEnd(facesContext, component);
72
73 encodeJavascript(facesContext, component);
74
75 if ((((DojoInitializer) component).getDebugConsole() != null) && ((DojoInitializer) component).getDebugConsole().booleanValue()) {
76 DojoUtils.addDebugConsole(facesContext, component);
77 }
78 }
79
80 public boolean getRendersChildren() {
81 return false;
82 }
83
84
85
86
87
88
89
90
91
92
93
94 private void encodeJavascript(FacesContext context, UIComponent component) throws IOException {
95 String javascriptLocation = (String) component.getAttributes().get(JSFAttr.JAVASCRIPT_LOCATION);
96 DojoUtils.addMainInclude(context, component, javascriptLocation, DojoUtils.getDjConfigInstance(context));
97
98 String require = (String) component.getAttributes().get("require");
99 String provide = (String) component.getAttributes().get("provide");
100
101 if (provide != null)
102 DojoUtils.addProvide(context, component, provide);
103
104 if (require != null)
105 DojoUtils.addRequire(context, component, require);
106
107 }
108
109 }