1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.renderkit.html.ext;
20
21 import java.io.IOException;
22
23 import javax.faces.component.UIComponent;
24 import javax.faces.component.UIViewRoot;
25 import javax.faces.context.FacesContext;
26 import javax.faces.context.ResponseWriter;
27
28 import org.apache.myfaces.component.html.ext.HtmlPanelGroup;
29 import org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils;
30 import org.apache.myfaces.shared_tomahawk.renderkit.html.HTML;
31 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlGroupRendererBase;
32 import org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlRendererUtils;
33
34
35
36
37
38
39
40
41
42
43
44 public class HtmlGroupRenderer
45 extends HtmlGroupRendererBase
46 {
47
48 public void encodeEnd(FacesContext context, UIComponent component) throws IOException {
49 ResponseWriter writer = context.getResponseWriter();
50 boolean span = false;
51 String element = getHtmlElement(component);
52
53 if(component.getId()!=null && !component.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
54 {
55 span = true;
56
57 writer.startElement(element, component);
58
59 HtmlRendererUtils.writeIdIfNecessary(writer, component, context);
60
61 HtmlRendererUtils.renderHTMLAttributes(writer, component, HTML.COMMON_PASSTROUGH_ATTRIBUTES);
62 }
63 else
64 {
65 span=HtmlRendererUtils.renderHTMLAttributesWithOptionalStartElement(writer,
66 component,
67 element,
68 HTML.COMMON_PASSTROUGH_ATTRIBUTES);
69 }
70
71 RendererUtils.renderChildren(context, component);
72 if (span)
73 {
74 writer.endElement(element);
75 }
76 }
77
78 private String getHtmlElement(UIComponent component) {
79 if (component instanceof HtmlPanelGroup) {
80 HtmlPanelGroup group = (HtmlPanelGroup) component;
81 if (HtmlPanelGroup.BLOCK_LAYOUT.equals(group.getLayout())) {
82 return HTML.DIV_ELEM;
83 }
84 }
85 return HTML.SPAN_ELEM;
86 }
87 }