Author: asanso
Date: Mon Nov  5 09:11:20 2012
New Revision: 1405718

URL: http://svn.apache.org/viewvc?rev=1405718&view=rev
Log:
SLING-2647 - Track Import Progress. Applying patch from Dqn Kico.

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=1405718&r1=1405717&r2=1405718&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
 Mon Nov  5 09:11:20 2012
@@ -17,7 +17,6 @@
 package org.apache.sling.slingclipse.ui.wizards;
 
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -65,32 +64,47 @@ 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()) {
+
+                       final Repository repository = 
SlingclipsePlugin.getDefault().getRepository();
+                       RepositoryInfo repositoryInfo = new RepositoryInfo(
+                                       mainPage.getUsername(),
+                                       mainPage.getPassword(),
+                                       mainPage.getRepositoryUrl());
+                       repository.setRepositoryInfo(repositoryInfo);
+        
+                       final String destinationPath = 
mainPage.getIntoFolderPath();
+                       final String repositoryPath = 
mainPage.getRepositoryPath();
+                       
                        Job job = new Job("Import") {
+                               
 
                                protected IStatus run(IProgressMonitor monitor) 
{
-                                       monitor.setTaskName("Starting 
import...");
-                                       monitor.worked(10);
+                                       monitor.setTaskName("Loading 
configuration...");
+                                       monitor.worked(5);
                                        
-                                       // TODO: Actually run the job here
+                                       IPreferenceStore store = 
SlingclipsePlugin.getDefault().getPreferenceStore();
+                                       boolean 
autoSync=store.getBoolean(PreferencesMessages.REPOSITORY_AUTO_SYNC.getKey());
                                        try {
-                                               long numMillisecondsToSleep = 
5000; // 5 seconds
-                                               
Thread.sleep(numMillisecondsToSleep);
-                                       } catch (InterruptedException e) {
+                                               
store.setValue(PreferencesMessages.REPOSITORY_AUTO_SYNC.getKey(), false);
+
+                                               // TODO: We should try to make 
this give 'nice' progress feedback (aka here's what I'm processing)
+                                               
monitor.setTaskName("Importing...");
+                                               monitor.worked(10);
+                                               
crawlChildrenAndImport(repository, repositoryPath,destinationPath);
+                                               
+                                               monitor.setTaskName("Import 
Complete");
+                                               monitor.worked(100);
+                                       } 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);
                                        }
+                                       
                                        return Status.OK_STATUS;
                                }
                        };
@@ -134,20 +148,7 @@ public class ImportWizard extends Wizard
                addPage(mainPage);
        }
        
-       private void importFromRepository() throws JSONException, IOException{
-               Repository repository = 
SlingclipsePlugin.getDefault().getRepository();
-               RepositoryInfo repositoryInfo = new RepositoryInfo(
-                               mainPage.getUsername(),
-                               mainPage.getPassword(),
-                               mainPage.getRepositoryUrl());
-               repository.setRepositoryInfo(repositoryInfo);
- 
-               String destinationPath= mainPage.getIntoFolderPath();
-                               
-               String repositoryPath=mainPage.getRepositoryPath();
-               crawlChildrenAndImport(repository, 
repositoryPath,destinationPath);
-       }
-       
+       // TODO: This probably should be pushed into the service layer
        private void crawlChildrenAndImport(Repository repository,String 
path,String destinationPath) throws JSONException, IOException{
                String 
children=repository.listChildrenNode(path,ResponseType.JSON); 
                JSONObject json = new JSONObject(children);


Reply via email to