package com.mycompany.data;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import com.vaadin.data.util.converter.Converter;
import com.vaadin.data.util.converter.DefaultConverterFactory;
@SuppressWarnings("serial")
public class MyConverterFactory extends DefaultConverterFactory {
@SuppressWarnings("unchecked")
@Override
protected <PRESENTATION, MODEL> Converter<PRESENTATION, MODEL> findConverter(
Class<PRESENTATION> presentationType, Class<MODEL> modelType) {
if (presentationType == String.class && modelType == Calendar.class) {
return ((Converter<PRESENTATION, MODEL>) new Converter<String, Calendar>() {
@Override
public Class<Calendar> getModelType() {
return Calendar.class;
}
@Override
public Class<String> getPresentationType() {
return String.class;
}
@Override
public Calendar convertToModel(String value,
Class<? extends Calendar> targetType, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
return new GregorianCalendar();
}
@Override
public String convertToPresentation(Calendar value,
Class<? extends String> targetType, Locale locale)
throws com.vaadin.data.util.converter.Converter.ConversionException {
SimpleDateFormat df = new SimpleDateFormat();
df.applyPattern("mm/dd/yyyy hh:mm aa");
return df.format(value.getTime());
}
});
}
return super.findConverter(presentationType, modelType);
}
}