Vaadin-порядок столбцов таблицы

кто-нибудь знает, как/или можно-создать таблицу с определенным порядком столбцов; порядок конфигурации, который был до сохранения-пример в БД, и загружается при определенном просмотре? также мне интересно, как сгенерировать эти заголовки столбцов и контент из POJOS class - beans.

хорошие идеи?

2 ответов


setVisibleColumns

на Table::setVisibleColumns делает двойной долг:

  • контролирует, какие столбцы видны,и
  • задает порядок отображения столбцов.

вызов Table::getVisibleColumns посмотреть текущий заказ.

Doc

это хорошо описано в:

Пример Кода

в основном, вам нужен такой код для управления порядком столбцов, а также установить список экземпляров 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.

кстати, как с видимостью и порядком, будучи свернутым также будет сброшен с свежие данные. Вы можете отслеживать и восстанавливать коллапс столбцов, а также порядок.