2017-04-10 4 views
-1

私はBeanItemContainerに裏打ちされたグリッドを持っています。列を追加する方法はありますか?私はそれが私に多くの誤りを与えたので、方法を見つけることができませんでした。私は手作業でグリッドに行を追加しました。私は生成されたプロパティまたは素朴なプロパティを運を使わずに追加しようとしました。VaadinグリッドにBean項目コンテナを追加した列を追加する

public final class ExecutionGrid extends Grid { 

    public ExecutionGrid(String caption) { 
     super(caption); 
    } 

    public ExecutionGrid(String caption, List<Step> steps) { 
     super(caption); 
     setSteps(steps); 
    } 

    /** 
    * Add steps to this grid. 
    * 
    * @param steps Steps to set. It deletes any previous ones stored. 
    */ 
    public void setSteps(List<Step> steps) { 
     //Clear grid 
     removeAllColumns(); 
     setHeightByRows(steps.size()); 
     setHeightMode(HeightMode.ROW); 
     Grid.Column textColumn = addColumn("text", byte[].class); 
     textColumn.setHeaderCaption("Text"); 
     textColumn.setConverter(new ByteToStringConverter()); 
     Grid.Column expectedResultColumn = addColumn("expectedResult", byte[].class); 
     expectedResultColumn.setHeaderCaption("Expected Result"); 
     expectedResultColumn.setConverter(new ByteToStringConverter()); 
     Grid.Column notesColumn = addColumn("notes", String.class); 
     notesColumn.setHeaderCaption("Notes"); 
     Grid.Column resultColumn = addColumn("result", String.class); 
     resultColumn.setHeaderCaption("Result"); 
     steps.forEach((s) -> { 
      addRow(s.getText(), s.getExpectedResult(), s.getNotes(), ""); 
     }); 
    } 
} 

私に何かが不足している場合は不思議です。

答えて

0

私が間違っている場合は私を修正してください。グリッド内でこれを直接行うことはできません。これは、BeanItemContainer内で使用されているこの反射物と関係があります。 しかし、必要な属性を持つPOJOを作成することができます。

+0

私はそれが目的に勝つと思います。テーブルでは、Beanには存在しないカスタム列を追加することができました。 – javydreamercsw

関連する問題