2017-08-05 12 views

答えて

2

を使用して取得することができます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(); 
0

列に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; 
}); 

私は、スタイル・ジェネレータのそれは「外側」を取得する方法はありますかはわかりません。

+0

この場合、*インスタンス*のタイプが取得されます。 Beanのプロパティ型と常に同じではありません(代入可能ですが) – rmuller

+1

これは賢明で有益かもしれませんが、推測者のようにゲッターではありません。 –

関連する問題