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.renderkit.html.scarborough.standard.tag;
21
22 import org.apache.myfaces.tobago.internal.component.AbstractUIInput;
23 import org.apache.myfaces.tobago.internal.util.DateFormatUtils;
24 import org.apache.myfaces.tobago.renderkit.html.DataAttributes;
25 import org.apache.myfaces.tobago.webapp.TobagoResponseWriter;
26 import org.slf4j.Logger;
27 import org.slf4j.LoggerFactory;
28
29 import javax.faces.context.FacesContext;
30 import javax.faces.convert.Converter;
31 import javax.faces.convert.DateTimeConverter;
32 import java.io.IOException;
33
34 public class DateRenderer extends InRenderer {
35
36 private static final Logger LOG = LoggerFactory.getLogger(DateRenderer.class);
37
38 @Override
39 protected void writeAdditionalAttributes(
40 FacesContext facesContext, TobagoResponseWriter writer, AbstractUIInput input) throws IOException {
41 super.writeAdditionalAttributes(facesContext, writer, input);
42
43 String pattern = null;
44 Converter help = getConverter(facesContext, input);
45 if (help instanceof DateTimeConverter) {
46 DateTimeConverter converter = (DateTimeConverter) help;
47 pattern = DateFormatUtils.findPattern(converter);
48 }
49 if (pattern == null) {
50 pattern = "yyyy-MM-dd";
51 LOG.warn("Can't find the pattern for the converter! DatePicker may not work correctly. "
52 + "Trying to use: '" + pattern + "'");
53 }
54
55 writer.writeAttribute(DataAttributes.PATTERN, pattern, true);
56 }
57 }
58