/** * Refreshes list of items. * * <p> * * <p>This method tries to keep selection. * * @param categories the categories * @param renderChildren if is true - child node will be expanded, otherwise only root node. */ public void render(List<Category<?>> categories, boolean renderChildren) { this.categoryNodeElements = new ArrayList<>(); for (Category category : categories) { CategoryNodeElement categoryNodeElement = new CategoryNodeElement(category, renderChildren, selectionManager, resources); categoryNodeElements.add(categoryNodeElement); scrollPanel.add(categoryNodeElement); } }
/** * Select object in the list. * * @param element * @return */ public boolean selectElement(Object element) { if (categoryNodeElements == null || categoryNodeElements.isEmpty()) { return false; } for (CategoryNodeElement category : categoryNodeElements) { if (category.containsItem(element)) { category.selectItem(element); return true; } } return false; }
/** * Selects the item in the category list. * * @param item */ public void selectItem(Object item) { if (elementsMap == null || elementsMap.isEmpty()) { return; } if (elementsMap.containsKey(item)) { selectElement(elementsMap.get(item)); } }
CategoryRenderer renderer = category.getRenderer(); this.resources = resources; setStyleName(resources.defaultCategoriesListCss().category()); FlowPanel header = new FlowPanel(); header.sinkEvents(Event.ONCLICK); add(header); add(container); animator = new AnimationController.Builder().setCollapse(false).setFade(false).build(); expanded = true; renderChildren(); if (renderChildren) { expandControl.addClassName(resources.defaultCategoriesListCss().expandedImage()); } else { expandOrCollapse();
private void expandOrCollapse() { if (!expanded) { expanded = true; if (container.getElement().getChildCount() == 0) { renderChildren(); } animator.show((elemental.dom.Element) container.getElement()); expandControl.addClassName(resources.defaultCategoriesListCss().expandedImage()); } else { animator.hide((elemental.dom.Element) container.getElement()); expandControl.removeClassName(resources.defaultCategoriesListCss().expandedImage()); expanded = false; } }