Author: asanso
Date: Fri Nov  2 18:09:38 2012
New Revision: 1405080

URL: http://svn.apache.org/viewvc?rev=1405080&view=rev
Log:
SLING-2636 - [Tooling] Add ability to Import from Sling Repository. Adding some 
import content logic

Modified:
    
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java

Modified: 
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java?rev=1405080&r1=1405079&r2=1405080&view=diff
==============================================================================
--- 
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java
 (original)
+++ 
sling/whiteboard/asanso/plugins/eclipse/slingclipse-plugin/src/org/apache/sling/slingclipse/ui/wizards/ImportWizard.java
 Fri Nov  2 18:09:38 2012
@@ -19,6 +19,7 @@ package org.apache.sling.slingclipse.ui.
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.util.Iterator;
 
@@ -27,6 +28,7 @@ import org.apache.sling.slingclipse.api.
 import org.apache.sling.slingclipse.api.RepositoryInfo;
 import org.apache.sling.slingclipse.api.ResponseType;
 import org.apache.sling.slingclipse.helper.SlingclipseHelper;
+import org.apache.sling.slingclipse.preferences.PreferencesMessages;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
@@ -34,6 +36,7 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.IJobChangeEvent;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.ui.IImportWizard;
@@ -62,12 +65,17 @@ public class ImportWizard extends Wizard
         * @see org.eclipse.jface.wizard.Wizard#performFinish()
         */
        public boolean performFinish() {
-               
+               IPreferenceStore store = 
SlingclipsePlugin.getDefault().getPreferenceStore();
+               boolean 
autoSync=store.getBoolean(PreferencesMessages.REPOSITORY_AUTO_SYNC.getKey());
                try {
+                       
store.setValue(PreferencesMessages.REPOSITORY_AUTO_SYNC.getKey(), false);
                        importFromRepository();
                } catch ( Exception e) {
                        SlingclipsePlugin.getDefault().getLog().
                        log(new CoreException(new Status(Status.ERROR, 
SlingclipsePlugin.PLUGIN_ID, "Failed importing repository ", e)).getStatus());
+               }finally{
+                       //restore to the original value
+                       
store.setValue(PreferencesMessages.REPOSITORY_AUTO_SYNC.getKey(), autoSync);
                }
                
                if (mainPage.isPageComplete()) {
@@ -151,12 +159,13 @@ public class ImportWizard extends Wizard
                        //TODO create folder
                }else if(Repository.NT_RESOURCE.equals(primaryType)){
                        //DO NOTHING
-               }else{
-                       //TODO create folder plus .content.xml
+               }else{          
+                       createFolder(path, destinationPath);
                        String content=repository.getNodeContent(path, 
ResponseType.JSON);
                        JSONObject jsonContent = new JSONObject(content);
                        jsonContent.append("tagName", Repository.JCR_ROOT);
                        String contentXml = JSONML.toString(jsonContent);       
        
+                       createFile(path+"/.content.xml", contentXml, 
destinationPath);
                }
                
                for (Iterator<String> keys = json.keys(); keys.hasNext();) {
@@ -173,6 +182,15 @@ public class ImportWizard extends Wizard
                        createFile(path, node,destinationPath);
        }
        
+       private void createFolder(String path ,String destinationPath){
+               File file = new File (destinationPath+path);
+               if (!file.getParentFile().exists()){
+                       file.getParentFile().mkdirs();
+               }                               
+               if (!file.exists()){
+                       file.mkdirs();
+               }                       
+       }
        
        private void createFile(String path, byte[] content,String 
destinationPath) throws IOException{         
                FileOutputStream fop = null;
@@ -194,6 +212,26 @@ public class ImportWizard extends Wizard
                }
        }
        
+       private void createFile(String path, String content,String 
destinationPath) throws IOException{         
+               FileWriter fileWriter = null;
+               try{
+                       File file = new File (destinationPath+path);
+                       if (!file.getParentFile().exists()){
+                               file.getParentFile().mkdirs();
+                       }                               
+                       if (!file.exists()){
+                               file.createNewFile();
+                       }                       
+            fileWriter = new FileWriter(file);
+            fileWriter.write(content);
+            fileWriter.close();
+               }finally{
+                       if (fileWriter!=null){
+                               fileWriter.close();
+                       }
+               }
+       }
+       
        
 
 }


Reply via email to