Я создал таблицу и соответствующий SQLContainer. В таблице есть столбец с номерами телефонов. В таблице db тип соответствующего столбца - int. Я хочу форматировать значения таблицы Vaadin, таким образом, чтобы просматривать номера телефонов без комы или точек, таких как разделитель тысяч (8 888 -> 8888).Форматирование значения в ячейке таблицы
Я уже сделал подобную вещь в таблице, какой источник данных является JPAContainer на этом пути:
Table imenikTable = new Table("Imenik", imenikData){
/**
*
*/
private static final long serialVersionUID = 8213291207581835298L;
@Override
protected String formatPropertyValue(Object rowId,
Object colId, @SuppressWarnings("rawtypes") Property property) {
Object v = property.getValue();
if (v instanceof Integer) {
DecimalFormat df = (DecimalFormat) DecimalFormat.getInstance(getLocale());
df.applyLocalizedPattern("##00");
return df.format(v);
}
return super.formatPropertyValue(rowId, colId, property);
}
};
И все хорошо работает. Но когда я сделал аналогичную конструкцию с SQLContiner вместо JPAContainer, это просто игнорируется. Наверное, я пытаюсь изменить способ следующим образом:
StringToIntegerConverter plainIntegerConverter = new StringToIntegerConverter(){
private static final long serialVersionUID = -7517984934588222147L;
protected NumberFormat getFormat(Locale locale){
NumberFormat format = super.getFormat(locale);
format.setGroupingUsed(false);
return format;
}
};
contaktListTable.setConverter("telbr", plainIntegerConverter);
Но все же моя среда игнорирует меня, даже никаких сообщений об ошибках! Что может быть проблемой?
Да, я проверил. И я пришел к такому же выводу. Я пытаюсь сделать преобразование на уровне презентации. В базе MySql используется тип int. И какой тип может быть в SQLcontainer перед преобразованием в Table (где он стал String)? – vmaric
Да, я проверяю с точкой останова. это значение не целое. – vmaric
Вы используете Oracle DB? Книга vaadin говорит об этом: при использовании базы данных Oracle большинство или все числовые типы преобразуются в java.math.BigDecimal драйвером JDBC Oracle. –