KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > designer > elements > date > DateTimeAttribute


1 /*
2  * (c) Rob Gordon 2005.
3  */

4 package org.oddjob.designer.elements.date;
5
6 import java.util.Observable JavaDoc;
7 import java.util.Observer JavaDoc;
8
9 import org.oddjob.designer.model.DesignDefinition;
10 import org.oddjob.designer.model.ElementField;
11 import org.oddjob.designer.model.FieldGroup;
12 import org.oddjob.designer.model.SimpleAttribute;
13
14 /**
15  *
16  */

17 public class DateTimeAttribute extends SimpleAttribute {
18
19     private DateAttribute date = new DateAttribute();
20     private TimeAttribute time = new TimeAttribute();
21
22     private Observer JavaDoc observer = new Observer JavaDoc() {
23         public void update(Observable JavaDoc o, Object JavaDoc arg) {
24             String JavaDoc dateText = date.attribute();
25             if (dateText == null) {
26                 return;
27             }
28             String JavaDoc timeText = time.attribute();
29             if (timeText == null) {
30                 DateTimeAttribute.super.attribute(dateText);
31             } else {
32                 DateTimeAttribute.super.attribute(dateText + " " + timeText);
33             }
34         }
35     };
36     
37     public DateTimeAttribute() {
38         date.addObserver(observer);
39         time.addObserver(observer);
40     }
41     
42     public DesignDefinition detail() {
43         return new FieldGroup("Date")
44             .add(new ElementField("Date ", date))
45             .add(new ElementField("Time", time));
46     }
47
48     public void attribute(String JavaDoc attribute) {
49         String JavaDoc dateText = null;
50         String JavaDoc timeText = null;
51         if (attribute != null) {
52             int spacePos = attribute.indexOf(' ');
53             if (spacePos == -1) {
54                 dateText = attribute;
55             }
56             else {
57                 dateText = attribute.substring(0, spacePos);
58                 timeText = attribute.substring(spacePos + 1);
59             }
60         }
61         date.attribute(dateText);
62         time.attribute(timeText);
63         super.attribute(attribute);
64     }
65         
66 }
67
Popular Tags