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

Modified Files:
        InsertPageImageTag.java ListPagesTag.java 
Added Files:
        ListNavigationItemsTag.java 
Log Message:
CMSC-755 Navigation code refactored to use navigationitem


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


ListNavigationItemsTag.java is new



Index: InsertPageImageTag.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/InsertPageImageTag.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- InsertPageImageTag.java     3 Dec 2007 13:10:26 -0000       1.6
+++ InsertPageImageTag.java     28 Jan 2008 21:15:45 -0000      1.7
@@ -51,7 +51,6 @@
       HttpServletRequest request = (HttpServletRequest) ctx.getRequest();
 
         Integer image = null;
-
       if (StringUtils.isNotEmpty(name)) {
             List<Integer> images = SiteManagement.getPageImagesForPage(name, 
getPath());
             if (images != null && !images.isEmpty()) {
@@ -89,7 +88,7 @@
 
       List<Integer> images = getCurrentPageImages();
       if ((override && images.size() < 1) || directly) { // inherit from 
parent.
-         images.addAll(getImagiesOfParent());
+         images.addAll(getImagesOfParent());
       }
 
       if (images.size() > 0) {
@@ -104,8 +103,8 @@
    }
 
 
-   private List<Integer> getImagiesOfParent() {
-      List<Page> pages = SiteManagement.getListFromPath(getPath());
+   private List<Integer> getImagesOfParent() {
+      List<Page> pages = SiteManagement.getPagesFromPath(getPath());
 
       if (pages.size() > 2) {
 
@@ -121,7 +120,7 @@
 
 
    private List<Integer> getCurrentPageImages() {
-      List<Page> pages = SiteManagement.getListFromPath(getPath());
+      List<Page> pages = SiteManagement.getPagesFromPath(getPath());
       return (pages.get(pages.size() - 1)).getImages();
    }
 


Index: ListPagesTag.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer/cmsc/taglib/src/java/com/finalist/cmsc/taglib/ListPagesTag.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- ListPagesTag.java   7 Jan 2008 15:05:18 -0000       1.10
+++ ListPagesTag.java   28 Jan 2008 21:15:45 -0000      1.11
@@ -9,122 +9,18 @@
  */
 package com.finalist.cmsc.taglib;
 
-import java.util.*;
-
-import org.apache.commons.lang.StringUtils;
-
+import com.finalist.cmsc.beans.om.NavigationItem;
 import com.finalist.cmsc.beans.om.Page;
-import com.finalist.cmsc.beans.om.Site;
-import com.finalist.cmsc.services.sitemanagement.SiteManagement;
 
 /**
  * List the available Pages
  * 
  * @author Wouter Heijke
  */
-public class ListPagesTag extends AbstractListTag<Page> {
-
-   private static final String MODE_ALL = "all";
-   private static final String MODE_HIDDEN = "hidden";
-   private static final String MODE_MENU = "menu";
-
-   private String mode = MODE_MENU;
-
+public class ListPagesTag extends ListNavigationItemsTag {
 
    @Override
-   protected List<Page> getList() {
-      List<Page> pages = null;
-      if (origin != null) {
-         if (origin instanceof Site) {
-            pages = SiteManagement.getPages((Site) origin);
-         }
-         else if (origin instanceof Page) {
-            pages = SiteManagement.getPages((Page) origin);
-         }
-      }
-      else {
-         pages = new ArrayList<Page>(SiteManagement.getSites());
-      }
-      if (pages != null) {
-         if (MODE_MENU.equalsIgnoreCase(mode)) {
-            for (Iterator<? extends Page> iter = pages.iterator(); 
iter.hasNext();) {
-               Page page = iter.next();
-               if (!page.isInmenu()) {
-                  iter.remove();
-               }
-            }
-         }
-         if (MODE_HIDDEN.equalsIgnoreCase(mode)) {
-            for (Iterator<? extends Page> iter = pages.iterator(); 
iter.hasNext();) {
-               Page page = iter.next();
-               if (page.isInmenu()) {
-                  iter.remove();
-               }
-            }
-         }
-      }
-      return pages;
-   }
-
-
-   public String getMode() {
-      return mode;
-   }
-
-
-   public void setMode(String mode) {
-      this.mode = mode;
+    protected Class<? extends NavigationItem> getChildNavigationClass() {
+        return Page.class;
    }
-
-   @Override
-   public void setOrigin(Object dest) {
-      Page page = null;
-      if (dest != null) {
-         if (dest instanceof Page) {
-            page = (Page) dest;
-         }
-         else if (dest instanceof Integer) {
-            page = getPageInteger((Integer) dest);
-         }
-         else if (dest instanceof String) {
-            page = getPageString((String) dest);
-         }
-         else {
-            throw new IllegalArgumentException("only Page, integer or string 
allowed: " + dest.getClass());
-         }
-         super.setOrigin(page);
-      }
-   }
-   
-   /**
-    * Set destination node number to navigate to.
-    * 
-    * @param n
-    *           the node number
-    */
-   private Page getPageInteger(Integer n) {
-      return SiteManagement.getPage(n.intValue());
-   }
-
-
-   /**
-    * Set the destination node path to navigate to.
-    * 
-    * @param s
-    *           comma, slash or space separated list of node numbers and/or
-    *           aliases
-    */
-   private Page getPageString(String s) {
-      Page temp = null;
-      if (!StringUtils.isBlank(s)) {
-         if (StringUtils.isNumeric(s)) {
-            temp = SiteManagement.getPage(Integer.parseInt(s));
-         }
-         else {
-            temp = SiteManagement.getPageFromPath(s);
-         }
-      }
-      return temp;
-   }
-
 }
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to