Update of 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
In directory 
james.mmbase.org:/tmp/cvs-serv28048/src/java/com/finalist/newsletter/util

Modified Files:
        CloneUtil.java NewsletterPublicationUtil.java 
Log Message:
CMSC-811 auto create publication,clone  attachment when add publication


See also: 
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util
See also: http://www.mmbase.org/jira/browse/CMSC-811


Index: CloneUtil.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/CloneUtil.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- CloneUtil.java      8 Jan 2008 10:45:00 -0000       1.1
+++ CloneUtil.java      4 May 2008 12:02:12 -0000       1.2
@@ -202,9 +202,9 @@
          String relName = relationTypeNode.getStringValue("sname");
          relationManager = 
localRelation.getCloud().getRelationManager(sourceNode.getNodeManager().getName(),
                destinationNode.getNodeManager().getName(), relName);
+
       }
       Relation newRelation = relationManager.createRelation(sourceNode, 
destinationNode);
-
       FieldIterator fields = 
localRelation.getNodeManager().getFields().fieldIterator();
       while (fields.hasNext()) {
          Field field = fields.nextField();
@@ -248,7 +248,8 @@
          Relation rel = ri.nextRelation();
          if (rel.getSource().getNumber() == localNode.getNumber()) {
             cloneRelation(rel, newNode, rel.getDestination());
-         } else {
+         } 
+         else {
             if (rel.getDestination().getNumber() == localNode.getNumber()) {
                cloneRelation(rel, rel.getSource(), newNode);
             }


Index: NewsletterPublicationUtil.java
===================================================================
RCS file: 
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/util/NewsletterPublicationUtil.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- NewsletterPublicationUtil.java      30 Apr 2008 07:30:10 -0000      1.21
+++ NewsletterPublicationUtil.java      4 May 2008 12:02:12 -0000       1.22
@@ -19,36 +19,43 @@
 
 public abstract class NewsletterPublicationUtil {
 
-   private static void copyContent(Node oldThemeNode, Node newThemeNode) {
-      RelationList contentList = 
oldThemeNode.getRelations("newslettercontent");
+   private static void copyContent(Node oldTermNode, Node newTermNode) {
+      RelationList contentList = oldTermNode.getRelations("newslettercontent");
       if (contentList != null && contentList.size() > 0) {
          for (int r = 0; r < contentList.size(); r++) {
             Relation contentRelation = contentList.getRelation(r);
             Node contentNode = contentRelation.getSource();
-            RelationUtil.createRelation(newThemeNode, contentNode, 
"newslettercontent");
+            RelationUtil.createRelation(newTermNode, contentNode, 
"newslettercontent");
          }
       }
    }
 
    private static void copyOtherRelations(Node newsletterNode, Node 
publicationNode) {
       PagesUtil.copyPageRelations(newsletterNode, publicationNode);
+      copyImageAndAttachment(newsletterNode, publicationNode);
    }
 
-   private static void copyThemesAndContent(Node newsletterNode, Node 
publicationNode, boolean copyContent) {
-      copyThemesAndContent(newsletterNode, publicationNode, copyContent, 
"newslettertheme");
-      copyThemesAndContent(newsletterNode, publicationNode, copyContent, 
"defaulttheme");
+   
+   private static void copyImageAndAttachment(Node newsletterNode, Node 
publicationNode) {
+      
CloneUtil.cloneRelations(newsletterNode,publicationNode,"namedrel","images");
+      
CloneUtil.cloneRelations(newsletterNode,publicationNode,"posrel","attachments");
+   }
+   
+   private static void copyTermsAndContent(Node newsletterNode, Node 
publicationNode, boolean copyContent) {
+      copyTermsAndContent(newsletterNode, publicationNode, copyContent, 
"newslettertheme");
+      copyTermsAndContent(newsletterNode, publicationNode, copyContent, 
"defaulttheme");
    }
 
-   private static void copyThemesAndContent(Node newsletterNode, Node 
publicationNode, boolean copyContent, final String relationName) {
-      NodeList newsletterThemeList = 
newsletterNode.getRelatedNodes("newslettertheme", relationName, "DESTINATION");
-      if (newsletterThemeList != null) {
-         for (int i = 0; i < newsletterThemeList.size(); i++) {
-            Node oldThemeNode = newsletterThemeList.getNode(i);
-            Node newThemeNode = CloneUtil.cloneNode(oldThemeNode, 
"newsletterpublicationtheme");
-            if (newThemeNode != null) {
-               RelationUtil.createRelation(publicationNode, newThemeNode, 
relationName);
+   private static void copyTermsAndContent(Node newsletterNode, Node 
publicationNode, boolean copyContent, final String relationName) {
+      NodeList newsletterTermList = newsletterNode.getRelatedNodes("term", 
relationName, "DESTINATION");
+      if (newsletterTermList != null) {
+         for (int i = 0; i < newsletterTermList.size(); i++) {
+            Node oldTermNode = newsletterTermList.getNode(i);
+            Node newTermNode = CloneUtil.cloneNode(oldTermNode, 
"newsletterpublicationtheme");
+            if (newTermNode != null) {
+               RelationUtil.createRelation(publicationNode, newTermNode, 
relationName);
                if (copyContent == true) {
-                  copyContent(oldThemeNode, newThemeNode);
+                  copyContent(oldTermNode, newTermNode);
                }
             }
          }
@@ -76,7 +83,7 @@
             publicationNode.setStringValue("status", 
Publication.STATUS.INITIAL.toString());
             publicationNode.commit();
 
-            copyThemesAndContent(newsletterNode, publicationNode, copyContent);
+           // copyTermsAndContent(newsletterNode, publicationNode, 
copyContent);
             copyOtherRelations(newsletterNode, publicationNode);
             NavigationUtil.appendChild(newsletterNode, publicationNode);
             Node layoutNode = PagesUtil.getLayout(publicationNode);
@@ -130,7 +137,7 @@
       NavigationUtil.deleteItem(publicationNode);
    }
 
-   public static List<String> getAllThemesForPublication(int 
publicationNumber) {
+   public static List<String> getAllTermsForPublication(int publicationNumber) 
{
       List<String> themes = new ArrayList<String>();
       Cloud cloud = CloudProviderFactory.getCloudProvider().getCloud();
       Node newsletterNode = cloud.getNode(publicationNumber);
_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to