Genesis + JXDatePicker

Alguém já consegiu customizar o binding de componentes para o JXDatePicker, eu tentei mais não consigo :


public class JXDatePickerComponentBinder extends AbstractComponentBinder {
   
	public BoundField bind(SwingBinder binder, Component component,
         FieldMetadata fieldMetadata) {
      return new JXDatePickerBoundField(binder, (JXDatePicker)component,
            fieldMetadata);
   }

   public class JXDatePickerBoundField extends AbstractBoundMember
         implements BoundField {
      private final JXDatePicker component;
      private final FieldMetadata fieldMetadata;
      private final PropertyChangeListener listener;

      public JXDatePickerBoundField(SwingBinder binder, JXDatePicker component,
            FieldMetadata fieldMetadata) {
         super(binder, component);
         this.component = component;
         this.fieldMetadata = fieldMetadata;

         component.addPropertyChangeListener(listener = createListener());

      }

      protected PropertyChangeListener createListener() {
         return new PropertyChangeListener() {
            public void propertyChange(PropertyChangeEvent evt) {
               getBinder().populateForm(fieldMetadata, getValue());

            }
         };
      }

      public String getValue() {
         return format(fieldMetadata, component.getDate());
      }

      public void setValue(Object value) {
         component.setDate((Date)value);
      }

      public void unbind() {
         if (listener != null) {
            component.removePropertyChangeListener(listener);
         }
      }
   }
} 

Pessoal consegui fazer segue abaixo a classe para aqueles que desejam um exemplo :


import java.awt.Component;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;

import net.java.dev.genesis.ui.binding.BoundField;
import net.java.dev.genesis.ui.metadata.FieldMetadata;
import net.java.dev.genesis.ui.swing.SwingBinder;
import net.java.dev.genesis.ui.swing.components.AbstractComponentBinder;

import org.jdesktop.swingx.JXDatePicker;

public class JXDatePickerComponentBinder extends AbstractComponentBinder {
	
	@Override
	public BoundField bind(SwingBinder binder, Component component,
			FieldMetadata fieldMetadata) {
		return new JXDatePickerBoundField(binder, (JXDatePicker) component,
				fieldMetadata);
	}

	public class JXDatePickerBoundField extends AbstractBoundMember implements
			BoundField {
		
		private final JXDatePicker component;
		private final FieldMetadata fieldMetadata;
		private final PropertyChangeListener listener;

		public JXDatePickerBoundField(SwingBinder binder,
				JXDatePicker component, FieldMetadata fieldMetadata) {
			super(binder, component);
			this.component = component;
			this.fieldMetadata = fieldMetadata;

			component.addPropertyChangeListener(listener = createListener());

		}

		protected PropertyChangeListener createListener() {
			return new PropertyChangeListener() {
				public void propertyChange(PropertyChangeEvent evt) {
					getBinder().populateForm(fieldMetadata, getValue());

				}
			};
		}

		public String getValue() {
			return format(fieldMetadata, component.getDate() == null ? ""
					: DataUtilitario.getDataFormatoString(component.getDate()));
		}

		public void setValue(Object value) {
			String objValue = (String) value;
			if (objValue != null && objValue.length() > 0) {
				component.setDate(DataUtilitario.parseData(objValue,
						DataUtilitario.DATA));
			}
		}

		public void unbind() {
			if (listener != null) {
				component.removePropertyChangeListener(listener);
			}
		}
	}
}