2016-09-01 2 views
7

以前のプロジェクトでは、BeanItemContainerとGeneratedColumnsテーブルを使用して、googleのような検索結果を表示するカスタムコンポーネントを表示しました。タイトル、日付、縦書きのコンテンツ。 それは恐ろしいほど(テーブル)それは働いた。リスト/リピーターコンポーネントfor Vaadin

私は同じ目的で、新しいプロジェクトにGridコンポーネントを利用したいと思います。 列が生成され、カスタムコンポーネントが含まれます。

これはグリッドでも使用できますか?利用可能なリストやリピータコンポーネントのような優れたものがありますか?カスタムコンポーネントを持つ単一の列の例

単純なデータやボタンレンダラー以外のものでは、Vaadinがぼやけているようです。

更新

それは、コンポーネントがGrid 7.5+

で箱から出して動作しません追加などまた、グリッドセルのみfixed hight

ComponentRederer Add-onサポート細胞成分もすることが好きになりますしかし、修正の高さは依然として問題です。

サンプルコード

public class Result { 
     String title; 
     Date date; 
     URL url; 
     String description; 
     List<String> tags; 

     public Result(){} 

} 

BeanItemContainer<Result> resultContainer = fetchResults(searchTerm); 

私はまた、あまりにも簡単にするために使用さbeanitemをレイジーコンテナを使用します。

私は、その後のフォローレイアウトに単一のレコード結果のレイアウトを構築RecordResultComponentを持っている:

Title(link with Url) 
Date 
Description 
tag1 tag2 tag3 ... 
+2

なぜ単にテーブル/グリッドを使用し、アイテムリストを繰り返し処理するのではなく、各アイテムのカスタムコンポーネントのインスタンスを作成し、[垂直レイアウト](https://vaadin.com/docs/ -/part/framework/layout/layout-orderedlayout.html)(あるいは、[グリッドレイアウト](https://vaadin.com/docs/-/part/framework/layout/layout-gridlayout.html))? – Morfic

+0

私は大量のデータを持っており、コンテナでバックアップされたコンポーネントを利用したいと考えていました。 – steve

+0

その奇妙なことに、テーブルはコンポーネントとグリッドをそのままの状態でレンダリングできません。私はあなたが他の多くの列だけでなく、コンポーネントの列を表示したいと思います。並べ替えのようなテーブル機能が必要ない場合は、単純なverticallayoutを使用することができます。 – d2k2

答えて

0

あなたはGeneratedPropertyContainerを伴って含むグリッドを使用することができます。

次に、カスタム列にHtmlRendererを使用できます。

私はそれが役に立ちそうです。 :-)