1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.myfaces.tobago.internal.renderkit.renderer;
21
22 import org.apache.myfaces.tobago.context.Markup;
23 import org.apache.myfaces.tobago.internal.component.AbstractUIButtons;
24 import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
25 import org.apache.myfaces.tobago.layout.Orientation;
26 import org.apache.myfaces.tobago.renderkit.RendererBase;
27 import org.apache.myfaces.tobago.renderkit.css.BootstrapClass;
28 import org.apache.myfaces.tobago.renderkit.css.TobagoClass;
29 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
30 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
31 import org.apache.myfaces.tobago.renderkit.html.HtmlRoleValues;
32 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
33
34 import javax.faces.context.FacesContext;
35 import java.io.IOException;
36
37 public class ButtonsRenderer<T extends AbstractUIButtons> extends RendererBase<T> {
38
39 @Override
40 public void encodeBeginInternal(final FacesContext facesContext, final T component) throws IOException {
41
42 final Markup markup = component.getMarkup();
43 final TobagoResponseWriter writer = getResponseWriter(facesContext);
44
45 writer.startElement(HtmlElements.TOBAGO_BUTTONS);
46 writer.writeIdAttribute(component.getClientId(facesContext));
47
48 writer.writeClassAttribute(
49 null,
50 TobagoClass.BUTTONS.createMarkup(markup),
51 Orientation.vertical.equals(component.getOrientation())
52 ? BootstrapClass.BTN_GROUP_VERTICAL : BootstrapClass.BTN_GROUP,
53 component.getCustomClass());
54 writer.writeAttribute(HtmlAttributes.ROLE, HtmlRoleValues.GROUP.toString(), false);
55 HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
56 final String tip = component.getTip();
57 if (tip != null) {
58 writer.writeAttribute(HtmlAttributes.TITLE, tip, true);
59 }
60
61 insideBegin(facesContext, HtmlElements.TOBAGO_BUTTONS);
62 }
63
64 @Override
65 public void encodeEndInternal(final FacesContext facesContext, final T component) throws IOException {
66 insideEnd(facesContext, HtmlElements.TOBAGO_BUTTONS);
67
68 final TobagoResponseWriter writer = getResponseWriter(facesContext);
69 writer.endElement(HtmlElements.TOBAGO_BUTTONS);
70 }
71 }