1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.custom.toggle;
20
21 import java.io.IOException;
22 import java.util.List;
23 import java.util.Map;
24
25 import javax.faces.component.UIComponent;
26 import javax.faces.component.behavior.ClientBehavior;
27 import javax.faces.context.FacesContext;
28 import javax.faces.context.ResponseWriter;
29
30 import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
31 import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
32 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGroupRendererBase;
33 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
34 import org.apache.myfaces.shared_tomahawk.renderkit.html.util.ResourceUtils;
35
36
37
38
39
40
41
42
43
44 public class ToggleGroupRenderer extends HtmlGroupRendererBase {
45
46 @Override
47 public void decode(FacesContext context, UIComponent component)
48 {
49 super.decode(context, component);
50
51 HtmlRendererUtils.decodeClientBehaviors(context, component);
52 }
53
54 public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
55 ToggleGroup toggleGroup = (ToggleGroup) component;
56 ResponseWriter writer = context.getResponseWriter();
57
58 Map<String, List<ClientBehavior>> behaviors = null;
59 behaviors = toggleGroup.getClientBehaviors();
60 if (!behaviors.isEmpty())
61 {
62 ResourceUtils.renderDefaultJsfJsInlineIfNecessary(context, writer);
63 }
64
65 writer.startElement( org.apache.myfaces.shared_tomahawk.renderkit.html.HTML.SPAN_ELEM, component );
66 writer.writeAttribute(HTML.ID_ATTR, component.getClientId(context), null);
67
68 if (behaviors != null && !behaviors.isEmpty())
69 {
70 HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.UNIVERSAL_ATTRIBUTES);
71 HtmlRendererUtils.renderBehaviorizedEventHandlers(context, writer, component, behaviors);
72 }
73 else
74 {
75 HtmlRendererUtils.renderHTMLAttributes( writer, component, HTML.COMMON_PASSTROUGH_ATTRIBUTES );
76 }
77
78 RendererUtils.renderChildren( context, component );
79
80 writer.endElement( HTML.SPAN_ELEM );
81 }
82 }