/** * isEditable - get editable access flag for menu option * * @return editable flag */ public boolean isEditable() { try { getNode().checkAccess(JetspeedActions.EDIT); return true; } catch (SecurityException se) { return false; } }
/** * getShortTitle - get default short title for menu element * * @return short title text */ public String getShortTitle() { // return node or default short title if (node != null) { return node.getShortTitle(); } return getName(); }
/** * * <p> * add * </p> * * @see org.apache.jetspeed.page.document.NodeSet#add(org.apache.jetspeed.page.document.Node) * @param node */ public void add( Node node ) { String path = node.getPath(); nodes.put(path, node); if (subsets.containsKey(node.getType())) { subsets.get(node.getType()).add(node); } }
node.checkAccess(JetspeedActions.EDIT); GenericMetadata metadata = node.getMetadata(); if (title != null && !title.equals(node.getTitle())) node.setTitle(title); setLocalizedField(metadata, locale, "title", title); changed = true; if (shortTitle != null && !shortTitle.equals(node.getShortTitle())) node.setShortTitle(shortTitle); setLocalizedField(metadata, locale, "short-title", title); changed = true; if (hiddenFlag != node.isHidden()) node.setHidden(hiddenFlag); changed = true;
public void updatedNode(Node node) { // set stale flag to force session context state reset synchronized (this) { stale = true; } // log updated node event if (log.isDebugEnabled()) { if (node != null) { log.debug("Page manager update event, (node=" + node.getPath() + "): set session context state stale"); } else { log.debug("Page manager update event: set session context state stale"); } } }
if (ordering.charAt(0) == Folder.PATH_SEPARATOR_CHAR) test = elementView.getUrl(); test = elementView.getName(); ((elementViews.get(0) instanceof Folder) || (elementViews.get(0) instanceof Page))) Node parentNode = elementViews.get(0).getParent(); while (parentNode != null) parentNode = parentNode.getParent(); MenuDefinition nestedMenuDefinition = new DefaultMenuDefinition(elementView.getUrl(), depth - 1, locatorName); menuElement = new MenuImpl(view, this, nestedMenuDefinition, null, context, null);
public NodeSet subset(String type) { NodeSetImpl subset = new NodeSetImpl(comparator); for (Node node : this) { if (node.getType().equals(type)) { subset.add(node); } } return subset; }
String path = node.getPath(); List<SiteViewMenuDefinitionLocator> locators = menuDefinitionLocatorsCache.get(path); if (locators == null) Folder folder = (Folder)node.getParent(); locators = SiteViewUtils.mergeMenuDefinitionLocators(page.getMenuDefinitions(), page, folder.getPath(), true, null); locators = SiteViewUtils.mergeMenuDefinitionLocators(getMenuDefinitionLocators(folder), locators); Folder folder = (Folder)node.getParent(); locators = SiteViewUtils.mergeMenuDefinitionLocators(dynamicPage.getMenuDefinitions(), dynamicPage, folder.getPath(), true, null); locators = SiteViewUtils.mergeMenuDefinitionLocators(getMenuDefinitionLocators(folder), locators); Folder folder = (Folder)node.getParent(); locators = SiteViewUtils.mergeMenuDefinitionLocators(pageTemplate.getMenuDefinitions(), pageTemplate, folder.getPath(), false, null);
/** * getMetadata - get generic metadata for menu element * * @return metadata */ public GenericMetadata getMetadata() { // return node metadata if (node != null) { GenericMetadata metadata = node.getMetadata(); if (metadata != null && metadata.getFields() != null && !metadata.getFields().isEmpty()) { return metadata; } } return null; }
/** * isVisible - tests for node visibility in view * * @param node test node view * @param currentPage current page view * @return visible flag */ private static boolean isVisible(Node node, Page currentPage) { // pages are considered visible if not hidden or match current page if (node instanceof Page) { return (!node.isHidden() || (node == currentPage)); } // folders are considered visible if not hidden and not reserved if (node instanceof Folder) { return !node.isHidden() && !((Folder)node).isReserved(); } // links are considered visible if not hidden if (node instanceof Link) { return !node.isHidden(); } // templates, fragments, and dynamic page are not visible return false; }
/** * getUrl - get url of menu option * * @return folder, page, or link url */ public String getUrl() { return getNode().getUrl(); }
/** * getTitle - get default title for menu element * * @return title text */ public String getTitle() { // return node or default title if (node != null) { return node.getTitle(); } return getName(); }
/** * exclusiveSubset - construct new NodeSet containing Node * proxies whose name or path does not match * the specified regex pattern * * @param regex proxy Node name/path match pattern * @return proxy NodeSet list */ public NodeSet exclusiveSubset(String regex) { // search for matching nodes List<Node> subsetNodes = null; Pattern pattern = Pattern.compile(regex); for (Node node : this) { if (!pattern.matcher(node.getName()).matches() && !pattern.matcher(node.getPath()).matches()) { if (subsetNodes == null) { subsetNodes = new ArrayList<Node>(nodes.size()); } subsetNodes.add(node); } } // wrap matching nodes in new NodeSet if (subsetNodes != null) return new NodeSetImpl(subsetNodes); return null; }
/** * <p> * remove * </p> * * @param node to remove * @return removed node */ public Node remove(Node node) { String path = node.getPath(); if (nodes.get(path) == node) { nodes.remove(path); if (subsets.containsKey(node.getType())) { ((NodeSetImpl) subsets.get(node.getType())).remove(node); } } return null; } }
public NodeSetImpl(List<? extends Node> nodes, Comparator<String> comparator) { this.nodes = new TreeMap<String,Node>(comparator); Node[] nodeToCopy = nodes.toArray(new Node[nodes.size()]); for (int ix = 0; ix < nodeToCopy.length; ix++) { Node node = nodeToCopy[ix]; if (!this.nodes.containsKey( node.getName())) { this.nodes.put(node.getName(), node); } } this.comparator = comparator; }
/** * SiteViewMenuDefinitionLocator - custom menu definition constructor * * @param menuDefinition custom menu definition * @param definitionNode defining page or folder * @param path menu definition path * @param override menu definition override flag */ public SiteViewMenuDefinitionLocator(MenuDefinition menuDefinition, Node definitionNode, String path, boolean override) { this.menuDefinition = menuDefinition; this.locator = definitionNode.getPath() + "|" + menuDefinition.getName(); this.path = path; this.override = override; }
/** * subset - construct new NodeSet containing Node proxies * of the specified type * * @param type node type * @return proxy NodeSet list */ public NodeSet subset(String type) { // search for matching nodes List<Node> subsetNodes = null; for (Node node : this) { if (node.getType().equals(type)) { if (subsetNodes == null) { subsetNodes = new ArrayList<Node>(nodes.size()); } subsetNodes.add(node); } } // wrap matching nodes in new NodeSet if (subsetNodes != null) return new NodeSetImpl(subsetNodes); return null; }