| package org.eclipse.osbp.vaaclipse.addons.app.converter; |
| |
| import org.eclipse.osbp.runtime.web.vaadin.components.converter.DecimalDoubleConverter; |
| import org.eclipse.osbp.runtime.web.vaadin.components.converter.DecimalFloatConverter; |
| |
| import com.vaadin.data.util.converter.Converter; |
| import com.vaadin.data.util.converter.DefaultConverterFactory; |
| |
| @SuppressWarnings("serial") |
| public class VaaclipseConverterFactory extends DefaultConverterFactory { |
| |
| @SuppressWarnings("unchecked") |
| @Override |
| public <PRESENTATION, MODEL> Converter<PRESENTATION, MODEL> createConverter(Class<PRESENTATION> presentationType, |
| Class<MODEL> modelType) { |
| if (String.class == presentationType) { |
| if (java.util.Date.class.isAssignableFrom(modelType)|| |
| java.sql.Date.class.isAssignableFrom(modelType)|| |
| java.sql.Timestamp.class.isAssignableFrom(modelType)) { |
| return (Converter<PRESENTATION, MODEL>) new VaaclipseDateConverter(); |
| } |
| if (modelType.isArray() && modelType.getComponentType().getSimpleName().equals("byte")){ |
| return (Converter<PRESENTATION, MODEL>) new VaaclipseByteArrayConverter(); |
| } |
| if (Double.class.isAssignableFrom(modelType)) { |
| return (Converter<PRESENTATION, MODEL>) new DecimalDoubleConverter(); |
| } else if (Float.class.isAssignableFrom(modelType)) { |
| return (Converter<PRESENTATION, MODEL>) new DecimalFloatConverter(); |
| } |
| } |
| |
| return super.createConverter(presentationType, modelType); |
| } |
| |
| } |