public HippoIcon getNodeIcon(final String id, final TreeNode treeNode, final ITreeState state) { if (state.isNodeExpanded(treeNode)) { return HippoIcon.fromSprite(id, Icon.FOLDER_OPEN); } else { return HippoIcon.fromSprite(id, Icon.FOLDER); } }
/** * Returns whether the given node is expanded. * * @param node * The node to inspect * @return true if the node is expanded, false otherwise */ protected final boolean isNodeExpanded(Object node) { // In root less mode the root node is always expanded if (isRootLess() && rootItem != null && rootItem.getModelObject().equals(node)) { return true; } return getTreeState().isNodeExpanded(node); }
public void left() { TreeNode node = getSelectedNode(); if (node == null) { return; } if (treeState.isNodeExpanded(node)) { treeState.collapseNode(node); } else if (node.getParent() != null) { treeState.selectNode(node.getParent(), true); } }
public void right() { TreeNode node = getSelectedNode(); if (node == null) { return; } if (!treeState.isNodeExpanded(node)) { treeState.expandNode(node); } else if (node.getChildCount() > 0) { treeState.selectNode(node.getChildAt(0), true); } } }
@Override public void onModelChanged() { super.onModelChanged(); JcrNodeModel model = (JcrNodeModel) getDefaultModel(); TreePath treePath = treeModel.lookup(model); if (treePath != null) { ITreeState treeState = tree.getTreeState(); if (!navigating) { for (Object node : treePath.getPath()) { TreeNode treeNode = (TreeNode) node; if (!treeState.isNodeExpanded(treeNode)) { treeState.expandNode(treeNode); } } } treeState.selectNode(treePath.getLastPathComponent(), true); } }
public void up() { TreeNode node = getSelectedNode(); if (node == null) { return; } final TreeNode parent = node.getParent(); if (parent != null) { final int nodeIndex = parent.getIndex(node); TreeNode newSelection; if (nodeIndex > 0) { newSelection = parent.getChildAt(nodeIndex - 1); while (treeState.isNodeExpanded(newSelection) && (newSelection.getChildCount() > 0)) { TreeNode candidate = newSelection.getChildAt(newSelection.getChildCount() - 1); if (candidate.equals(node)) { break; } else { newSelection = candidate; } } } else { newSelection = parent; } treeState.selectNode(newSelection, true); } }
private HippoIconStack getTranslatedNodeIcon(final String id, final TreeNode treeNode, final ITreeState state, final String locale) { final HippoIconStack nodeIcon = new HippoIconStack(id, IconSize.M); final HippoLocale hippoLocale = locales.getLocale(locale); if (state.isNodeExpanded(treeNode)) { nodeIcon.addFromSprite(Icon.FOLDER_OPEN); nodeIcon.addFromResource(hippoLocale.getIcon(IconSize.M, LocaleState.FOLDER_OPEN), Position.BOTTOM_RIGHT); } else { nodeIcon.addFromSprite(Icon.FOLDER); nodeIcon.addFromResource(hippoLocale.getIcon(IconSize.M, LocaleState.FOLDER), Position.BOTTOM_RIGHT); } return nodeIcon; }
/** * Returns the image resource reference based on the give tree node type. * * @param tree * @param node * @return image resource reference */ protected ResourceReference getImageResourceReference(BaseTree tree, Object node) { TreeModel model = (TreeModel)tree.getDefaultModelObject(); if (model.isLeaf(node)) { return getResourceItemLeaf(node); } else { if (tree.getTreeState().isNodeExpanded(node)) { return getResourceFolderOpen(node); } else { return getResourceFolderClosed(node); } } }
public void down() { TreeNode node = getSelectedNode(); if (node == null) { return; } TreeNode newSelection = null; if (treeState.isNodeExpanded(node) && node.getChildCount() > 0) { newSelection = node.getChildAt(0); } else { while (newSelection == null) { final TreeNode parent = node.getParent(); if (parent == null) { break; } final int nodeIndex = parent.getIndex(node); if (nodeIndex < parent.getChildCount() - 1) { newSelection = parent.getChildAt(nodeIndex + 1); } else { node = parent; } } } if (newSelection != null) { treeState.selectNode(newSelection, true); } }