Author: raintang
Date: 2009-08-20 08:29:56 +0200 (Thu, 20 Aug 2009)
New Revision: 38056

Modified:
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementUtil.java
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentAction.java
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentSearchAction.java
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchAction.java
   
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchInitAction.java
Log:
CMSC-1476 3 Based on the FD, implement simple editor overview page including: 
head/body/foot page. refact the code

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementUtil.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementUtil.java
        2009-08-20 06:28:50 UTC (rev 38055)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/ContentElementUtil.java
        2009-08-20 06:29:56 UTC (rev 38056)
@@ -1,22 +1,41 @@
 /*
-
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-The license (Mozilla version 1.0) can be read at the MMBase site.
-See http://www.MMBase.org/license
-
+ * 
+ * This software is OSI Certified Open Source Software. OSI Certified is a 
certification mark of the Open Source
+ * Initiative.
+ * 
+ * The license (Mozilla version 1.0) can be read at the MMBase site. See 
http://www.MMBase.org/license
  */
 package com.finalist.cmsc.repository;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.TreeSet;
 
 import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
 
 import org.apache.commons.lang.StringUtils;
-import org.mmbase.bridge.*;
+import org.apache.struts.util.LabelValueBean;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Field;
+import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeIterator;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.NodeManager;
+import org.mmbase.bridge.NodeManagerList;
+import org.mmbase.bridge.NodeQuery;
+import org.mmbase.bridge.NotFoundException;
+import org.mmbase.bridge.Relation;
+import org.mmbase.bridge.RelationIterator;
+import org.mmbase.bridge.RelationManager;
 import org.mmbase.bridge.util.SearchUtil;
-import org.mmbase.storage.search.*;
+import org.mmbase.storage.search.CompositeConstraint;
+import org.mmbase.storage.search.Constraint;
+import org.mmbase.storage.search.FieldCompareConstraint;
 
 import com.finalist.cmsc.mmbase.PropertiesUtil;
 import com.finalist.cmsc.mmbase.TypeUtil;
@@ -51,12 +70,10 @@
       // utility
    }
 
-
    public static NodeManager getNodeManager(Cloud cloud) {
       return cloud.getNodeManager(CONTENTELEMENT);
    }
 
-
    public static List<NodeManager> getContentTypes(Cloud cloud) {
       List<NodeManager> result = new ArrayList<NodeManager>();
       NodeManagerList nml = cloud.getNodeManagers();
@@ -76,32 +93,28 @@
       return result;
    }
 
-
    public static boolean isContentElementField(Field field) {
-      Cloud cloud = field.getNodeManager().getCloud();
-      ;
+      Cloud cloud = field.getNodeManager().getCloud();;
       return cloud.getNodeManager(CONTENTELEMENT).hasField(field.getName());
    }
 
-
    /**
     * Is element from one of the content types
-    *
+    * 
     * @param element
     *           node to check
     * @return is content type
     */
    public static boolean isContentElement(Node element) {
       if (element == null) return false;
-      
+
       NodeManager nm = element.getNodeManager();
       return isContentType(nm);
    }
 
-
    /**
     * Is ModeManager of the content types
-    *
+    * 
     * @param nm
     *           NodeManager to check
     * @return is content type
@@ -117,17 +130,15 @@
             nmTemp = nmTemp.getParent();
          }
          return true;
-      }
-      catch (NotFoundException nfe) {
+      } catch (NotFoundException nfe) {
          // Ran out of NodeManager parents
       }
       return false;
    }
 
-
    /**
     * Is type of content type
-    *
+    * 
     * @param type
     *           to check
     * @return is content type
@@ -137,7 +148,6 @@
       return isContentType(nm);
    }
 
-
    public static void removeContentBlock(Node node) {
       List<Node> nodes = findContentBlockNodes(node);
       for (Node removeNode : nodes) {
@@ -145,21 +155,18 @@
       }
    }
 
-
    public static List<Node> findContentBlockNodes(Node node) {
       List<Node> nodes = new ArrayList<Node>();
       findContentBlockNodes(node, nodes, false, false);
       return nodes;
    }
 
-
    public static List<Node> findContentBlockNodesWithRelations(Node node) {
       List<Node> nodes = new ArrayList<Node>();
       findContentBlockNodes(node, nodes, true, false);
       return nodes;
    }
 
-
    public static void findContentBlockNodes(Node node, List<Node> nodes, 
boolean withRelation, boolean remove) {
       if (!remove) {
          if (!nodes.contains(node)) {
@@ -174,15 +181,13 @@
             if (!RepositoryUtil.hasContentChannel(childNode)) {
                findContentBlockNodes(childNode, nodes, withRelation, remove);
             }
-         }
-         else {
+         } else {
             if (!RepositoryUtil.isContentChannel(childNode)) {
                if (remove) {
                   if (childNode.countRelatedNodes(null, null, SOURCE) <= 1) {
                      findContentBlockNodes(childNode, nodes, withRelation, 
remove);
                   }
-               }
-               else {
+               } else {
                   if 
(!TypeUtil.isSystemType(childNode.getNodeManager().getName())) {
                      findContentBlockNodes(childNode, nodes, withRelation, 
remove);
                   }
@@ -207,7 +212,6 @@
       }
    }
 
-
    public static Node createContentElement(Cloud cloud, String manager, String 
creationPath, boolean linkToChannel) {
       Node creationChannel = RepositoryUtil.getChannelFromPath(cloud, 
creationPath);
       if (creationChannel == null) {
@@ -217,7 +221,6 @@
       return createContentElement(cloud, manager, creationChannel, title, 
linkToChannel);
    }
 
-
    public static Node createContentElement(Cloud cloud, String manager, String 
creationPath, String title,
          boolean linkToChannel) {
       Node creationChannel = RepositoryUtil.getChannelFromPath(cloud, 
creationPath);
@@ -227,13 +230,11 @@
       return createContentElement(cloud, manager, creationChannel, title, 
linkToChannel);
    }
 
-
    public static Node createContentElement(Cloud cloud, String manager, Node 
creationChannel, boolean linkToChannel) {
       String title = 
creationChannel.getStringValue(RepositoryUtil.TITLE_FIELD);
       return createContentElement(cloud, manager, creationChannel, title, 
linkToChannel);
    }
 
-
    public static Node createContentElement(Cloud cloud, String manager, Node 
creationChannel, String title,
          boolean linkToChannel) {
       NodeManager contentManager = cloud.getNodeManager(manager);
@@ -246,19 +247,17 @@
       addOwner(content);
       if (linkToChannel) {
          RepositoryUtil.addContentToChannel(content, creationChannel);
-      }
-      else {
+      } else {
          RepositoryUtil.addCreationChannel(content, creationChannel);
       }
       return content;
    }
 
-
    /**
     * Add owner
-    *
-    * @param content -
-    *           content
+    * 
+    * @param content
+    *           - content
     */
    public static void addOwner(Node content) {
       Cloud cloud = content.getCloud();
@@ -268,12 +267,11 @@
       ownerrel.commit();
    }
 
