package com.rapidftr.controls;
import java.util.Date;
import net.rim.device.api.i18n.DateFormat;
import net.rim.device.api.i18n.SimpleDateFormat;
import net.rim.device.api.io.http.HttpDateParser;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.FieldChangeListener;
import net.rim.device.api.ui.component.DateField;
import com.rapidftr.form.FormField;
public class DateFormField extends CustomField {
DateField dateField;
public DateFormField(FormField field) {
super(field);
DateFormat dateFormat = new SimpleDateFormat("d MMM yyyy");
dateField = new DateField(field.getDisplayName(), Long.MIN_VALUE,
dateFormat, DateField.DATE);
dateField.setDate(null);
add(dateField);
dateField.setChangeListener(new FieldChangeListener() {
public void fieldChanged(Field field, int context) {
if (dateField.getDate() != Long.MIN_VALUE) {
setFieldValue(new SimpleDateFormat("d MMM yyyy").format(new Date(dateField.getDate())));
}
}
});
}
public void setValue(String value) {
dateField.setDate(Long.MIN_VALUE);
if (value == null || value.length() == 0) {
return;
}
long httpDate = HttpDateParser.parse(value);
if (httpDate == 0) {
return;
}
dateField.setDate(httpDate);
setFieldValue(value);
}
}