Dashboard > Spring Rich Client Project (Spring Rich) > ... > Forms Support > DateChooser Integration
  Spring Rich Client Project (Spring Rich) Log In View a printable version of the current page.  
  DateChooser Integration
Added by Peter De Bruycker, last edited by Peter De Bruycker on Dec 02, 2004  (view change)
Labels: 
(None)

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

JDateChooserPropertyEditor.java
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

NachoDateFieldPropertyEditor.java
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();
    }
}

Site running on a free Atlassian Confluence Open Source Project License granted to Spring Framework. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) - Bug/feature request - Contact Administrators