Vaadin 表列顺序

Vaadin 表列顺序,vaadin,multiple-columns,pojo,Vaadin,Multiple Columns,Pojo,任何人都知道如何/或可能-创建具有特定列顺序的表;保存之前的配置顺序-例如在数据库中, 并在上的特定视图中上载?我还想知道如何从POJO类bean生成这些列的标题和内容 有什么好主意吗?setVisibleColumns 政府有双重责任: 控制哪些列可见,以及 设置列的显示顺序 打电话查看当前的订购情况 医生 这在以下章节中有详细描述: > >>> 示例代码 基本上,您需要这样的代码来控制列顺序,并将bean实例列表设置为数据源 代码没有经过测试,只是一个演示。对Vaadin 6有效,

任何人都知道如何/或可能-创建具有特定列顺序的表;保存之前的配置顺序-例如在数据库中, 并在上的特定视图中上载?我还想知道如何从POJO类bean生成这些列的标题和内容

有什么好主意吗?

setVisibleColumns
政府有双重责任:

  • 控制哪些列可见,以及
  • 设置列的显示顺序
打电话查看当前的订购情况

医生 这在以下章节中有详细描述:

  • >
  • >>>
示例代码 基本上,您需要这样的代码来控制列顺序,并将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"} );
table=newtable();
//将bean集合包装到vaadin数据容器中。有很多
//他们的类型,查瓦丁的书。
BeanItemContainer=新的BeanItemContainer(Bean.class)
addBean(newbean());
//将bean的集合设置为数据源。
//将为每个属性创建列,vaadin使用反射。
表.setContainerDataSource(容器);
//可以选择仅显示所需的属性,而不是全部。
//秩序很重要。您可以从任何源获取列列表-例如
//存储在数据库中。
table.setVisibleColumns(新对象[]{“prop1”、“prop2”});
//您可以设置列标题(默认情况下,vaadin将其设置为与bean相同)
//属性名称)。订单事宜,应符合以上订单。
setColumnHeaders(新字符串[]{“Property 1”,“Property2”});
by是正确的。这个答案提供了进一步的信息

用户的重新排序 您可以允许用户拖放表中的列,以便在运行时对它们重新排序。要启用此功能,请调用

当发生此类重新排序事件时,可以使用通知

用户的重新订购仅适用于此工作会话。如果希望在将来的工作会话中维护用户的顺序,则必须以某种方式保持用户所需的顺序,并在再次实例化表时应用该顺序

失去订单 如果替换表的数据源,将重置列顺序。您可以在更改之前获取当前订单,然后恢复。下面是示例代码

// 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.

顺便说一下,与可见性和顺序一样,被折叠也会用新数据重置。您可能需要跟踪和恢复列的折叠和排序。

如果允许用户对列重新排序,则必须执行某种类型的保存按钮,以存储该用户自定义的列顺序,并在重新显示时考虑此顺序。