Author: tmortagne
Date: 2007-10-04 17:47:26 +0200 (Thu, 04 Oct 2007)
New Revision: 5285

Modified:
   
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManager.java
   
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManagerPluginApi.java
Log:
XAWM-11: Temporary implement "docsToLink" applicationManager feature using 
"#includeTopic" velocity macro.

Modified: 
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManager.java
===================================================================
--- 
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManager.java
     2007-10-04 15:45:50 UTC (rev 5284)
+++ 
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManager.java
     2007-10-04 15:47:26 UTC (rev 5285)
@@ -184,26 +184,55 @@
 
         return docsToInclude;
     }
+    
+    private Collection getDocsNameToLink(String wiki, XWikiContext context) 
throws XWikiException
+    {
+        // Get applications manger
+        ApplicationManagerPluginApi appmanager =
+            (ApplicationManagerPluginApi) context.getWiki().getPluginApi(
+                ApplicationManagerPlugin.PLUGIN_NAME, context);
 
+        if (appmanager == null)
+            return null;
+
+        // //////////////////////////////////
+        // Get documents to link
+
+        String database = context.getDatabase();
+
+        Collection docsToLink = null;
+
+        try {
+            context.setDatabase(wiki);
+
+            XWikiApplication rootApp = appmanager.getRootApplication();
+
+            if (rootApp != null)
+                docsToLink = rootApp.getDocsNameToLink(true, context);
+            else
+                docsToLink =
+                    XWikiApplication.getDocsNameToLink(
+                        appmanager.getApplicationDocumentList(), true, 
context);
+        } finally {
+            context.setDatabase(database);
+        }
+
+        return docsToLink;
+    }
+
     private void copyWiki(String sourceWiki, String targetWiki, String 
language,
         XWikiContext context) throws XWikiException
     {
-        /*
-         * TODO : add included copy support to xwiki-core and use this code
-         * context.getWiki().copyWikiWeb(null, sourceWiki, 
getDocsNameToInclude(sourceWiki,
-         * context), targetWiki, language, true, context);
-         */
-
         XWiki xwiki = context.getWiki();
 
         // Copy all the wiki
         xwiki.copyWikiWeb(null, sourceWiki, targetWiki, language, true, 
context);
 
-        // Replace documents contents to include
         String database = context.getDatabase();
         try {
             context.setDatabase(targetWiki);
 
+            // Replace documents contents to include
             Collection docsNameToInclude = getDocsNameToInclude(sourceWiki, 
context);
             for (Iterator it = docsNameToInclude.iterator(); it.hasNext();) {
                 String docFullName = (String) it.next();
@@ -212,6 +241,15 @@
                 targetDoc.setContent("#includeInContext(\"" + sourceWiki + ":" 
+ docFullName
                     + "\")");
             }
+
+            // Replace documents contents to link
+            Collection docsNameToLink = getDocsNameToLink(sourceWiki, context);
+            for (Iterator it = docsNameToLink.iterator(); it.hasNext();) {
+                String docFullName = (String) it.next();
+                XWikiDocument targetDoc = xwiki.getDocument(docFullName, 
context);
+
+                targetDoc.setContent("#includeTopic(\"" + sourceWiki + ":" + 
docFullName + "\")");
+            }
         } finally {
             context.setDatabase(database);
         }

Modified: 
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManagerPluginApi.java
===================================================================
--- 
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManagerPluginApi.java
    2007-10-04 15:45:50 UTC (rev 5284)
+++ 
xwiki-platform/xwiki-plugins/trunk/wiki-manager/src/main/java/com/xpn/xwiki/plugin/wikimanager/WikiManagerPluginApi.java
    2007-10-04 15:47:26 UTC (rev 5285)
@@ -315,6 +315,4 @@
 
         return listDocument;
     }
-    
-    
 }

_______________________________________________
notifications mailing list
notifications@xwiki.org
http://lists.xwiki.org/mailman/listinfo/notifications

Reply via email to