public void expandItemWithParents(T item) { List<T> itemsToExpand = new ArrayList<>(); T current = item; while (current != null) { itemsToExpand.add(current); current = getParentItem(current); } expand(itemsToExpand); }
protected void initComponent(CubaTree<E> component) { component.setItemCaptionGenerator(this::generateItemCaption); component.setSizeUndefined(); component.getCompositionRoot().setHeightMode(HeightMode.UNDEFINED); setSelectionMode(SelectionMode.SINGLE); }
protected boolean isParentDroppedToChild(Group parent, Group child, CubaTree<Group> vTree) { if (!vTree.hasChildren(parent)) { return false; } return checkAllChildrenRecursively(vTree.getChildren(parent), child, vTree); }
public void expandAll() { expandRecursively(getChildren(null), Integer.MAX_VALUE); }
public void collapseAll() { collapseRecursively(getChildren(null), Integer.MAX_VALUE); }
protected Component createSearchFoldersPane() { if (!webConfig.getFoldersPaneEnabled()) return null; searchFoldersTree = new CubaTree<>(); searchFoldersTree.setCubaId("searchFoldersTree"); searchFoldersTree.setDataProvider(createTreeDataProvider()); searchFoldersTree.setGridSelectionModel(new CubaSingleSelectionModel<>()); searchFoldersTree.setStyleGenerator(new FolderTreeStyleProvider<>()); List<SearchFolder> searchFolders = foldersService.loadSearchFolders(); searchFoldersTree.addItemClickListener(new FolderClickListener<>()); if (webConfig.getShowFolderIcons()) { searchFoldersTree.setItemIconGenerator(this::getSearchFolderIcon); } searchFoldersTree.setItemCaptionGenerator(this::getFolderTreeItemCaption); initSearchFoldersContextMenu(); if (!searchFolders.isEmpty()) { fillTree(searchFoldersTree, searchFolders); } searchFoldersTree.expand(searchFoldersTree.getItems().collect(Collectors.toList())); return searchFoldersTree; }
CollectionDatasource<RegionProperty, UUID> reportRegionPropertiesTableDs) { CubaTree<EntityTreeNode> webTree = entityTree.unwrap(CubaTree.class); webTree.addItemClickListener(event -> { if (event.getMouseEventDetails().isDoubleClick()) { EntityTreeNode entityTreeNode = event.getItem(); if (entityTreeNode.getWrappedMetaClass() != null) { if (webTree.isExpanded(entityTreeNode)) webTree.collapse(entityTreeNode); else webTree.expand(entityTreeNode); return;
public void setGridSelectionModel(GridSelectionModel<T> model) { getCompositionRoot().setGridSelectionModel(model); }
protected <T extends AbstractSearchFolder> void collapseItemInTree(CubaTree<T> tree, final String foldersCollapse) { String s = userSettingService.loadSetting(foldersCollapse); List<UUID> idFolders = strToIds(s); List<T> foldersToCollapse = tree.getItems() .filter(folder -> idFolders.contains(folder.getId())) .collect(Collectors.toList()); tree.collapse(foldersToCollapse); tree.addExpandListener(event -> { UUID uuid = event.getExpandedItem().getId(); String str = userSettingService.loadSetting(foldersCollapse); userSettingService.saveSetting(foldersCollapse, removeIdInStr(str, uuid)); }); tree.addCollapseListener(event -> { UUID uuid = event.getCollapsedItem().getId(); String str = userSettingService.loadSetting(foldersCollapse); userSettingService.saveSetting(foldersCollapse, addIdInStr(str, uuid)); }); }
public void repaint() { markAsDirtyRecursive(); getCompositionRoot().repaint(); } }
@SuppressWarnings("unchecked") protected void setSelectedInternal(Collection<E> items) { switch (selectionMode) { case SINGLE: if (items.size() > 0) { E item = items.iterator().next(); component.select(item); } else { component.deselectAll(); } break; case MULTI: component.deselectAll(); ((MultiSelectionModel) component.getSelectionModel()).selectItems(items.toArray()); break; default: throw new UnsupportedOperationException("Unsupported selection mode"); } }
@Override public boolean isExpanded(Object itemId) { return component.isExpanded(getItems().getItem(itemId)); }
@Override protected Grid.SelectionMode getSelectionMode() { SelectionModel<T> selectionModel = getSelectionModel(); Grid.SelectionMode mode = null; if (selectionModel instanceof SingleSelectionModel) { mode = Grid.SelectionMode.SINGLE; } else if (selectionModel instanceof MultiSelectionModel) { mode = Grid.SelectionMode.MULTI; } else if (selectionModel instanceof NoSelectionModel) { mode = Grid.SelectionMode.NONE; } return mode; }
protected Collection<AppFolder> getChildFolders(AppFolder parentFolder) { Collection<AppFolder> result = new LinkedList<>(); Collection<AppFolder> childFolders = appFoldersTree.getChildren(parentFolder); if (childFolders != null) { result.addAll(childFolders); for (AppFolder folder : childFolders) result.addAll(getChildFolders(folder)); } return result; }
@Override public void setItemClickAction(Action action) { if (doubleClickAction != null) { removeAction(doubleClickAction); } if (!getActions().contains(action)) { addAction(action); } if (this.doubleClickAction != action) { if (action != null) { if (itemClickListener == null) { itemClickListener = component.addItemClickListener(this::onItemClick); } } else if (itemClickListener != null) { itemClickListener.remove(); itemClickListener = null; } this.doubleClickAction = action; } }
protected CubaTree<E> createComponent() { return new CubaTree<>(); }
if (appFolders.isEmpty()) return null; appFoldersTree = new CubaTree<>(); appFoldersTree.setCubaId("appFoldersTree"); appFoldersTree.setDataProvider(createTreeDataProvider()); appFoldersTree.setGridSelectionModel(new CubaSingleSelectionModel<>()); appFoldersTree.setStyleGenerator(new FolderTreeStyleProvider<>()); appFoldersTree.addExpandListener(event -> { AppFolder folder = event.getExpandedItem(); if (StringUtils.isBlank(folder.getQuantityScript())) { appFoldersTree.addCollapseListener(event -> { AppFolder folder = event.getCollapsedItem(); if (StringUtils.isBlank(folder.getQuantityScript())) { appFoldersTree.addItemClickListener(new FolderClickListener<>()); if (webConfig.getShowFolderIcons()) { appFoldersTree.setItemIconGenerator(this::getAppFolderIcon); appFoldersTree.setItemCaptionGenerator(this::getFolderTreeItemCaption); appFoldersTree.expand(appFoldersTree.getItems().collect(Collectors.toList()));
protected void initAppFoldersContextMenu() { new AppFolderGridContextMenu<>(appFoldersTree.getCompositionRoot()); }
public void expandUpTo(int level) { checkArgument(level > 0, "level should be greater than 0"); Collection<T> rootItems = getChildren(null); expandRecursively(rootItems, level - 1); }
protected void reloadParentFolders(List<AppFolder> reloadedFolders) { for (AppFolder folder : reloadedFolders) { if (StringUtils.isBlank(folder.getQuantityScript())) { if (appFoldersTree.isExpanded(folder)) { folder.setQuantity(null); folder.setItemStyle(""); } else { reloadSingleParentFolder(folder, reloadedFolders); } } } }