DateChooser Integration
Date choosers are components that let the user choose a date in a convenient way.
Examples are:
To integrate a date chooser into your application, the easiest way is to create a PropertyEditor that supports a custom editor.
Below are two examples (one for JCalendar and one for NachoCalendar).
JCalendar
import java.awt.Component;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import com.toedter.calendar.JDateChooser;
public class JDateChooserPropertyEditor extends CustomDateEditor {
private FilePropertiesForm form;
private SimpleDateFormat dateFormat;
private JDateChooser dateChooser = new JDateChooser();
public JDateChooserPropertyEditor(String format) {
super(new SimpleDateFormat(format), true);
dateChooser.setDateFormatString(format);
dateChooser.getSpinner().addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
firePropertyChange();
}
});
}
public boolean supportsCustomEditor() {
return true;
}
public Component getCustomEditor() {
return dateChooser;
}
public void setValue(Object value) {
super.setValue(value);
dateChooser.setDate((Date) value);
}
public Object getValue() {
return dateChooser.getDate();
}
}
NacoCalendar
import java.awt.Component;
import java.text.SimpleDateFormat;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.sf.nachocalendar.CalendarFactory;
import net.sf.nachocalendar.components.DateField;
import org.springframework.beans.propertyeditors.CustomDateEditor;
public class NachoDateFieldPropertyEditor extends CustomDateEditor implements ChangeListener {
DateField dateField = CalendarFactory.createDateField();
public NachoDateFieldPropertyEditor(String format) {
super(new SimpleDateFormat(format), true);
dateField.addChangeListener(this);
dateField.setAllowsInvalid(true);
}
/* (non-Javadoc)
* @see java.beans.PropertyEditorSupport#supportsCustomEditor()
*/
public boolean supportsCustomEditor() {
return true;
}
/* (non-Javadoc)
* @see java.beans.PropertyEditorSupport#getCustomEditor()
*/
public Component getCustomEditor() {
return dateField;
}
/* (non-Javadoc)
* @see java.beans.PropertyEditorSupport#setValue(java.lang.Object)
*/
public void setValue(Object value) {
super.setValue(value);
dateField.setValue(value);
}
/* (non-Javadoc)
* @see java.beans.PropertyEditorSupport#getValue()
*/
public Object getValue() {
return dateField.getValue();
}
/* (non-Javadoc)
* @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event.ChangeEvent)
*/
public void stateChanged(ChangeEvent e) {
firePropertyChange();
}
}