@Override public void setContainerDataSource(Container newDataSource) { cStrategy = null; // FIXME: This disables partial updates until TreeTable is fixed so it // does not change component hierarchy during paint containerSupportsPartialUpdates = (newDataSource instanceof ItemSetChangeNotifier) && false; if (newDataSource != null && !(newDataSource instanceof Hierarchical)) { newDataSource = new ContainerHierarchicalWrapper(newDataSource); } if (newDataSource != null && !(newDataSource instanceof Ordered)) { newDataSource = new HierarchicalContainerOrderedWrapper( (Hierarchical) newDataSource); } super.setContainerDataSource(newDataSource); }
private static Hierarchical createHierarchicalContainer(BusinessServiceContainer newContainer) { final ContainerHierarchicalWrapper hierarchicalContainer = new ContainerHierarchicalWrapper(newContainer); // Set child/parent relation for(Map.Entry<Long, Long> eachEntry : newContainer.getRowIdToParentRowIdMapping().entrySet()) { hierarchicalContainer.setParent(eachEntry.getKey(), eachEntry.getValue()); } // Disable the collapse flag on items without any children for (Object itemId : hierarchicalContainer.getItemIds()) { hierarchicalContainer.setChildrenAllowed(itemId, hierarchicalContainer.hasChildren(itemId)); } return hierarchicalContainer; } }
} else { super.setContainerDataSource( new ContainerHierarchicalWrapper(newDataSource));