-
    /**
     * Check if a contentnode has an owner
-    *
-    * @param content -
-    *           Content Node
+    * 
+    * @param content
+    *           - Content Node
     * @return true if the node has a related workflowitem
     */
    public static boolean hasOwner(Node content) {
@@ -281,12 +279,11 @@
       return count > 0;
    }
 
-
    /**
     * Get author of the content element
-    *
-    * @param content -
-    *           Content Node
+    * 
+    * @param content
+    *           - Content Node
     * @return Author node
     */
    public static Node getAuthor(Node content) {
@@ -294,12 +291,11 @@
       return SecurityUtil.getUserNode(content.getCloud(), creator);
    }
 
-
    /**
     * Get owner of the content element
-    *
-    * @param content -
-    *           Content Node
+    * 
+    * @param content
+    *           - Content Node
     * @return Owner node
     */
    public static Node getOwner(Node content) {
@@ -310,7 +306,6 @@
       return null;
    }
 
-
    public static void addNotExpiredConstraint(Node channel, NodeQuery query, 
long date) {
       NodeManager contentManager = 
channel.getCloud().getNodeManager(CONTENTELEMENT);
 
@@ -321,7 +316,6 @@
       SearchUtil.addConstraint(query, composite);
    }
 
-
    public static void addLifeCycleConstraint(NodeQuery query, long date) {
       NodeManager contentManager = 
query.getCloud().getNodeManager(CONTENTELEMENT);
 
@@ -335,7 +329,6 @@
       SearchUtil.addConstraint(query, composite);
    }
 
-
    public static void addLifeCycleInverseConstraint(NodeQuery query, long 
date) {
       NodeManager contentManager = 
query.getCloud().getNodeManager(CONTENTELEMENT);
 
@@ -349,7 +342,6 @@
       SearchUtil.addConstraint(query, composite);
    }
 
