]> WPIA git - gigi.git/blob - src/org/cacert/gigi/output/DateSelector.java
Implement store Date in dateSelector.
[gigi.git] / src / org / cacert / gigi / output / DateSelector.java
1 package org.cacert.gigi.output;
2
3 import java.io.PrintWriter;
4 import java.text.SimpleDateFormat;
5 import java.util.Arrays;
6 import java.util.Calendar;
7 import java.util.Map;
8
9 import javax.servlet.http.HttpServletRequest;
10
11 import org.cacert.gigi.Language;
12
13 public class DateSelector implements Outputable {
14         String[] names;
15         public DateSelector(String day, String month, String year) {
16                 this.names = new String[]{day, month, year};
17         }
18         int day;
19         int month;
20         int year;
21         @Override
22         public void output(PrintWriter out, Language l, Map<String, Object> vars) {
23                 out.print("<nobr><select name=\"");
24                 out.print(names[0]);
25                 out.println("\">");
26                 for (int i = 1; i <= 31; i++) {
27                         out.print("<option");
28                         if (i == day) {
29                                 out.print(" selected=\"selected\"");
30                         }
31                         out.println(">" + i + "</option>");
32                 }
33                 out.println("</select>");
34                 SimpleDateFormat sdf = new SimpleDateFormat("MMMM", l.getLocale());
35                 out.print("<select name=\"");
36                 out.print(names[1]);
37                 out.println("\">");
38                 Calendar c = sdf.getCalendar();
39                 for (int i = 1; i <= 12; i++) {
40                         c.set(Calendar.MONTH, i - 1);
41                         out.print("<option value='" + i + "'");
42                         if (i == month) {
43                                 out.print(" selected=\"selected\"");
44                         }
45                         out.println(">" + sdf.format(c.getTime()) + " (" + i + ")</option>");
46                 }
47                 out.println("</select>");
48                 out.print("<input type=\"text\" name=\"");
49                 out.print(names[2]);
50                 out.print("\" value=\"");
51                 if (year != 0) {
52                         out.print(year);
53                 }
54                 out.print("\" size=\"4\" autocomplete=\"off\"></nobr>");
55         }
56
57         public void update(HttpServletRequest r) {
58                 String dayS = r.getParameter(names[0]);
59                 if (dayS != null) {
60                         day = parseIntSafe(dayS);
61                 }
62
63                 String monthS = r.getParameter(names[1]);
64                 if (monthS != null) {
65                         month = parseIntSafe(monthS);
66                 }
67
68                 String yearS = r.getParameter(names[2]);
69                 if (yearS != null) {
70                         year = parseIntSafe(yearS);
71                 }
72         }
73         private int parseIntSafe(String dayS) {
74                 try {
75                         return Integer.parseInt(dayS);
76                 } catch (NumberFormatException e) {
77
78                 }
79                 return 0;
80         }
81         public boolean isValid() {
82                 if (!(1900 < year && 1 <= month && month <= 12 && 1 <= day && day <= 32)) {
83                         return false;
84                 }
85                 return true; // TODO checkdate
86         }
87
88         @Override
89         public String toString() {
90                 return "DateSelector [names=" + Arrays.toString(names) + ", day=" + day
91                                 + ", month=" + month + ", year=" + year + "]";
92         }
93
94 }