@Override public boolean isLastId(Object itemId) { return getContainerStrategy().isLastId(itemId); }
@Override public Object prevItemId(Object itemId) { return getContainerStrategy().prevItemId(itemId); }
@Override protected boolean shouldHideAddedRows() { return !getContainerStrategy().isNodeOpen(toggledItemId); }
@Override protected Object getIdByIndex(int index) { return getContainerStrategy().getIdByIndex(index); }
@Override public Object lastItemId() { return getContainerStrategy().lastItemId(); }
@Override public Collection<?> getItemIds() { return getContainerStrategy().getItemIds(); }
@Override public int size() { return getContainerStrategy().size(); }
@Override protected int indexOfId(Object itemId) { return getContainerStrategy().indexOfId(itemId); }
@Override public Object nextItemId(Object itemId) { return getContainerStrategy().nextItemId(itemId); }
/** * Checks if Item with given identifier is collapsed in the UI. * * <p> * * @param itemId * the identifier of the checked Item * @return true if the Item with given id is collapsed * @see Collapsible#isCollapsed(Object) */ public boolean isCollapsed(Object itemId) { return !getContainerStrategy().isNodeOpen(itemId); }
@Override public void containerItemSetChange(Container.ItemSetChangeEvent event) { // Can't do partial repaints if items are added or removed during the // expand/collapse request toggledItemId = null; getContainerStrategy().containerItemSetChange(event); super.containerItemSetChange(event); }
private int countSubNodesRecursively(Hierarchical hc, Object itemId) { int count = 0; // we need the number of children for toggledItemId no matter if its // collapsed or expanded. Other items' children are only counted if the // item is expanded. if (getContainerStrategy().isNodeOpen(itemId) || itemId == toggledItemId) { Collection<?> children = hc.getChildren(itemId); if (children != null) { count += children != null ? children.size() : 0; for (Object id : children) { count += countSubNodesRecursively(hc, id); } } } return count; }
@Override protected void paintRowAttributes(PaintTarget target, Object itemId) throws PaintException { super.paintRowAttributes(target, itemId); target.addAttribute("depth", getContainerStrategy().getDepth(itemId)); if (getContainerDataSource().areChildrenAllowed(itemId)) { target.addAttribute("ca", true); target.addAttribute("open", getContainerStrategy().isNodeOpen(itemId)); } }
private void toggleChildVisibility(Object itemId, boolean forceFullRefresh) { getContainerStrategy().toggleChildVisibility(itemId); // ensure that page still has first item in page, DON'T clear the // caches. setCurrentPageFirstItemIndex(getCurrentPageFirstItemIndex(), false); if (isCollapsed(itemId)) { fireCollapseEvent(itemId); } else { fireExpandEvent(itemId); } if (containerSupportsPartialUpdates && !forceFullRefresh) { markAsDirty(); } else { // For containers that do not send item set change events, always do // full repaint instead of partial row update. refreshRowCache(); } }