-
    public static Constraint getUseExpireConstraint(NodeQuery query, 
NodeManager contentManager, Boolean value) {
       Field useExpireField = contentManager.getField(USE_EXPIRY_FIELD);
       Constraint useExpire = 
query.createConstraint(query.getStepField(useExpireField), 
FieldCompareConstraint.EQUAL,
@@ -357,7 +349,6 @@
       return useExpire;
    }
 
-
    public static Constraint getExpireConstraint(NodeQuery query, long date, 
NodeManager contentManager, boolean greater) {
       int operator = (greater ? FieldCompareConstraint.GREATER_EQUAL : 
FieldCompareConstraint.LESS_EQUAL);
 
@@ -367,7 +358,6 @@
       return expirydate;
    }
 
-
    public static Constraint getPublishConstraint(NodeQuery query, long date, 
NodeManager contentManager, boolean greater) {
       int operator = (greater ? FieldCompareConstraint.GREATER_EQUAL : 
FieldCompareConstraint.LESS_EQUAL);
 
@@ -377,7 +367,6 @@
       return publishdate;
    }
 
-
    public static void addArchiveConstraint(Node channel, NodeQuery query, Long 
date, String archive) {
       if (StringUtils.isEmpty(archive) || "all".equalsIgnoreCase(archive)) {
          return;
@@ -391,8 +380,7 @@
       if ("old".equalsIgnoreCase(archive)) {
          archivedate = 
query.createConstraint(query.getStepField(archiveDateField), 
FieldCompareConstraint.LESS_EQUAL,
                archiveDateObj);
-      }
-      else {
+      } else {
          // "new".equalsIgnoreCase(archive)
          archivedate = 
query.createConstraint(query.getStepField(archiveDateField),
                FieldCompareConstraint.GREATER_EQUAL, archiveDateObj);
@@ -400,15 +388,17 @@
       SearchUtil.addConstraint(query, archivedate);
    }
 
-
-    /**
-     * judge if the content's archive date is in the archive time scope
-     * @param content the node to be match
-     * @param archive spcifiy how to calculate the archive time scrop.accept 
"all" "old" or other String as parameter,
-     * @return <li>true if archive is "all" or content is empty.
-     *         <li>true if archive is "old" and content's archive time is 
before current time
-     *         <li>true if archive is others and content's archive time is 
after or equels to current time
-     */
+   /**
+    * judge if the content's archive date is in the archive time scope
+    * 
+    * @param content
+    *           the node to be match
+    * @param archive
+    *           spcifiy how to calculate the archive time scrop.accept "all" 
"old" or other String as parameter,
+    * @return <li>true if archive is "all" or content is empty. <li>true if 
archive is "old" and content's archive time
+    *         is before current time <li>true if archive is others and 
content's archive time is after or equels to
+    *         current time
+    */
    public static boolean matchArchive(Node content, String archive) {
       if (StringUtils.isEmpty(archive) || "all".equalsIgnoreCase(archive)) {
          return true;
@@ -422,15 +412,14 @@
       Date archiveDate = content.getDateValue(ARCHIVEDATE_FIELD);
       if ("old".equalsIgnoreCase(archive)) {
          return archiveDate.getTime() < date;
-      }
-      else {
+      } else {
          return archiveDate.getTime() >= date;
       }
    }
 
    /**
     * Helper method to get all hidden types
-    *
+    * 
     * @return List of hidden types
     */
    public static List<String> getHiddenTypes() {
@@ -447,4 +436,42 @@
       return list;
    }
 
+   /**
+    * Return a valid type list, not including those belong to hidden types
+    * 
+    * @param cloud
+    * @param request
+    * @param types
+    */
+   public static List<LabelValueBean> getValidTypesList(Cloud cloud, 
List<NodeManager> types) {
+      List<LabelValueBean> typesList = new ArrayList<LabelValueBean>();
+      List<String> hiddenTypes = getHiddenTypes();
+      for (NodeManager manager : types) {
+         String name = manager.getName();
+         if (!hiddenTypes.contains(name)) {
+            LabelValueBean bean = new LabelValueBean(manager.getGUIName(), 
name);
+            typesList.add(bean);
+         }
+      }
+      return typesList;
+   }
+
+   /**
+    * 
+    * @param cloud
+    * @param types
+    * @return
+    */
+   public static TreeSet<Integer> getValidTypes(Cloud cloud, List<NodeManager> 
types) {
+      List<String> hiddenTypes = getHiddenTypes();
+      TreeSet<Integer> validTypes = null;
+      for (NodeManager manager : types) {
+         String name = manager.getName();
+         if (!hiddenTypes.contains(name)) {
+            validTypes.add(manager.getNumber());
+         }
+      }
+      return validTypes;
+   }
+
 }

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentAction.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentAction.java
       2009-08-20 06:28:50 UTC (rev 38055)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentAction.java
       2009-08-20 06:29:56 UTC (rev 38056)
@@ -1,24 +1,30 @@
 /*
-
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-The license (Mozilla version 1.0) can be read at the MMBase site.
-See http://www.MMBase.org/license
-
+ * 
+ * This software is OSI Certified Open Source Software. OSI Certified is a 
certification mark of the Open Source
+ * Initiative.
+ * 
+ * The license (Mozilla version 1.0) can be read at the MMBase site. See 
http://www.MMBase.org/license
  */
 package com.finalist.cmsc.repository.forms;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang.StringUtils;
-
-import org.apache.struts.action.*;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
 import org.apache.struts.util.LabelValueBean;
-import org.mmbase.bridge.*;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.NodeManager;
 
 import com.finalist.cmsc.mmbase.PropertiesUtil;
 import com.finalist.cmsc.repository.ContentElementUtil;
@@ -26,28 +32,21 @@
 import com.finalist.cmsc.struts.MMBaseAction;
 
 public class ContentAction extends MMBaseAction {
-   
+
    private final static String MOVECONTENTTOCHANNEL = "moveContentToChannel";
+
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request,
          HttpServletResponse response, Cloud cloud) throws Exception {
 
       String action = request.getParameter("action");
-      if(StringUtils.isNotEmpty(action) && 
action.equals(MOVECONTENTTOCHANNEL)) {
+      if (StringUtils.isNotEmpty(action) && 
action.equals(MOVECONTENTTOCHANNEL)) {
          return mapping.findForward(MOVECONTENTTOCHANNEL);
       }
       List<LabelValueBean> typesList = new ArrayList<LabelValueBean>();
 
       List<NodeManager> types = ContentElementUtil.getContentTypes(cloud);
-      List<String> hiddenTypes = ContentElementUtil.getHiddenTypes();
-      for (NodeManager manager : types) {
-         String name = manager.getName();
-         if (!hiddenTypes.contains(name)) {
-            LabelValueBean bean = new LabelValueBean(manager.getGUIName(), 
name);
-            typesList.add(bean);
-         }
-      }
-      addToRequest(request, "typesList", typesList);
+      addToRequest(request, "typesList", 
ContentElementUtil.getValidTypesList(cloud, types));
 
       String parentchannel = request.getParameter("parentchannel");
       String orderby = request.getParameter("orderby");
@@ -56,27 +55,28 @@
          orderby = null;
       }
       if (StringUtils.isEmpty(direction)) {
-        direction = null;
+         direction = null;
       }
 
       // Set the offset (used for paging).
       String offsetString = request.getParameter("offset");
       int offset = 0;
       if (offsetString != null && offsetString.matches("\\d+")) {
-         offset = Integer.parseInt(offsetString);
+         offset = Integer.parseInt(offsetString);
       }
-      
+
       // Set the maximum result size.
       String resultsPerPage = 
PropertiesUtil.getProperty(SearchAction.REPOSITORY_SEARCH_RESULTS_PER_PAGE);
       int maxNumber = 25;
       if (resultsPerPage != null && resultsPerPage.matches("\\d+")) {
-         maxNumber = Integer.parseInt(resultsPerPage);
+         maxNumber = Integer.parseInt(resultsPerPage);
       }
       addToRequest(request, "resultsPerPage", Integer.toString(maxNumber));
-      
+
       if (StringUtils.isNotEmpty(parentchannel)) {
          Node channel = cloud.getNode(parentchannel);
-         NodeList elements = RepositoryUtil.getLinkedElements(channel, null, 
orderby, direction, false, offset*maxNumber, maxNumber, -1, -1, -1);
+         NodeList elements = RepositoryUtil.getLinkedElements(channel, null, 
orderby, direction, false, offset
+               * maxNumber, maxNumber, -1, -1, -1);
          int elementCount = RepositoryUtil.countLinkedContent(channel);
          addToRequest(request, "direction", direction);
          addToRequest(request, "orderby", orderby);
@@ -87,7 +87,7 @@
             addToRequest(request, "message", (String) 
request.getSession().getAttribute("message"));
             request.getSession().removeAttribute("message");
          }
-         
+
          NodeList created = RepositoryUtil.getCreatedElements(channel);
          Map<String, Node> createdNumbers = new HashMap<String, Node>();
          for (Iterator<Node> iter = created.iterator(); iter.hasNext();) {
@@ -95,17 +95,17 @@
             createdNumbers.put(String.valueOf(createdElement.getNumber()), 
createdElement);
          }
          addToRequest(request, "createdNumbers", createdNumbers);
-         //cmsc-1205 don't refresh channel tree when not necessary
+         // cmsc-1205 don't refresh channel tree when not necessary
          String type = request.getParameter("type");
-         //cmsc-144 make reorder icon show up
-         if(elementCount==2&& type != null){
-                request.setAttribute("refresh", true);
+         // cmsc-144 make reorder icon show up
+         if (elementCount == 2 && type != null) {
+            request.setAttribute("refresh", true);
          }
-         //reset the show mode of assets in the session when enter another 
channel
-         if(type==null){
+         // reset the show mode of assets in the session when enter another 
channel
+         if (type == null) {
             request.getSession().removeAttribute("show");
             request.getSession().removeAttribute("imageOnly");
-           }
+         }
       }
       return mapping.findForward(SUCCESS);
    }

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentSearchAction.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentSearchAction.java
 2009-08-20 06:28:50 UTC (rev 38055)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentSearchAction.java
 2009-08-20 06:29:56 UTC (rev 38056)
@@ -83,7 +83,7 @@
       request.setAttribute(INDEX, index);
       request.setAttribute(TITLE, searchForm.getTitle());
       request.setAttribute(ONLYTYPE, onlytype);
-      
+
       if (StringUtils.isNotEmpty(deleteContentRequest)) {
          if (deleteContentRequest.startsWith("massDelete:")) {
             massDeleteContent(deleteContentRequest.substring(11), cloud);
@@ -100,15 +100,7 @@
       List<LabelValueBean> typesList = new ArrayList<LabelValueBean>();
 
       List<NodeManager> types = ContentElementUtil.getContentTypes(cloud);
-      List<String> hiddenTypes = ContentElementUtil.getHiddenTypes();
-      for (NodeManager manager : types) {
-         String name = manager.getName();
-         if (!hiddenTypes.contains(name)) {
-            LabelValueBean bean = new LabelValueBean(manager.getGUIName(), 
name);
-            typesList.add(bean);
-         }
-      }
-      addToRequest(request, "typesList", typesList);
+      addToRequest(request, "typesList", 
ContentElementUtil.getValidTypesList(cloud, types));
 
       // Switching tab, no searching.
       if ("false".equalsIgnoreCase(searchForm.getSearch())) {
@@ -167,13 +159,17 @@
 
       // Set some date constraints.
       queryStringComposer.addParameter(ContentElementUtil.CREATIONDATE_FIELD, 
"" + searchForm.getCreationdate());
-      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.CREATIONDATE_FIELD, searchForm.getCreationdate());
+      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.CREATIONDATE_FIELD, searchForm
+            .getCreationdate());
       queryStringComposer.addParameter(ContentElementUtil.PUBLISHDATE_FIELD, 
"" + searchForm.getPublishdate());
-      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.PUBLISHDATE_FIELD, searchForm.getPublishdate());
+      SearchUtil
+            .addDayConstraint(query, nodeManager, 
ContentElementUtil.PUBLISHDATE_FIELD, searchForm.getPublishdate());
       queryStringComposer.addParameter(ContentElementUtil.EXPIREDATE_FIELD, "" 
+ searchForm.getExpiredate());
       SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.EXPIREDATE_FIELD, searchForm.getExpiredate());
-      
queryStringComposer.addParameter(ContentElementUtil.LASTMODIFIEDDATE_FIELD, "" 
+ searchForm.getLastmodifieddate());
-      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIEDDATE_FIELD, searchForm.getLastmodifieddate());
+      queryStringComposer
+            .addParameter(ContentElementUtil.LASTMODIFIEDDATE_FIELD, "" + 
searchForm.getLastmodifieddate());
+      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIEDDATE_FIELD, searchForm
+            .getLastmodifieddate());
 
       // Perhaps we have some more constraints if the nodetype was specified 
