動的Beanで表形式のデータ表現にVaadin 8を使用しています。だから私は列に論理フィルタを定義する必要があります。Vaadin 8グリッドカラムタイプの入手方法は?
私は列データ型グリッドまたは列オブジェクトから必要があります。 カラムのデータ型を取得する方法はありますか?私はcontainer.getType(COLUMNNAME)Vaadin 8 data binding modelで
動的Beanで表形式のデータ表現にVaadin 8を使用しています。だから私は列に論理フィルタを定義する必要があります。Vaadin 8グリッドカラムタイプの入手方法は?
私は列データ型グリッドまたは列オブジェクトから必要があります。 カラムのデータ型を取得する方法はありますか?私はcontainer.getType(COLUMNNAME)Vaadin 8 data binding modelで
を使用して取得することができますVaadin 7では
、プロパティの型を明示的に(あなたのケースGrid
中)UIコンポーネントによって知られていません。この情報は、ドメインモデルから取得する必要があります。あなたが行うことができますあなたのドメインモデルから取得するための
難しい場合:
// instead of new Grid(beanType)
PropertySet<YourBeanType> ps = BeanPropertySet.get(beanType);
Grid g = new Grid(ps);
...
// get the property type
// okay, this is ugly, but you get the idea
Class<?> type = ps.getProperty(yourPropertyName).get().getType();
列にstyleGenerator
を設定するときは、列の型を取得することができます。例えば、私は列がBigDecimal
であれば、特定のスタイルを設定するには、次の手順を実行します
Grid.Column c = grid.getColumn("id");
c.setStyleGenerator(obj -> {
Object value = c.getValueProvider().apply(obj);
if (value instanceof BigDecimal) {
return "align-right";
}
return null;
});
私は、スタイル・ジェネレータのそれは「外側」を取得する方法はありますかはわかりません。
この場合、*インスタンス*のタイプが取得されます。 Beanのプロパティ型と常に同じではありません(代入可能ですが) – rmuller
これは賢明で有益かもしれませんが、推測者のようにゲッターではありません。 –