1 4 package org.oddjob.designer.elements.date; 5 6 import java.util.Observable ; 7 import java.util.Observer ; 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 17 public class DateTimeAttribute extends SimpleAttribute { 18 19 private DateAttribute date = new DateAttribute(); 20 private TimeAttribute time = new TimeAttribute(); 21 22 private Observer observer = new Observer () { 23 public void update(Observable o, Object arg) { 24 String dateText = date.attribute(); 25 if (dateText == null) { 26 return; 27 } 28 String 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 attribute) { 49 String dateText = null; 50 String 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 |