(=> not contentelement).
       if 
(!ContentElementUtil.CONTENTELEMENT.equalsIgnoreCase(nodeManager.getName())) {
@@ -200,11 +196,11 @@
          SearchUtil.addConstraint(query, titleConstraint);
       }
 
-      //if in simple search mode, add input to the keyword search too
-      //And add ordinary keywords
+      // if in simple search mode, add input to the keyword search too
+      // And add ordinary keywords
       List<String> keywords = searchKeywords(request.getParameter(MODE), 
searchForm);
       addKeyConstraint(searchForm, nodeManager, queryStringComposer, query, 
keywords);
-      
+
       // Set the objectid constraint
       if (StringUtils.isNotEmpty(searchForm.getObjectid())) {
          String stringObjectId = searchForm.getObjectid();
@@ -299,7 +295,8 @@
       return keywords;
    }
 
-   private void addKeyConstraint(SearchForm searchForm, NodeManager 
nodeManager, QueryStringComposer queryStringComposer, NodeQuery query, 
List<String> keywords) {
+   private void addKeyConstraint(SearchForm searchForm, NodeManager 
nodeManager,
+         QueryStringComposer queryStringComposer, NodeQuery query, 
List<String> keywords) {
       if (keywords == null) return;
 
       queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD, 
searchForm.getKeywords());

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchAction.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchAction.java
        2009-08-20 06:28:50 UTC (rev 38055)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchAction.java
        2009-08-20 06:29:56 UTC (rev 38056)
@@ -1,6 +1,7 @@
 package com.finalist.cmsc.repository.forms;
 
-import java.util.*;
+import java.util.List;
+import java.util.StringTokenizer;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -9,9 +10,17 @@
 import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
 
 import org.apache.commons.lang.StringUtils;
-import org.apache.struts.action.*;
-import org.apache.struts.util.LabelValueBean;
-import org.mmbase.bridge.*;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Field;
+import org.mmbase.bridge.FieldIterator;
+import org.mmbase.bridge.FieldList;
+import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.NodeManager;
+import org.mmbase.bridge.NodeQuery;
 import org.mmbase.bridge.util.Queries;
 import org.mmbase.bridge.util.SearchUtil;
 import org.mmbase.storage.search.Constraint;
@@ -30,277 +39,262 @@
 
 public class SearchAction extends PagerAction {
 
-    public static final String GETURL = "geturl";
+   public static final String GETURL = "geturl";
 
-    public static final String PERSONAL = "personal";
-    public static final String MODE = "mode";
-    public static final String AUTHOR = "author";
-    public static final String OBJECTID = "objectid";
-    public static final String PARENTCHANNEL = "parentchannel";
-    public static final String CONTENTTYPES = "contenttypes";
+   public static final String PERSONAL = "personal";
+   public static final String MODE = "mode";
+   public static final String AUTHOR = "author";
+   public static final String OBJECTID = "objectid";
+   public static final String PARENTCHANNEL = "parentchannel";
+   public static final String CONTENTTYPES = "contenttypes";
 
-    public static final String REPOSITORY_SEARCH_RESULTS_PER_PAGE = 
"repository.search.results.per.page";
+   public static final String REPOSITORY_SEARCH_RESULTS_PER_PAGE = 
"repository.search.results.per.page";
 
-    /**
-     * MMbase logging system
-     */
-    private static final Logger log = 
Logging.getLoggerInstance(SearchAction.class.getName());
+   /**
+    * MMbase logging system
+    */
+   private static final Logger log = 
Logging.getLoggerInstance(SearchAction.class.getName());
 
+   @Override
+   public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request,
+         HttpServletResponse response, Cloud cloud) throws Exception {
 
-    @Override
-    public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request, HttpServletResponse response, Cloud cloud) throws 
Exception {
+      log.debug("Starting the search:");
 
-        log.debug("Starting the search:");
+      // Initialize
+      SearchForm searchForm = (SearchForm) form;
 
-        // Initialize
-        SearchForm searchForm = (SearchForm) form;
+      String deleteContentRequest = 
request.getParameter("deleteContentRequest");
 
-        String deleteContentRequest = 
request.getParameter("deleteContentRequest");
-
-        if (StringUtils.isNotEmpty(deleteContentRequest)) {
-           if(deleteContentRequest.startsWith("massDelete:")) {
-              massDeleteContent(deleteContentRequest.substring(11));
-           }
-           else {
+      if (StringUtils.isNotEmpty(deleteContentRequest)) {
+         if (deleteContentRequest.startsWith("massDelete:")) {
+            massDeleteContent(deleteContentRequest.substring(11));
+         } else {
             deleteContent(deleteContentRequest);
-           }
+         }
 
-            // add a flag to let search result page refresh the channels frame,
-            // so that the number of item in recyclebin can update
-            request.setAttribute("refreshChannels", "refreshChannels");
-        }
+         // add a flag to let search result page refresh the channels frame,
+         // so that the number of item in recyclebin can update
+         request.setAttribute("refreshChannels", "refreshChannels");
+      }
 
-        // First prepare the typeList, we'll need this one anyway:
-        List<LabelValueBean> typesList = new ArrayList<LabelValueBean>();
+      // First prepare the typeList, we'll need this one anyway:
+      List<NodeManager> types = ContentElementUtil.getContentTypes(cloud);
+      addToRequest(request, "typesList", 
ContentElementUtil.getValidTypesList(cloud, types));
 
-        List<NodeManager> types = ContentElementUtil.getContentTypes(cloud);
-        List<String> hiddenTypes = ContentElementUtil.getHiddenTypes();
-        for (NodeManager manager : types) {
-            String name = manager.getName();
-            if (!hiddenTypes.contains(name)) {
-                LabelValueBean bean = new LabelValueBean(manager.getGUIName(), 
name);
-                typesList.add(bean);
-            }
-        }
-        addToRequest(request, "typesList", typesList);
+      // Switching tab, no searching.
+      if ("false".equalsIgnoreCase(searchForm.getSearch())) {
+         return mapping.getInputForward();
+      }
 
-        // Switching tab, no searching.
-        if ("false".equalsIgnoreCase(searchForm.getSearch())) {
-            return mapping.getInputForward();
-        }
+      NodeManager nodeManager = 
cloud.getNodeManager(searchForm.getContenttypes());
+      QueryStringComposer queryStringComposer = new QueryStringComposer();
+      if (StringUtils.isNotEmpty(request.getParameter(MODE))) {
+         queryStringComposer.addParameter(MODE, request.getParameter(MODE));
+      }
+      NodeQuery query = cloud.createNodeQuery();
 
-        NodeManager nodeManager = 
cloud.getNodeManager(searchForm.getContenttypes());
-        QueryStringComposer queryStringComposer = new QueryStringComposer();
-        if(StringUtils.isNotEmpty(request.getParameter(MODE))) {
-               queryStringComposer.addParameter(MODE, 
request.getParameter(MODE));
-        }
-        NodeQuery query = cloud.createNodeQuery();
+      // First we add the contenttype parameter
+      queryStringComposer.addParameter(CONTENTTYPES, 
searchForm.getContenttypes());
 
-        // First we add the contenttype parameter
-        queryStringComposer.addParameter(CONTENTTYPES, 
searchForm.getContenttypes());
+      // First add the proper step to the query.
+      Step theStep = null;
+      if (StringUtils.isNotEmpty(searchForm.getParentchannel())) {
+         Step step = 
query.addStep(cloud.getNodeManager(RepositoryUtil.CONTENTCHANNEL));
+         query.addNode(step, cloud.getNode(searchForm.getParentchannel()));
+         theStep = query.addRelationStep(nodeManager, 
RepositoryUtil.CONTENTREL, "DESTINATION").getNext();
+         query.setNodeStep(theStep);
+         queryStringComposer.addParameter(PARENTCHANNEL, 
searchForm.getParentchannel());
+      } else {
+         theStep = query.addStep(nodeManager);
+         query.setNodeStep(theStep);
+      }
 
-        // First add the proper step to the query.
-        Step theStep = null;
-        if (StringUtils.isNotEmpty(searchForm.getParentchannel())) {
-            Step step = 
query.addStep(cloud.getNodeManager(RepositoryUtil.CONTENTCHANNEL));
-            query.addNode(step, cloud.getNode(searchForm.getParentchannel()));
-            theStep = query.addRelationStep(nodeManager, 
RepositoryUtil.CONTENTREL, "DESTINATION").getNext();
-            query.setNodeStep(theStep);
-            queryStringComposer.addParameter(PARENTCHANNEL, 
searchForm.getParentchannel());
-        }
-        else {
-            theStep = query.addStep(nodeManager);
-            query.setNodeStep(theStep);
-        }
+      // Order the result by:
+      String order = searchForm.getOrder();
 
-        // Order the result by:
-        String order = searchForm.getOrder();
+      // set default order field
+      if (StringUtils.isEmpty(order)) {
+         if (nodeManager.hasField("title")) {
+            order = "title";
+         }
+         if (nodeManager.hasField("name")) {
+            order = "name";
+         }
+      }
+      if (StringUtils.isNotEmpty(order)) {
+         queryStringComposer.addParameter(ORDER, searchForm.getOrder());
+         queryStringComposer.addParameter(DIRECTION, "" + 
searchForm.getDirection());
+         query.addSortOrder(query.getStepField(nodeManager.getField(order)), 
searchForm.getDirection());
+      }
 
-        // set default order field
-        if (StringUtils.isEmpty(order)) {
-            if (nodeManager.hasField("title")) {
-                order = "title";
-            }
-            if (nodeManager.hasField("name")) {
-                order = "name";
-            }
-        }
-        if (StringUtils.isNotEmpty(order)) {
-            queryStringComposer.addParameter(ORDER, searchForm.getOrder());
-            queryStringComposer.addParameter(DIRECTION, "" + 
searchForm.getDirection());
-            
query.addSortOrder(query.getStepField(nodeManager.getField(order)), 
searchForm.getDirection());
-        }
+      query.setDistinct(true);
 
-        query.setDistinct(true);
+      // Set some date constraints.
+      queryStringComposer.addParameter(ContentElementUtil.CREATIONDATE_FIELD, 
"" + searchForm.getCreationdate());
+      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.CREATIONDATE_FIELD, searchForm
+            .getCreationdate());
+      queryStringComposer.addParameter(ContentElementUtil.PUBLISHDATE_FIELD, 
"" + searchForm.getPublishdate());
+      SearchUtil
+            .addDayConstraint(query, nodeManager, 
ContentElementUtil.PUBLISHDATE_FIELD, searchForm.getPublishdate());
+      queryStringComposer.addParameter(ContentElementUtil.EXPIREDATE_FIELD, "" 
+ searchForm.getExpiredate());
+      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.EXPIREDATE_FIELD, searchForm.getExpiredate());
+      queryStringComposer
+            .addParameter(ContentElementUtil.LASTMODIFIEDDATE_FIELD, "" + 
searchForm.getLastmodifieddate());
+      SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIEDDATE_FIELD, searchForm
+            .getLastmodifieddate());
 
