Vaadin-порядок столбцов таблицы
кто-нибудь знает, как/или можно-создать таблицу с определенным порядком столбцов; порядок конфигурации, который был до сохранения-пример в БД, и загружается при определенном просмотре? также мне интересно, как сгенерировать эти заголовки столбцов и контент из POJOS class - beans.
хорошие идеи?
2 ответов
setVisibleColumns
на Table::setVisibleColumns
делает двойной долг:
- контролирует, какие столбцы видны,и
- задает порядок отображения столбцов.
вызов Table::getVisibleColumns
посмотреть текущий заказ.
Doc
это хорошо описано в:
- книги фреймворк Vaadin > таблица
- сэмплер>Пользовательский Интерфейс>Представление Данных>таблица
- таблица API JavaDoc
Пример Кода
в основном, вам нужен такой код для управления порядком столбцов, а также установить список экземпляров bean в качестве источника данных.
код не проверял, просто демонстрация. Действительно для Vaadin 6, но я думаю, никаких существенных изменений по сравнению с Vaadin 7.
table = new Table();
// Wrap your beans collection into vaadin data container. There are many
// types of them , check Book of Vaadin.
BeanItemContainer<Bean> container = new BeanItemContainer<Bean>(Bean.class)
container.addBean(new Bean());
// Set collection of your beans as data source.
// Columns will be created for each property, vaadin uses reflection.
table.setContainerDataSource( container );
// You can select to display only properties you want, not all.
// Order matters. You can get columns list from any source - for example
// store in your DB.
table.setVisibleColumns( new Object[] {"prop1", "prop2"} );
// You can set column headers (by default vaadin will set them same as bean
// properties names). Order matters, should match above order.
table.setColumnHeaders( new String[] {"Property 1", "Property2"} );
ответ by Сергей Макаров является правильным. Этот ответ содержит дополнительную информацию.
переупорядочивание пользователя
Вы можете разрешить пользователю перетаскивать столбцы в таблице, чтобы изменить порядок их выполнения. Чтобы включить эту функцию, называют isColumnReorderingAllowed
.
можно использовать слушатель быть информированным, когда происходит такое событие переупорядочения.
повторный заказ пользователя длится только для этой работы сессия. Если вы хотите сохранить порядок пользователя в будущих рабочих сеансах, необходимо каким-то образом сохранить желаемый порядок и применить его при повторном создании экземпляра таблицы.
Потерять Порядка!--9-->
Если вы замените источник данных таблицы, порядок столбцов будет сброшен. Вы можете получить текущий заказ до изменения, а затем восстановить. Ниже приведен пример кода.
// Visible status & ordering.
java.lang.Object[] visibleColumns = this.exampleTable.getVisibleColumns();
// ------| Fresh Data |--------------
// Put fresh data into the Table.
this.exampleTable.setContainerDataSource( freshBeanItemContainer );
// ------| Restore Config |--------------
// Visible status & ordering.
this.exampleTable.setVisibleColumns( visibleColumns ); // Assumes the table has the same properties.
кстати, как с видимостью и порядком, будучи свернутым также будет сброшен с свежие данные. Вы можете отслеживать и восстанавливать коллапс столбцов, а также порядок.