Update of 
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow
In directory 
james.mmbase.org:/tmp/cvs-serv13300/workflow/src/java/com/finalist/cmsc/workflow

Modified Files:
        WorkflowManager.java 
Log Message:
CMSC-1228 Assets: new content types that extends articles do not show up in the 
Workflow window (code refactor)


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow
See also: http://www.mmbase.org/jira/browse/CMSC-1228


Index: WorkflowManager.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Modules/workflow/src/java/com/finalist/cmsc/workflow/WorkflowManager.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- WorkflowManager.java        10 Jan 2009 12:57:17 -0000      1.20
+++ WorkflowManager.java        13 Jan 2009 05:10:15 -0000      1.21
@@ -1,11 +1,11 @@
 package com.finalist.cmsc.workflow;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
+import java.util.TreeSet;
 
 import org.apache.commons.lang.StringUtils;
 import org.mmbase.bridge.Cloud;
@@ -14,7 +14,6 @@
 import org.mmbase.bridge.NodeList;
 import org.mmbase.bridge.NodeManager;
 import org.mmbase.bridge.NodeQuery;
-import org.mmbase.bridge.NotFoundException;
 import org.mmbase.bridge.Query;
 import org.mmbase.bridge.RelationManager;
 import org.mmbase.module.core.MMBase;
@@ -25,6 +24,7 @@
 import org.mmbase.storage.search.Constraint;
 import org.mmbase.storage.search.FieldCompareConstraint;
 import org.mmbase.storage.search.FieldValueConstraint;
+import org.mmbase.storage.search.FieldValueInConstraint;
 import org.mmbase.storage.search.RelationStep;
 import org.mmbase.storage.search.Step;
 import org.mmbase.util.logging.Logger;
@@ -375,9 +375,6 @@
       NodeManager workflow = getManager();
       Node wfItem = workflow.createNode();
       wfItem.setStringValue(TYPE_FIELD, type);
-      if(nodetype!=null && isExtendedNodetype(nodetype)){
-         nodetype=getParentNodetype(cloud, nodetype);
-      }
       wfItem.setStringValue(NODETYPE_FIELD, nodetype);
       changeWorkflow(wfItem, status, remark);
 
@@ -666,11 +663,16 @@
       return constraint;
    }
 
-   public static Constraint getNodetypeConstraint(NodeQuery query, String 
nodetype) {
+   public static Query addNodetypeConstraint(Cloud cloud, NodeQuery query, 
String nodetype) {
+      Query typesQuery = cloud.getNodeManager(nodetype).createQuery();
+      NodeList types = typesQuery.getList();
+      List<String> typeNames = new ArrayList<String>(); 
+      for (int i = 0; i < types.size(); i++) {
+         typeNames.add(((Node)types.get(i)).getNodeManager().getName());
+      }
       Field field = getManager(query.getCloud()).getField(NODETYPE_FIELD);
-      FieldValueConstraint constraint = 
query.createConstraint(query.getStepField(field), FieldCompareConstraint.EQUAL,
-            nodetype);
-      return constraint;
+      FieldValueInConstraint constraint = 
query.createConstraint(query.getStepField(field), new 
TreeSet<String>(typeNames));
+      return query;
    }
    
    public static Query createStatusQuery(Cloud cloud) {
@@ -697,28 +699,5 @@
       return clone;
    }
    
-   private String getParentNodetype(Cloud cloud, String nodetypeStr) {
-      try {
-         NodeManager parentManager = 
cloud.getNodeManager(nodetypeStr).getParent();
-         while(isExtendedNodetype(parentManager.getName())){
-            parentManager = parentManager.getParent();
-         }
-         return parentManager.getName();
-      } catch (NotFoundException nfe) {
-         // Ran out of NodeManager parents
-      }
-      return null;
-   }
-
-   private boolean isExtendedNodetype(String nodetypeStr) {
-      List<String> parentNodetypes=new ArrayList<String>();
-      Collections.addAll(parentNodetypes, "article", "banners", "link", 
"faqitem", "images", "attachments", "urls");
-      if(parentNodetypes.contains(nodetypeStr)){
-         return false;
-      }else {
-         return true;
-      }
-   }
-
 
 }
\ No newline at end of file
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to