-        // Set some date constraints.
-        
queryStringComposer.addParameter(ContentElementUtil.CREATIONDATE_FIELD, "" + 
searchForm.getCreationdate());
-        SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.CREATIONDATE_FIELD, searchForm
-                .getCreationdate());
-        queryStringComposer.addParameter(ContentElementUtil.PUBLISHDATE_FIELD, 
"" + searchForm.getPublishdate());
-        SearchUtil
-                .addDayConstraint(query, nodeManager, 
ContentElementUtil.PUBLISHDATE_FIELD, searchForm.getPublishdate());
-        queryStringComposer.addParameter(ContentElementUtil.EXPIREDATE_FIELD, 
"" + searchForm.getExpiredate());
-        SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.EXPIREDATE_FIELD, searchForm.getExpiredate());
-        queryStringComposer
-                .addParameter(ContentElementUtil.LASTMODIFIEDDATE_FIELD, "" + 
searchForm.getLastmodifieddate());
-        SearchUtil.addDayConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIEDDATE_FIELD, searchForm
-                .getLastmodifieddate());
+      // Perhaps we have some more constraints if the nodetype was specified 
(=>
+      // not
+      // contentelement).
+      if 
(!ContentElementUtil.CONTENTELEMENT.equalsIgnoreCase(nodeManager.getName())) {
+         FieldList fields = nodeManager.getFields();
+         FieldIterator fieldIterator = fields.fieldIterator();
 
-        // Perhaps we have some more constraints if the nodetype was specified 
(=>
-        // not
-        // contentelement).
-        if 
(!ContentElementUtil.CONTENTELEMENT.equalsIgnoreCase(nodeManager.getName())) {
-            FieldList fields = nodeManager.getFields();
-            FieldIterator fieldIterator = fields.fieldIterator();
-
-            while (fieldIterator.hasNext()) {
-                Field field = fieldIterator.nextField();
-                String paramName = nodeManager.getName() + "." + 
field.getName();
-                String paramValue = request.getParameter(paramName);
-                if (StringUtils.isNotEmpty(paramValue)) {
-                    SearchUtil.addLikeConstraint(query, field, 
paramValue.trim());
-                }
-                queryStringComposer.addParameter(paramName, paramValue);
+         while (fieldIterator.hasNext()) {
+            Field field = fieldIterator.nextField();
+            String paramName = nodeManager.getName() + "." + field.getName();
+            String paramValue = request.getParameter(paramName);
+            if (StringUtils.isNotEmpty(paramValue)) {
+               SearchUtil.addLikeConstraint(query, field, paramValue.trim());
             }
-        }
+            queryStringComposer.addParameter(paramName, paramValue);
+         }
+      }
 
-        // Add the title constraint:
-        if (StringUtils.isNotEmpty(searchForm.getTitle())) {
+      // Add the title constraint:
+      if (StringUtils.isNotEmpty(searchForm.getTitle())) {
 
-            queryStringComposer.addParameter(ContentElementUtil.TITLE_FIELD, 
searchForm.getTitle().trim());
-            Field field = nodeManager.getField(ContentElementUtil.TITLE_FIELD);
-            Constraint titleConstraint = 
SearchUtil.createLikeConstraint(query, field, searchForm.getTitle().trim());
-            SearchUtil.addConstraint(query, titleConstraint);
-        }
+         queryStringComposer.addParameter(ContentElementUtil.TITLE_FIELD, 
searchForm.getTitle().trim());
+         Field field = nodeManager.getField(ContentElementUtil.TITLE_FIELD);
+         Constraint titleConstraint = SearchUtil.createLikeConstraint(query, 
field, searchForm.getTitle().trim());
+         SearchUtil.addConstraint(query, titleConstraint);
+      }
 
-        // And some keyword searching
-        if (StringUtils.isNotEmpty(searchForm.getKeywords())) {
-            queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD, 
searchForm.getKeywords());
-            Field keywordField = 
nodeManager.getField(ContentElementUtil.KEYWORD_FIELD);
-            List<String> keywords = 
KeywordUtil.getKeywords(searchForm.getKeywords());
-            for (String keyword : keywords) {
-                Constraint keywordConstraint = 
SearchUtil.createLikeConstraint(query, keywordField, keyword);
-                SearchUtil.addORConstraint(query, keywordConstraint);
-            }
-        }
+      // And some keyword searching
+      if (StringUtils.isNotEmpty(searchForm.getKeywords())) {
+         queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD, 
searchForm.getKeywords());
+         Field keywordField = 
nodeManager.getField(ContentElementUtil.KEYWORD_FIELD);
+         List<String> keywords = 
KeywordUtil.getKeywords(searchForm.getKeywords());
+         for (String keyword : keywords) {
+            Constraint keywordConstraint = 
SearchUtil.createLikeConstraint(query, keywordField, keyword);
+            SearchUtil.addORConstraint(query, keywordConstraint);
+         }
+      }
 
-        // Set the objectid constraint
-        if (StringUtils.isNotEmpty(searchForm.getObjectid())) {
-               String stringObjectId = searchForm.getObjectid().trim();
-            Integer objectId = null;
-            if (stringObjectId.matches("^\\d+$")) {
-                objectId = Integer.valueOf(stringObjectId);
+      // Set the objectid constraint
+      if (StringUtils.isNotEmpty(searchForm.getObjectid())) {
+         String stringObjectId = searchForm.getObjectid().trim();
+         Integer objectId = null;
+         if (stringObjectId.matches("^\\d+$")) {
+            objectId = Integer.valueOf(stringObjectId);
+         } else {
+            if (cloud.hasNode(stringObjectId)) {
+               objectId = 
Integer.valueOf(cloud.getNode(stringObjectId).getNumber());
+            } else {
+               objectId = Integer.valueOf(-1);
             }
-            else {
-                if (cloud.hasNode(stringObjectId)) {
-                    objectId = 
Integer.valueOf(cloud.getNode(stringObjectId).getNumber());
-                }
-                else {
-                    objectId = Integer.valueOf(-1);
-                }
-            }
-            SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.NUMBER_FIELD, objectId);
-            queryStringComposer.addParameter(OBJECTID, stringObjectId);
-        }
+         }
+         SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.NUMBER_FIELD, objectId);
+         queryStringComposer.addParameter(OBJECTID, stringObjectId);
+      }
 
