You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by pa...@apache.org on 2007/07/11 17:05:40 UTC

svn commit: r555295 - /directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/ExportSchemasAsXmlWizard.java

Author: pamarcelot
Date: Wed Jul 11 08:05:37 2007
New Revision: 555295

URL: http://svn.apache.org/viewvc?view=rev&rev=555295
Log:
Added a progress monitor to report the progress of the export within the wizard.

Modified:
    directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/ExportSchemasAsXmlWizard.java

Modified: directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/ExportSchemasAsXmlWizard.java
URL: http://svn.apache.org/viewvc/directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/ExportSchemasAsXmlWizard.java?view=diff&rev=555295&r1=555294&r2=555295
==============================================================================
--- directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/ExportSchemasAsXmlWizard.java (original)
+++ directory/studio/trunk/studio-apacheds-schemaeditor/src/main/java/org/apache/directory/studio/apacheds/schemaeditor/view/wizards/ExportSchemasAsXmlWizard.java Wed Jul 11 08:05:37 2007
@@ -23,9 +23,12 @@
 import java.io.BufferedWriter;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
 
 import org.apache.directory.studio.apacheds.schemaeditor.model.Schema;
 import org.apache.directory.studio.apacheds.schemaeditor.model.io.XMLSchemaFileExporter;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.ui.IExportWizard;
@@ -62,27 +65,48 @@
      */
     public boolean performFinish()
     {
-        Schema[] selectedSchemas = page.getSelectedSchemas();
+        final Schema[] selectedSchemas = page.getSelectedSchemas();
 
         int exportType = page.getExportType();
         if ( exportType == ExportSchemasAsXmlWizardPage.EXPORT_MULTIPLE_FILES )
         {
-            String exportDirectory = page.getExportDirectory();
-
-            for ( Schema schema : selectedSchemas )
+            final String exportDirectory = page.getExportDirectory();
+            try
             {
-                try
-                {
-                    BufferedWriter buffWriter = new BufferedWriter( new FileWriter( exportDirectory + "/"
-                        + schema.getName() + ".xml" ) );
-                    buffWriter.write( XMLSchemaFileExporter.toSourceCode( schema ) );
-                    buffWriter.close();
-                }
-                catch ( IOException e )
+                getContainer().run( true, true, new IRunnableWithProgress()
                 {
-                    // TODO Auto-generated catch block
-                    e.printStackTrace();
-                }
+                    public void run( IProgressMonitor monitor )
+                    {
+                        monitor.beginTask( "Exporting schemas: ", selectedSchemas.length );
+                        for ( Schema schema : selectedSchemas )
+                        {
+                            monitor.subTask( schema.getName() );
+
+                            try
+                            {
+                                BufferedWriter buffWriter = new BufferedWriter( new FileWriter( exportDirectory + "/"
+                                    + schema.getName() + ".xml" ) );
+                                buffWriter.write( XMLSchemaFileExporter.toSourceCode( schema ) );
+                                buffWriter.close();
+                            }
+                            catch ( IOException e )
+                            {
+                                // TODO Auto-generated catch block
+                                e.printStackTrace();
+                            }
+                            monitor.worked( 1 );
+                        }
+                        monitor.done();
+                    }
+                } );
+            }
+            catch ( InvocationTargetException e )
+            {
+                // Nothing to do (it will never occur)
+            }
+            catch ( InterruptedException e )
+            {
+                // Nothing to do.
             }
         }
         else if ( exportType == ExportSchemasAsXmlWizardPage.EXPORT_SINGLE_FILE )
@@ -99,6 +123,6 @@
      */
     public void init( IWorkbench workbench, IStructuredSelection selection )
     {
-        // Nothing to do
+        setNeedsProgressMonitor( true );
     }
 }