/** * Collapses an item. * * @param itemId * the item id. * @return True if the collapse operation succeeded */ public boolean collapseItem(Object itemId) { // Succeeds if the node is already collapsed if (!isExpanded(itemId)) { return true; } // Collapse expanded.remove(itemId); markAsDirty(); fireCollapseEvent(itemId); return true; }
if (isExpanded(itemId) && hasChildren(itemId)) { iteratorStack.push(getChildren(itemId).iterator());
/** * Expands an item. * * @param itemId * the item id. * @param sendChildTree * flag to indicate if client needs subtree or not (may be * cached) * @return True if the expand operation succeeded */ private boolean expandItem(Object itemId, boolean sendChildTree) { // Succeeds if the node is already expanded if (isExpanded(itemId)) { return true; } // Nodes that can not have children are not expandable if (!areChildrenAllowed(itemId)) { return false; } // Expands expanded.add(itemId); expandedItemId = itemId; if (initialPaint) { markAsDirty(); } else if (sendChildTree) { requestPartialRepaint(); } fireExpandEvent(itemId); return true; }
for (String key : (String[]) variables.get("collapse")) { final Object id = itemIdMapper.get(key); if (id != null && isExpanded(id)) { expanded.remove(id); if (expandedItemId == id) {
selectedKeys.add(key); if (areChildrenAllowed(itemId) && isExpanded(itemId)) { target.addAttribute("expanded", true); expandedKeys.add(key); if (isExpanded(itemId) && hasChildren(itemId) && areChildrenAllowed(itemId)) { iteratorStack.push(getChildren(itemId).iterator());