Создание настраиваемого поля - PullRequest
2 голосов
/ 13 января 2012

У меня есть следующий контейнер:

BeanContainer<Integer, Person> container = new BeanContainer<Integer, Person>(Person.class);
container.setBeanIdProperty("lastName");

Где человек имеет атрибуты "lastName", "firstName" и "town".

Я передаю этот контейнер в свою таблицу:

table.setContainerDataSource(container);

Проблема в том, что я хочу иметь значение свойства идентификатора компонента (называемое «полное имя»), которое является результатом конкатенации фамилии и имени.

Как мне это сделать?это с помощью методов setTableFieldFactory и createField?

Спасибо.

Ответы [ 3 ]

1 голос
/ 13 января 2012

Кажется, вам нужен простой автоматически сгенерированный столбец.Вот образец: http://dev.vaadin.com/svn/versions/6.1/src/com/vaadin/demo/featurebrowser/GeneratedColumnExample.java

1 голос
/ 13 января 2012

Один из способов сделать это - добавить метод getFullName () в ваш класс Person, который соответствует и затем возвращает поля имя + фамилия

0 голосов
/ 14 января 2012

Фмукар прав.

не забудьте также включить установщик.В некоторых случаях выдается исключение Property.ReadOnlyException, если вы не включите установщик.

Если вы не можете использовать GeneratedColum из-за следующей точки:

  • , видимое отображениебыть восстановленным при любом взаимодействии (чтобы попробовать это, вы можете добавить сгенерированный столбец, который возвращает случайное число).
  • контейнер знает только видимую часть.Так что сортировка может быть хитрой.
...