Update of 
/var/cvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation
In directory 
james.mmbase.org:/tmp/cvs-serv17138/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation

Modified Files:
        NavigationUtil.java NavigationTreeModel.java 
Log Message:
CMSC-1033 aliases are not stacked in the search of the content channel portlet


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation
See also: http://www.mmbase.org/jira/browse/CMSC-1033


Index: NavigationUtil.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/NavigationUtil.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- NavigationUtil.java 13 Feb 2009 21:26:01 -0000      1.24
+++ NavigationUtil.java 25 Mar 2009 08:24:18 -0000      1.25
@@ -317,6 +317,16 @@
         return children;
     }
 
+    /**
+     * Get sorted StrictPage child nodes
+     * 
+     * @param parentNode
+     *           - parent
+     * @return list of sorted children
+     */
+    public static NodeList getStrictPageOrderedChildren(Node parentNode) {
+       return SearchUtil.findRelatedOrderedNodeList(parentNode, "page", 
NAVREL, NAVREL + ".pos");
+    }
 
     public static NodeList getOrderedChildren(Node parentNode) {
         return SearchUtil.findRelatedOrderedNodeList(parentNode, null, NAVREL, 
NAVREL + ".pos");
@@ -330,6 +340,17 @@
         return TreeUtil.getChildCount(parent, "object", NAVREL);
     }
 
+    /**
+     * Get number of strict page children
+     * 
+     * @param parent
+     *           - parent
+     * @return number of children
+     */
+    public static int getStrictPageChildCount(Node parent) {
+       return TreeUtil.getChildCount(parent, "page", NAVREL);
+    }
+
     public static void movePage(Node sourcePage, Node destPage) {
         if (!isParent(sourcePage, destPage)) {
             Relation parentRelation = getParentRelation(sourcePage);


Index: NavigationTreeModel.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/sitemanagement/src/java/com/finalist/cmsc/navigation/NavigationTreeModel.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- NavigationTreeModel.java    30 Nov 2007 10:58:31 -0000      1.5
+++ NavigationTreeModel.java    25 Mar 2009 08:24:18 -0000      1.6
@@ -2,6 +2,7 @@
 
 import org.mmbase.bridge.*;
 
+import com.finalist.cmsc.repository.RepositoryUtil;
 import com.finalist.tree.TreeModel;
 
 /**
@@ -14,11 +15,17 @@
  */
 public class NavigationTreeModel implements TreeModel {
    private Node site;
+   private boolean strictPageOnly = false;
 
    public NavigationTreeModel(Node site) {
       this.site = site;
    }
    
+   public NavigationTreeModel(Node site, boolean strictPageOnly) {
+      this.site = site;
+      this.strictPageOnly = strictPageOnly;
+   }
+   
    /**
     * @see com.finalist.tree.TreeModel#getRoot()
     */
@@ -30,8 +37,12 @@
     * @see com.finalist.tree.TreeModel#getChildCount(java.lang.Object)
     */
    public int getChildCount(Object parent) {
-       int childCount = NavigationUtil.getChildCount((Node) parent);
-       return childCount;
+       if (strictPageOnly) {
+          return NavigationUtil.getStrictPageChildCount((Node) parent);
+       }
+       else {
+          return NavigationUtil.getChildCount((Node) parent);
+       }
    }
  
    /**
@@ -47,6 +58,12 @@
    public Object getChild(Object parent, int index) {
       Node parentNode = (Node)parent;
       NodeList pages = NavigationUtil.getOrderedChildren(parentNode); 
+      if (strictPageOnly) {
+         pages = NavigationUtil.getStrictPageOrderedChildren(parentNode);
+      }
+      else {
+         pages = NavigationUtil.getOrderedChildren(parentNode); 
+      }
 
       if (pages.size() > index) {
          return pages.get(index);
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to