2012-02-10 3 views
1

TreeTableのコンテナデータソースをリセットした後で、TreeTableのオブジェクトを再展開しようとしていますが、それはできません。誰もこれを前に試しましたか?どこが間違っていますか?vaadin TreeTableでオブジェクトを再展開する方法

private void setTableDataSource() { 
    Set<Object> expandedMap = new HashSet<Object>(); 
    if(table.getItemIds() != null && !table.getItemIds().isEmpty()){ 
     for(Object o : table.getItemIds()){   
      if(table.isCollapsed(o)) 
       expandedMap.add(o); 
     } 
    }  
    table.setContainerDataSource(ContactContainerFactory.createContainer(model.getParentModel())); 
    table.setVisibleColumns(new String[]{"title", "operation", "id", "price"}); 
    table.setColumnHeaders(getTranslatedTableHeaders());   
    if(!expandedMap.isEmpty()){ 
     for(Object o : expandedMap){     
      table.setCollapsed(o, false); 
     } 
    } 
} 
+0

どのvaadinバージョンを使用しますか?あなたは最後の夜間のビルドで試しましたか?彼らはあなたがすべての要素を崩壊/拡大できるメソッドを追加したと思われます:https://vaadin.com/forum/-message_boards/view_message/948806#_19_message_948925 – Zakaria

+0

私はバージョン6.7.4を使用しています。 – Marthin

+0

@Marthinちょうどヒントとしてしかし、私はあなたがhash()メソッドとequals()メソッドについて考えていると確信しています。 – nexus

答えて

0

私はこのようにそれをやった:要約は、ツリーテーブルである

summary.getItemIds().forEach(id -> { 
    summary.setCollapsed(id, false); 
    summary.getChildren(id).forEach(child -> { 
     summary.setCollapsed(child, false); 
    }); 
}); 

。これは2レベルのテーブルでのみ機能しますが、再帰的な方法で実行できます。

関連する問題