1 19 package org.lucane.webconnector.widgets; 20 21 import java.io.IOException ; 22 import java.io.Writer ; 23 import java.text.DecimalFormat ; 24 import java.text.Format ; 25 import java.util.Calendar ; 26 import java.util.Date ; 27 import java.util.GregorianCalendar ; 28 29 import org.lucane.webconnector.WebApp; 30 31 49 public class OptionalDateWidget implements Widget 50 { 51 52 public static final String ENABLED_VALUE = "true"; 53 54 private static final String SELECTED_ATTRIBUTE = " selected='true'"; 55 56 private Format twoDigitFormat; 57 58 private WebApp app; 59 60 61 private Date date; 62 63 64 private String prefix; 65 66 76 public OptionalDateWidget(WebApp app, Date date, String prefix) 77 { 78 this.app = app; 79 this.date = date; 80 this.prefix = prefix; 81 this.twoDigitFormat = new DecimalFormat ("00"); 82 } 83 84 87 public void render(Writer out) throws IOException 88 { 89 Calendar calendar = new GregorianCalendar (); 90 String enabledValue = null; 91 92 if (date != null) 93 { 94 calendar.setTime(date); 95 enabledValue = "checked='" + ENABLED_VALUE + "'"; 96 } 97 else 98 { 99 calendar.setTime(new Date ()); 100 enabledValue = ""; 101 } 102 103 int dateDay = calendar.get(Calendar.DAY_OF_MONTH); 104 int dateMonth = calendar.get(Calendar.MONTH); 105 int dateYear = calendar.get(Calendar.YEAR); 106 int dateHour = calendar.get(Calendar.HOUR_OF_DAY); 107 int dateMinute = calendar.get(Calendar.MINUTE); 108 109 out.write("<!-- OptionalDateWidget start -->\n"); 110 out.write("<input type='checkbox' name='" + prefix + "_enabled' value='" 111 + ENABLED_VALUE + "' " + enabledValue + "/>\n"); 112 out.write("<div class='calendar_dategroup'>\n"); 113 out.write(" <select name='" + prefix + "_day'>\n"); 114 for (int i = 1; i <= 31; i++) 115 { 116 String selectedValue = ""; 117 if (i == dateDay) 118 { 119 selectedValue = SELECTED_ATTRIBUTE; 120 } 121 out.write(" <option value='" + i + "'" + selectedValue + ">" 122 + twoDigitFormat.format(new Integer (i)) + "</option>\n"); 123 } 124 out.write(" </select>\n"); 125 out.write(" <select name='" + prefix + "_month'>\n"); 126 for (int i = 0; i < 12; i++) 127 { 128 String selectedValue = ""; 129 if (i == dateMonth) 130 { 131 selectedValue = SELECTED_ATTRIBUTE; 132 } 133 out.write(" <option value='" + i + "'" + selectedValue + ">" 134 + app.tr("month." + (i + 1)) + "</option>\n"); 135 } 136 out.write(" </select>\n"); 137 out.write(" <select name='" + prefix + "_year'>\n"); 138 for (int i = dateYear - 1; i < dateYear + 2; i++) 139 { 140 String selectedValue = ""; 141 if (i == dateYear) 142 { 143 selectedValue = SELECTED_ATTRIBUTE; 144 } 145 out.write(" <option value='" + i + "'" + selectedValue + ">" + i 146 + "</option>\n"); 147 } 148 out.write(" </select>\n"); 149 out.write("</div>\n"); 150 out.write("<div class='calendar_hourgroup'>\n"); 151 out.write(" <select name='" + prefix + "_hour'>\n"); 152 for (int i = 0; i < 24; i++) 153 { 154 String selectedValue = ""; 155 if (i == dateHour) 156 { 157 selectedValue = SELECTED_ATTRIBUTE; 158 } 159 out.write(" <option value='" + i + "'" + selectedValue + ">" 160 + twoDigitFormat.format(new Integer (i)) + "</option>\n"); 161 } 162 out.write(" </select>\n"); 163 out.write(" <select name='" + prefix + "_minute'>\n"); 164 for (int i = 0; i < 60; i += 15) 165 { 166 String selectedValue = ""; 167 if (i == dateMinute) 168 { 169 selectedValue = SELECTED_ATTRIBUTE; 170 } 171 out.write(" <option value='" + i + "'" + selectedValue + ">" 172 + twoDigitFormat.format(new Integer (i)) + "</option>\n"); 173 } 174 out.write(" </select>\n"); 175 out.write("</div>\n"); 176 out.write("<!-- OptionalDateWidget end -->\n"); 177 } 178 } 179 | Popular Tags |