/** * Constructs a new Tree Component with given caption and {@code TreeData}. * * @param caption * the caption for component * @param treeData * the tree data for component */ public Tree(String caption, TreeData<T> treeData) { this(caption, new TreeDataProvider<>(treeData)); }
/** * Sets a new {@link TreeDataProvider} wrapping the given {@link TreeData}. * * @param treeData * the tree data to set */ public default void setTreeData(TreeData<T> treeData) { setDataProvider(new TreeDataProvider<>(treeData)); }
/** * Construct a new hierarchical data communicator backed by a * {@link TreeDataProvider}. */ public HierarchicalDataCommunicator() { super(); setDataProvider(new TreeDataProvider<>(new TreeData<>()), null); }
Objects.requireNonNull(childItemProvider, "Given child item provider may not be null"); setDataProvider(new TreeDataProvider<>( new TreeData<T>().addItems(rootItems, childItemProvider)));
Objects.requireNonNull(childItemProvider, "Given child item provider may not be null"); setDataProvider(new TreeDataProvider<>( new TreeData<T>().addItems(rootItems, childItemProvider)));
public default void setItems(Collection<T> items) { Objects.requireNonNull(items, "Given collection may not be null"); setDataProvider(new TreeDataProvider<>( new TreeData<T>().addItems(null, items)));
@Override protected void readData(Element body, List<DeclarativeValueProvider<T>> providers) { getSelectionModel().deselectAll(); List<T> selectedItems = new ArrayList<>(); TreeData<T> data = new TreeData<T>(); for (Element row : body.children()) { T item = deserializeDeclarativeRepresentation(row.attr("item")); T parent = null; if (row.hasAttr("parent")) { parent = deserializeDeclarativeRepresentation( row.attr("parent")); } data.addItem(parent, item); if (row.hasAttr("selected")) { selectedItems.add(item); } Elements cells = row.children(); int i = 0; for (Element cell : cells) { providers.get(i).addValue(item, cell.html()); i++; } } setDataProvider(new TreeDataProvider<>(data)); selectedItems.forEach(getSelectionModel()::select); }
private void readItems(Elements bodyItems) { if (bodyItems.isEmpty()) { return; } DeclarativeValueProvider<T> valueProvider = new DeclarativeValueProvider<>(); setItemCaptionGenerator(item -> valueProvider.apply(item)); DeclarativeIconGenerator<T> iconGenerator = new DeclarativeIconGenerator<>( item -> null); setItemIconGenerator(iconGenerator); getSelectionModel().deselectAll(); List<T> selectedItems = new ArrayList<>(); TreeData<T> data = new TreeData<T>(); for (Element row : bodyItems) { T item = deserializeDeclarativeRepresentation(row.attr("item")); T parent = null; if (row.hasAttr("parent")) { parent = deserializeDeclarativeRepresentation( row.attr("parent")); } data.addItem(parent, item); if (row.hasAttr("selected")) { selectedItems.add(item); } valueProvider.addValue(item, row.html()); iconGenerator.setIcon(item, DesignAttributeHandler .readAttribute("icon", row.attributes(), Resource.class)); } setDataProvider(new TreeDataProvider<>(data)); selectedItems.forEach(getSelectionModel()::select); }
@Override protected DataProvider<E, ?> createEmptyDataProvider() { return new TreeDataProvider<>(new TreeData<>()); }