6

誰でも方法を知っている/または可能です-列固有の順序でテーブルを作成します。保存前の構成順序 - DB の例で、特定のビューでアップロードされましたか? また、POJOS クラス - Bean からこの列のヘッダーとコンテンツを生成する方法を知りたいです。

良いアイデアはありますか?

4

2 に答える 2

8

setVisibleColumns

Table::setVisibleColumns2 つの役割を果たします。

  • どの列が表示されるかを制御し
  • 列が表示される順序を設定します。

Table::getVisibleColumns現在の注文を確認するには電話してください。

ドク

これについては、以下で詳しく説明されています。

サンプルコード

基本的に、列の順序を制御し、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"} );
于 2013-10-23T06:29:01.930 に答える
2

セルゲイ・マカロフの答えは正しいです。この回答は、詳細情報を提供します。

ユーザーの並べ替え

ユーザーがテーブル内の列をドラッグ アンド ドロップして、実行時に並べ替えることができるようにすることができます。この機能を有効にするには、 を呼び出しますisColumnReorderingAllowed

このような並べ替えイベントが発生したときに、リスナーを使用して通知を受けることができます。

ユーザーの再注文は、この作業セッションの間だけ続きます。今後の作業セッションでユーザーの順序を維持したい場合は、何らかの形で目的の順序を保持し、テーブルを再度インスタンス化するときにその順序を適用する必要があります。

秩序を失う

テーブルのデータ ソースを置き換えると、列の順序がリセットされます。変更前の現在の順序を取得してから復元できます。サンプルコードは次のとおりです。

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

ちなみに、可視性と秩序と同様に、折りたたまれていることも新しいデータでリセットされます。列の折りたたみと並べ替えを追跡して復元することができます。

于 2014-12-18T01:58:58.757 に答える