...
Code Block |
---|
private static final IUIConverter[] UI_CONVERTERS = new IUIConverter[] { JodaToDateConverter.INSTANCE };
public IUIConverter[] getUIConverters()
{
return UI_CONVERTERS;
}
static class NrToJodaConverter implements ITypedColumnConverter
{
static final NrToJodaConverter INSTANCE = new NrToJodaConverter();
public Object convertToObject(Map<String, String> props, int column_type, Object dbvalue) throws Exception
{
if (dbvalue == null)
{
return null;
}
return new DateTime(Utils.getAsLong(dbvalue));
}
public Object convertFromObject(Map<String, String> props, int column_type, Object obj) throws Exception
{
if (obj instanceof DateTime)
{
return Long.valueOf(((DateTime)obj).getMillis());
}
return obj; // or throw an exception??
}
public Map<String, String> getDefaultProperties()
{
return null;
}
public int[] getSupportedColumnTypes()
{
return new int[] { IColumnTypes.INTEGER };
}
public String getName()
{
return getClass().getSimpleName();
}
public int getToObjectType(Map<String, String> props)
{
// Servoy does not understand joda time natively.
return IColumnTypes.MEDIA;
}
}
static class JodaToDateConverter implements IUIConverter
{
static final JodaToDateConverter INSTANCE = new JodaToDateConverter();
public Object convertFromObject(Map<String, String> props, int input_type, Object converted) throws Exception
{
if (converted instanceof Date)
{
return new DateTime(((Date)converted).getTime());
}
return converted; // or return null or throw an exception
}
public Object convertToObject(Map<String, String> props, int input_type, Object input) throws Exception
{
if (input instanceof DateTime)
{
return new Date(((DateTime)input).getMillis());
}
return input; // or return null or throw an exception
}
public Map<String, String> getDefaultProperties()
{
return null;
}
public int[] getSupportedDataproviderTypes()
{
// Servoy does not understand joda time natively, therefore the dataprovider type will be MEDIA.
return new int[] { IColumnTypes.MEDIA };
}
public String getName()
{
return getClass().getSimpleName();
}
public int getToObjectType(Map<String, String> props)
{
return IColumnTypes.DATETIME;
}
} |