-        // Add the user personal:
-        if (StringUtils.isNotEmpty(searchForm.getPersonal())) {
+      // Add the user personal:
+      if (StringUtils.isNotEmpty(searchForm.getPersonal())) {
 
-            String useraccount = cloud.getUser().getIdentifier();
-            if 
(ContentElementUtil.LASTMODIFIER_FIELD.equals(searchForm.getPersonal())) {
-                SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIER_FIELD, useraccount);
-            }
-            if (AUTHOR.equals(searchForm.getPersonal())) {
-                SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.CREATOR_FIELD, useraccount);
-            }
-            queryStringComposer.addParameter(PERSONAL, 
searchForm.getPersonal());
-        }
-
-        // Add the user
-        if (StringUtils.isNotEmpty(searchForm.getUseraccount())) {
-            String useraccount = searchForm.getUseraccount();
+         String useraccount = cloud.getUser().getIdentifier();
+         if 
(ContentElementUtil.LASTMODIFIER_FIELD.equals(searchForm.getPersonal())) {
             SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIER_FIELD, useraccount);
-        }
+         }
+         if (AUTHOR.equals(searchForm.getPersonal())) {
+            SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.CREATOR_FIELD, useraccount);
+         }
+         queryStringComposer.addParameter(PERSONAL, searchForm.getPersonal());
+      }
 
