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.internal.component.AbstractUIHidden;
23 import org.apache.myfaces.tobago.internal.util.HtmlRendererUtils;
24 import org.apache.myfaces.tobago.internal.util.RenderUtils;
25 import org.apache.myfaces.tobago.renderkit.html.HtmlAttributes;
26 import org.apache.myfaces.tobago.renderkit.html.HtmlElements;
27 import org.apache.myfaces.tobago.renderkit.html.HtmlInputTypes;
28 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
29
30 import javax.faces.context.FacesContext;
31 import java.io.IOException;
32
33 public class HiddenRenderer<T extends AbstractUIHidden> extends DecodingInputRendererBase<T> {
34
35 @Override
36 protected boolean isOutputOnly(T component) {
37 return component.isDisabled();
38 }
39
40 @Override
41 public void encodeBeginInternal(final FacesContext facesContext, final T component) throws IOException {
42
43 final String clientId = component.getClientId(facesContext);
44 final String value = RenderUtils.currentValue(component);
45
46 final TobagoResponseWriter writer = getResponseWriter(facesContext);
47
48 writer.startElement(HtmlElements.INPUT);
49 if (component.isDisabled()) {
50
51 writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.TEXT);
52 writer.writeAttribute(HtmlAttributes.DISABLED, true);
53 } else {
54 writer.writeAttribute(HtmlAttributes.TYPE, HtmlInputTypes.HIDDEN);
55 }
56 writer.writeNameAttribute(clientId);
57 writer.writeIdAttribute(clientId);
58 HtmlRendererUtils.writeDataAttributes(facesContext, writer, component);
59 writer.writeAttribute(HtmlAttributes.VALUE, value != null ? value : "", true);
60 }
61
62 @Override
63 public void encodeEndInternal(final FacesContext facesContext, final T component) throws IOException {
64 final TobagoResponseWriter writer = getResponseWriter(facesContext);
65 writer.endElement(HtmlElements.INPUT);
66 }
67 }