我在TreeTable中创建父子链接时遇到问题。
DataSource的设置
table.setContainerDataSource(new TempPeopleContainer(((MyUI) UI.getCurrent()).peopleService.getItemList()));
table.setParent(1,0);如何在这种DataSource设置中设置对象的id?我没有显式的TreeTable元素Id。
下面是example from vaadin,在这里你可以“清楚”地看到每个元素的Id定义(代码不是来自我的应用程序):
TreeTable ttable = new TreeTable("My TreeTable");
ttable.addContainerProperty("Name", String.class, null);
ttable.addContainerProperty("Number", Integer.class, null);
ttable.setWidth("20em");
// Create the tree nodes and set the hierarchy
ttable.addItem(new Object[]{"Menu", null}, 0);
ttable.addItem(new Object[]{"Beverages", null}, 1);
ttable.setParent(1, 0);
ttable.addItem(new Object[]{"Foods", null}, 2);
ttable.setParent(2, 0);这是我的TempPeopleContainer类定义:
private class TempPeopleContainer extends FilterableListContainer<People> {
public TempPeopleContainer(final Collection<People> collection) {
super(collection);
}
// This is only temporarily overridden until issues with
// BeanComparator get resolved.
@Override
public void sort(final Object[] propertyId, final boolean[] ascending) {
final boolean sortAscending = ascending[0];
final Object sortContainerPropertyId = propertyId[0];
Collections.sort(getBackingList(), (o1, o2) -> {
int result = 0;
if ("lastname".equals(sortContainerPropertyId)) {
result = o1.getLastname().compareTo(o2.getLastname());
}
if (!sortAscending) {
result *= -1;
}
return result;
});
}
}我希望我的问题是清楚的。谢谢。
发布于 2016-11-04 01:33:24
这取决于您的ItemContainer。vaadin中的公共BeanItemContainer使用该项目作为项目id本身,如https://vaadin.com/api/com/vaadin/data/util/BeanItemContainer.html中所述
您正在使用vitrin的org.vaadin.viritin.ListContainer,表现得像BeanItemContainer
因此,如果您想坚持自己的ItemContainer实现,则可以使用列表中的项作为itemId/newParentId。
或者,您可以通过迭代com.vaadin.data.Container.getItemIds()获得项目id,并手动检查此项目id是否是您想要使用的父id。
编辑:
尝试如下所示:
List myList = ((MyUI) UI.getCurrent()).peopleService.getItemList();
TempPeopleContainer container = new TempPeopleContainer(myList);
table.setContainerDataSource(container);
table.setParent(myList.get(1), myList.get(0));https://stackoverflow.com/questions/40402813
复制相似问题