smaller changes for io result display and configuration of exports and imports
authorKatja Luther <k.luther@bgbm.org>
Fri, 9 Jun 2017 11:21:17 +0000 (13:21 +0200)
committerKatja Luther <k.luther@bgbm.org>
Fri, 9 Jun 2017 11:22:14 +0000 (13:22 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/AbstractIOManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ExportManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/ExcelDistributionUpdateWizard.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/wizard/GenericConfiguratorWizardPage.java

index 506d96bc9fb1e8abb3038190b7526a5f042f0138..a44b41f1d81cb943aedcad54c7495de2f2d56f1a 100644 (file)
@@ -9,11 +9,20 @@
 
 package eu.etaxonomy.taxeditor.io;
 
+import java.util.List;
+
+import org.apache.commons.lang.StringUtils;
 import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.progress.IProgressConstants;
 
 import eu.etaxonomy.cdm.api.application.ICdmRepository;
+import eu.etaxonomy.cdm.common.IoResultBase;
 import eu.etaxonomy.cdm.io.common.IIoConfigurator;
+import eu.etaxonomy.cdm.io.common.ImportResult;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
 
 /**
  * <p>
@@ -79,5 +88,44 @@ public abstract class AbstractIOManager<CONFIGURATOR extends IIoConfigurator> {
         * @return a {@link org.eclipse.core.runtime.jobs.Job} object.
         */
        protected abstract Job createIOJob(CONFIGURATOR configurator);
+       
+        /**
+     * @param configurator
+     * @param display
+     * @param importResult
+     */
+    protected void showResult(String importName, final Display display,
+            IoResultBase ioResult) {
+        StringBuffer reportTextTemp = ioResult.createReport();
+        final StringBuffer reportText;
+        if (StringUtils.isBlank(reportTextTemp.toString()) && ioResult instanceof ImportResult){
+            //reportTextTemp.append("No update result available");
+            //TODO: this is a workaround because the abcd import writes the report in the report part...
+               ImportResult importResult = (ImportResult)ioResult;
+            if (!importResult.getReports().isEmpty() && importResult.getReports().get(0) != null){
+                reportTextTemp = new StringBuffer();
+                if(importResult!=null){
+                    List<byte[]> reports = importResult.getReports();
+                    for (byte[] bs : reports) {
+                        if (bs != null){ reportTextTemp.append(new String(bs));}
+                    }
+                }
+            }
+        }
+        reportText = reportTextTemp;
+        if (StringUtils.isBlank(reportText.toString())){ return;}
+        display.asyncExec(new Runnable() {
+
+            @Override
+            public void run() {
+                // display reports with possibility to save
+                ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+                dialog.setTitle(importName+" Report");
+                dialog.setReportText(reportText.toString());
+                dialog.open();
+                CdmStore.getContextManager().notifyContextRefresh();
+            }
+        });
+    }
 
 }
index e518ddfa64c428bdb5e571545a9b71ecc056cdd7..14b1914496226ec4996c6223dcaf3752a81e3546 100644 (file)
@@ -9,8 +9,11 @@
 
 package eu.etaxonomy.taxeditor.io;
 
+import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -34,18 +37,15 @@ import eu.etaxonomy.cdm.io.common.ExportResult;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
 import eu.etaxonomy.cdm.io.common.IExportConfigurator;
 import eu.etaxonomy.cdm.io.common.IIoConfigurator;
-import eu.etaxonomy.cdm.common.IoResultBase;
-import eu.etaxonomy.cdm.common.IoResultBase.IoInfo;
+
 import eu.etaxonomy.cdm.io.jaxb.JaxbExportConfigurator;
 import eu.etaxonomy.cdm.io.outputmodel.OutputModelConfigurator;
 import eu.etaxonomy.cdm.io.sdd.out.SDDExportConfigurator;
 import eu.etaxonomy.cdm.io.service.IIOService;
 import eu.etaxonomy.taxeditor.model.CdmProgressMonitorAdapter;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.StoreUtil;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
