2016-02-04 5 views
0

Я совершенно новый в Ваадине и столкнулся с следующим вопросом. Я пытаюсь представить свой список сущностей, используя Tree с группировкой по некоторым свойствам. Все было в порядке до первого уровня предметов. Что я сделал:Vaadin Tree из списка юридических лиц

MyEntity myEntity1 = new MyEntity(1l, "prop1", "sub_prop0") 
MyEntity myEntity2 = new MyEntity(2l, "prop1", "sub_prop1") 
MyEntity myEntity3 = new MyEntity(3l, "prop2", "sub_prop2") 

BeanContainer<Long, MyEntity > entityContainer = new BeanContainer<>(MyEntity .class); 
marketContainer.setBeanIdProperty("prop"); // prop is property name for the second value in constructor 
entityContainer.addBean(myEntity1); 
entityContainer.addBean(myEntity2); 
entityContainer.addBean(myEntity3) 

Tree markets = new Tree("Markets"); 
markets.setContainerDataSource(entityContainer); 

в результате я получил дерево с 2 пунктов: prop1 и prop2, но ничего другого. На самом деле единственное, что мне нужно, это добавление sup-элементов со значениями другого свойства в качестве дочерних элементов.

Заранее спасибо.

ответ

1

Посмотрите документацию и пример, найденный here.

Короче:

Установить родительский дочернего объекта

// Set it to be a child. 
tree.setParent(l2, l1); 

Если нет детей разрешено, скажите это так

/* Make the moons look like leaves. */ 
tree.setChildrenAllowed(l2, false); 

Если вы хотите, чтобы определить Hierachie в Контейнер, затем используйте один из контейнеров, реализующий HierarchicalContainer. Здесь вы также можете использовать метод setParent(...), чтобы указать отношения.

+0

Спасибо за ваш ответ. Означает ли это, что containerDataSource, в моем случае это BeanContainer, а отношения в дереве должны быть настроены по-разному? Я имею в виду, что я должен предоставить свой источник данных, а затем перебрать его и настроить отношения родителя/ребенка? – Marian

+0

Если вы хотите определить его на уровне контейнера, вам необходимо использовать документ HierarchicalContainer, зарегистрированный здесь https://vaadin.com/api/com/vaadin/data/util/HierarchicalContainer.html. Там вам также нужно определить setParent (....) для детей (как вы могли бы в компоненте Tree) –

+0

Еще раз спасибо, так что выглядит так, чтобы построить дерево с родителями и детьми, единственным ресурсом HierarchicalContainer является подходящий источник данных, но не BeanContainer, не так ли? – Marian

Смежные вопросы