01: /*
02: #IFNDEF ALT_LICENSE
03: ThinWire(R) RIA Ajax Framework
04: Copyright (C) 2003-2007 Custom Credit Systems
05:
06: This library is free software; you can redistribute it and/or modify it under
07: the terms of the GNU Lesser General Public License as published by the Free
08: Software Foundation; either version 2.1 of the License, or (at your option) any
09: later version.
10:
11: This library is distributed in the hope that it will be useful, but WITHOUT ANY
12: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
13: PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
14:
15: You should have received a copy of the GNU Lesser General Public License along
16: with this library; if not, write to the Free Software Foundation, Inc., 59
17: Temple Place, Suite 330, Boston, MA 02111-1307 USA
18:
19: Users who would rather have a commercial license, warranty or support should
20: contact the following company who invented, built and supports the technology:
21:
22: Custom Credit Systems, Richardson, TX 75081, USA.
23: email: info@thinwire.com ph: +1 (888) 644-6405
24: http://www.thinwire.com
25: #ENDIF
26: [ v1.2_RC2 ]
27: */
28: package thinwire.render.web;
29:
30: import java.text.SimpleDateFormat;
31: import java.util.Date;
32:
33: import thinwire.ui.Component;
34: import thinwire.ui.DateBox;
35: import thinwire.ui.event.PropertyChangeEvent;
36:
37: final class DateBoxRenderer extends ComponentRenderer {
38: private static final String DATE_BOX_CLASS = "tw_DateBox";
39: static final SimpleDateFormat dateBoxFormat = new SimpleDateFormat(
40: "MM/dd/yyyy");
41:
42: void render(WindowRenderer wr, Component c,
43: ComponentRenderer container) {
44: init(DATE_BOX_CLASS, wr, c, container);
45: addClientSideProperty(DateBox.PROPERTY_SELECTED_DATE);
46: addInitProperty(DateBox.PROPERTY_SELECTED_DATE, dateBoxFormat
47: .format(((DateBox) c).getSelectedDate()));
48: addInitProperty("today", dateBoxFormat.format(new Date()));
49: super .render(wr, c, container);
50: }
51:
52: public void propertyChange(PropertyChangeEvent pce) {
53: String name = pce.getPropertyName();
54: if (isPropertyChangeIgnored(name))
55: return;
56: Object newValue = pce.getNewValue();
57: if (name.equals(DateBox.PROPERTY_SELECTED_DATE)) {
58: postClientEvent("setSelectedDate", dateBoxFormat
59: .format((Date) newValue));
60: } else {
61: super .propertyChange(pce);
62: }
63:
64: }
65:
66: public void componentChange(WebComponentEvent event) {
67: String name = event.getName();
68: DateBox db = (DateBox) comp;
69:
70: if (name.equals(DateBox.PROPERTY_SELECTED_DATE)) {
71: Date dt = (Date) getEventObject(comp, (String) event
72: .getValue());
73: setPropertyChangeIgnored(name, true);
74: db.setSelectedDate(dt);
75: setPropertyChangeIgnored(name, false);
76: } else {
77: super.componentChange(event);
78: }
79: }
80: }
|