-        // Set the maximum result size.
-        String resultsPerPage = 
PropertiesUtil.getProperty(REPOSITORY_SEARCH_RESULTS_PER_PAGE);
-        if (resultsPerPage == null || !resultsPerPage.matches("\\d+")) {
-            query.setMaxNumber(25);
-        }
-        else {
-            query.setMaxNumber(Integer.parseInt(resultsPerPage));
-        }
+      // Add the user
+      if (StringUtils.isNotEmpty(searchForm.getUseraccount())) {
+         String useraccount = searchForm.getUseraccount();
+         SearchUtil.addEqualConstraint(query, nodeManager, 
ContentElementUtil.LASTMODIFIER_FIELD, useraccount);
+      }
 
-        // Set the offset (used for paging).
-        if (searchForm.getOffset() != null && 
searchForm.getOffset().matches("\\d+")) {
-            query.setOffset(query.getMaxNumber() * 
Integer.parseInt(searchForm.getOffset()));
-            queryStringComposer.addParameter(OFFSET, searchForm.getOffset());
-        }
+      // Set the maximum result size.
+      String resultsPerPage = 
PropertiesUtil.getProperty(REPOSITORY_SEARCH_RESULTS_PER_PAGE);
+      if (resultsPerPage == null || !resultsPerPage.matches("\\d+")) {
+         query.setMaxNumber(25);
+      } else {
+         query.setMaxNumber(Integer.parseInt(resultsPerPage));
+      }
 
-        log.debug("QUERY: " + query);
+      // Set the offset (used for paging).
+      if (searchForm.getOffset() != null && 
searchForm.getOffset().matches("\\d+")) {
+         query.setOffset(query.getMaxNumber() * 
Integer.parseInt(searchForm.getOffset()));
+         queryStringComposer.addParameter(OFFSET, searchForm.getOffset());
+      }
 
-        int resultCount = Queries.count(query);
-        NodeList results = cloud.getList(query);
+      log.debug("QUERY: " + query);
 
-        // Set everything on the request.
-        searchForm.setResultCount(resultCount);
-        searchForm.setResults(results);
-        request.setAttribute(GETURL, queryStringComposer.getQueryString());
+      int resultCount = Queries.count(query);
+      NodeList results = cloud.getList(query);
 
-        return super.execute(mapping, form, request, response, cloud);
-    }
+      // Set everything on the request.
+      searchForm.setResultCount(resultCount);
+      searchForm.setResults(results);
+      request.setAttribute(GETURL, queryStringComposer.getQueryString());
 
-    private void massDeleteContent(String deleteContent) {
-       if(StringUtils.isNotBlank(deleteContent)){
-          String[] deleteContents = deleteContent.split(",");
-          for(String content : deleteContents) {
-             deleteContent(content);
-          }
-       }
-    }
+      return super.execute(mapping, form, request, response, cloud);
+   }
 