-import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
 
 /**
  * <p>
@@ -180,7 +180,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> {
        public Job createIOServiceJob(final IExportConfigurator configurator, final File exportFile) {
            Assert.isNotNull(configurator, "Configuration may not be null");
 
-          // final Display display = Display.getCurrent();
+           final Display display = Display.getCurrent();
 
            Job job = new Job("Export: " + configurator.getClass().getSimpleName()) { //$NON-NLS-1$
                @Override
@@ -217,7 +217,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> {
                            logger.error(e.getStackTrace());
                        }
 
-
+                       showResult(configurator.getClass().getSimpleName(), display, result); 
 
 
                    } catch (Exception e) {
@@ -281,9 +281,8 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> {
      */
     public Job createIOServiceJob(OutputModelConfigurator configurator, String urlString) {
         Assert.isNotNull(configurator, "Configuration may not be null");
-
-        // final Display display = Display.getCurrent();
-
+        final Display display = Display.getDefault();
+        
          Job job = new Job("Export: " + configurator.getClass().getSimpleName()) { //$NON-NLS-1$
              @Override
              protected IStatus run(IProgressMonitor monitor) {
@@ -299,8 +298,12 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> {
                              if(exportData != null){
                                  File file = new File(urlString);
                                  FileOutputStream stream = new FileOutputStream(file);
-                                 stream.write(exportData);
-                                 stream.close();
+                                 Writer out = new BufferedWriter(new OutputStreamWriter(
+                                               stream, "UTF8"));
+
+                               stream.write(exportData);
+                                out.flush();
+                                stream.close();
                              }
                          } else if (result.getExportData().getType().equals(ExportResultType.MAP_BYTE_ARRAY)){
                              Map<String, byte[]> resultMap = (Map<String, byte[]>)data.getExportData();
@@ -313,6 +316,8 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> {
                                  }
                                  File file = new File(urlString+File.separator + key + fileEnding);
                                  FileOutputStream stream = new FileOutputStream(file);
+                                 Writer out = new BufferedWriter(new OutputStreamWriter(
+                                               stream, "UTF8"));
                                  stream.write(fileData);
                                  stream.close();
                              }
@@ -323,40 +328,7 @@ public class ExportManager extends AbstractIOManager<IExportConfigurator> {
                      } catch(Exception e){
                          logger.error(e.getStackTrace());
                      }
-                     final StringBuilder reportText = new StringBuilder();
-                     if(result!=null){
-                         List<IoInfo> reports = result.getErrors();
-                         reportText.append("Errors:\\r");
-                         for (IoInfo bs : reports) {
-                             reportText.append(bs.getMessage() + " - " +bs.getException().getStackTrace());
-                         }
-                         List<IoResultBase.IoInfo> warnings = result.getWarnings();
-                         reportText.append("Warnings:\\r");
-                         for (IoResultBase.IoInfo bs : warnings) {
-                             reportText.append(bs);
-                         }
-                         List<IoInfo> exceptions = result.getExceptions();
-                         reportText.append("Exceptions:\\r");
-                         for (IoInfo bs : exceptions) {
-                             reportText.append(bs.getMessage() + " - " +bs.getException().getStackTrace());
-                         }
-
-
-                     }
-                     final Display display = Display.getDefault();
-                     display.asyncExec(new Runnable() {
-
-                         @Override
-                         public void run() {
-                             // display reports with possibility to save
-                             ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
-                             dialog.setTitle(configurator.getClass().getSimpleName()+" Report");
-                             dialog.setReportText(reportText.toString());
-                             dialog.open();
-                             CdmStore.getContextManager().notifyContextRefresh();
-                         }
-                     });
-
+                     showResult(configurator.getClass().getSimpleName(), display, result);
 
 
                  } catch (Exception e) {
index 0a8856e9de522fe88d90542136f86a733d8434d0..b515f67232d162ba1a69d93c54ba6ab2ee74cf69 100644 (file)
@@ -562,42 +562,7 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
 
 
 
-    /**
-     * @param configurator
-     * @param display
-     * @param importResult
-     */
-    private void showResult(String importName, final Display display,
-            ImportResult importResult) {
-        StringBuffer reportTextTemp = importResult.createReport();
-        final StringBuffer reportText;
-        if (StringUtils.isBlank(reportTextTemp.toString())){
-            reportTextTemp.append("No update result available");
-            //TODO: this is a workaround because the abcd import writes the report in the report part...
-            if (!importResult.getReports().isEmpty() && importResult.getReports().get(0) != null){
-                reportTextTemp = new StringBuffer();
-                if(importResult!=null){
-                    List<byte[]> reports = importResult.getReports();
-                    for (byte[] bs : reports) {
-                        if (bs != null){ reportTextTemp.append(new String(bs));}
-                    }
-                }
-            }
-        }
-        reportText = reportTextTemp;
-        display.asyncExec(new Runnable() {
-
-            @Override
-            public void run() {
-                // display reports with possibility to save
-                ReportTextDialog dialog = new ReportTextDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
-                dialog.setTitle(importName+" Report");
-                dialog.setReportText(reportText.toString());
-                dialog.open();
-                CdmStore.getContextManager().notifyContextRefresh();
-            }
-        });
-    }
+   
 
 
 
index 0c5d3c3b25cc6c4919168ea7356186b94b4015c2..54b302769260e2d89e99c18384e0ffaaf8b480d0 100755 (executable)
@@ -75,6 +75,7 @@ public class ExcelDistributionUpdateWizard extends AbstractImportWizard<ExcelDis
         UUID vocUuid = dataSourcePage.getVocUuid();
 
         configurator.setAreaVocabularyUuid(vocUuid);
+        //CdmStore.getImportManager().runMoniteredOperation(configurator, new File(source), SOURCE_TYPE.INPUTSTREAM);
         Job job = CdmStore.getImportManager().createIOServiceJob(configurator);
         CdmStore.getImportManager().run(job);
 
index e586392f062c6a8e0926d7f693a16bfd687ba14c..6651d3ecd32af560109448fcdef96467a77535bf 100644 (file)
@@ -162,13 +162,18 @@ public class GenericConfiguratorWizardPage extends WizardPage {
                 return result;
             }
         });
-
-        for (Method method : methods) {
-            if (!ignoreMethods.contains( method.getName())) {
-                createCheckbox(composite, method, configurator);
-            }
-        }
-
+        
+               for (Method method : methods) {
+                       if (ignoreMethods != null){
+                           if (!ignoreMethods.contains( method.getName())) {
+                               createCheckbox(composite, method, configurator);
+                           }
+                       }else{
+                               createCheckbox(composite, method, configurator);
+                       }
+                   
+               }
+       
         // scrolledComposite.setContent(composite);
 
         setControl(composite);