-    private void deleteContent(String deleteContentRequest) {
-        StringTokenizer commandAndNumber = new 
StringTokenizer(deleteContentRequest, ":");
-        String command = commandAndNumber.nextToken();
-        String nunmber = commandAndNumber.nextToken();
+   private void massDeleteContent(String deleteContent) {
+      if (StringUtils.isNotBlank(deleteContent)) {
+         String[] deleteContents = deleteContent.split(",");
+         for (String content : deleteContents) {
+            deleteContent(content);
+         }
+      }
+   }
 
-        if ("moveToRecyclebin".equals(command)) {
-            moveContentToRecyclebin(nunmber);
-        }
+   private void deleteContent(String deleteContentRequest) {
+      StringTokenizer commandAndNumber = new 
StringTokenizer(deleteContentRequest, ":");
+      String command = commandAndNumber.nextToken();
+      String nunmber = commandAndNumber.nextToken();
 
-        if ("permanentDelete".equals(command)) {
-            deleteContentPermanent(nunmber);
-        }
+      if ("moveToRecyclebin".equals(command)) {
+         moveContentToRecyclebin(nunmber);
+      }
 
-    }
+      if ("permanentDelete".equals(command)) {
+         deleteContentPermanent(nunmber);
+      }
 
-    private void deleteContentPermanent(String objectnumber) {
-        CloudProvider provider = CloudProviderFactory.getCloudProvider();
-        Cloud cloud = provider.getCloud();
+   }
 
-        Node objectNode = cloud.getNode(objectnumber);
-        if (Workflow.hasWorkflow(objectNode)) {
-            // at this time complete is the same as remove
-            Workflow.complete(objectNode);
-        }
-        objectNode.delete(true);
+   private void deleteContentPermanent(String objectnumber) {
+      CloudProvider provider = CloudProviderFactory.getCloudProvider();
+      Cloud cloud = provider.getCloud();
 
-    }
+      Node objectNode = cloud.getNode(objectnumber);
+      if (Workflow.hasWorkflow(objectNode)) {
+         // at this time complete is the same as remove
+         Workflow.complete(objectNode);
+      }
+      objectNode.delete(true);
 
-    private void moveContentToRecyclebin(String nunmber) {
-        CloudProvider provider = CloudProviderFactory.getCloudProvider();
-        Cloud cloud = provider.getCloud();
+   }
 
-        Node objectNode = cloud.getNode(nunmber);
-        RepositoryUtil.removeCreationRelForContent(objectNode);
-        RepositoryUtil.removeContentFromAllChannels(objectNode);
-        RepositoryUtil.addContentToChannel(objectNode, 
RepositoryUtil.getTrash(cloud));
+   private void moveContentToRecyclebin(String nunmber) {
+      CloudProvider provider = CloudProviderFactory.getCloudProvider();
+      Cloud cloud = provider.getCloud();
 
-        // unpublish and remove from workflow
-        Publish.remove(objectNode);
-        Workflow.remove(objectNode);
-        Publish.unpublish(objectNode);
-    }
+      Node objectNode = cloud.getNode(nunmber);
+      RepositoryUtil.removeCreationRelForContent(objectNode);
+      RepositoryUtil.removeContentFromAllChannels(objectNode);
+      RepositoryUtil.addContentToChannel(objectNode, 
RepositoryUtil.getTrash(cloud));
 
+      // unpublish and remove from workflow
+      Publish.remove(objectNode);
+      Workflow.remove(objectNode);
+      Publish.unpublish(objectNode);
+   }
+
 }

Modified: 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchInitAction.java
===================================================================
--- 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchInitAction.java
    2009-08-20 06:28:50 UTC (rev 38055)
+++ 
CMSContainer/branches/b1_6/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/SearchInitAction.java
    2009-08-20 06:29:56 UTC (rev 38056)
@@ -1,28 +1,28 @@
 package com.finalist.cmsc.repository.forms;
 
-import java.util.*;
+import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.struts.action.ActionForm;
 import org.apache.struts.action.ActionForward;
 import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionForm;
-import org.apache.struts.util.LabelValueBean;
-import org.mmbase.bridge.*;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.NodeManager;
 import org.mmbase.storage.search.SortOrder;
 
 import com.finalist.cmsc.repository.ContentElementUtil;
 import com.finalist.cmsc.struts.MMBaseAction;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
 public class SearchInitAction extends MMBaseAction {
 
    private static final String TYPES_LIST = "typesList";
    private static final String TITLE = "title";
    private static final String ONLYTYPE = "onlytype";
    private static final String POSITION = "position";
+
    @Override
    public ActionForward execute(ActionMapping mapping, ActionForm form, 
HttpServletRequest request,
          HttpServletResponse response, Cloud cloud) throws Exception {
@@ -31,7 +31,7 @@
 
       String position = request.getParameter(POSITION);
       String onlytype = request.getParameter(ONLYTYPE);
-      
+
       if (StringUtils.isEmpty(searchForm.getExpiredate())) {
          searchForm.setExpiredate("0");
       }
@@ -51,18 +51,8 @@
       if (searchForm.getDirection() != SortOrder.ORDER_DESCENDING) {
          searchForm.setDirection(SortOrder.ORDER_ASCENDING);
       }
-      List<LabelValueBean> typesList = new ArrayList<LabelValueBean>();
-
       List<NodeManager> types = ContentElementUtil.getContentTypes(cloud);
-      List<String> hiddenTypes = ContentElementUtil.getHiddenTypes();
-      for (NodeManager manager : types) {
-         String name = manager.getName();
-         if (!hiddenTypes.contains(name)) {
-            LabelValueBean bean = new LabelValueBean(manager.getGUIName(), 
name);
-            typesList.add(bean);
-         }
-      }
-      addToRequest(request, TYPES_LIST, typesList);
+      addToRequest(request, "typesList", 
ContentElementUtil.getValidTypesList(cloud, types));
       addToRequest(request, POSITION, position);
       addToRequest(request, TITLE, searchForm.getTitle());
       addToRequest(request, ONLYTYPE, onlytype);

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to