Show report text dialog after finishing import
authorPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 16 Nov 2015 07:08:02 +0000 (08:08 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Mon, 16 Nov 2015 07:08:02 +0000 (08:08 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/io/ImportManager.java

index abdad0532f4d722ea341fd18461b976eb3a0e612..b89c7d84fe624258eafdb8f74ce2d7a6d951bfd9 100644 (file)
@@ -15,6 +15,7 @@ import java.io.InputStream;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
+import java.util.List;
 import java.util.UUID;
 
 import org.apache.commons.io.IOUtils;
@@ -24,6 +25,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.core.runtime.jobs.Job;
 import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
@@ -31,6 +33,7 @@ import eu.etaxonomy.cdm.common.monitor.IRemotingProgressMonitor;
 import eu.etaxonomy.cdm.io.common.CdmDefaultImport;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator;
 import eu.etaxonomy.cdm.io.common.IImportConfigurator.SOURCE_TYPE;
+import eu.etaxonomy.cdm.io.common.ImportResult;
 import eu.etaxonomy.cdm.io.excel.taxa.NormalExplicitImportConfigurator;
 import eu.etaxonomy.cdm.io.jaxb.JaxbImportConfigurator;
 import eu.etaxonomy.cdm.io.reference.endnote.in.EndnoteImportConfigurator;
@@ -45,6 +48,7 @@ import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IPostMoniteredOperationEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 import eu.etaxonomy.taxeditor.store.internal.TaxeditorStorePlugin;
+import eu.etaxonomy.taxeditor.ui.dialog.ReportTextDialog;
 
 /**
  * <p>
@@ -107,9 +111,10 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                                CdmDefaultImport<IImportConfigurator> importer = new CdmDefaultImport<IImportConfigurator>();
                                importer.setCdmAppController(applicationConfiguration);
                                monitor.worked(5);
-
+                               ImportResult importResult = null;
                                try {
-                                       importer.invoke(configurator);
+                                       importResult = importer.invoke(configurator);
+
                                        monitor.worked(80);
                                } catch (RuntimeException e) {
                                        MessagingUtils.messageDialog(
@@ -125,10 +130,23 @@ public class ImportManager extends AbstractIOManager<IImportConfigurator> implem
                                monitor.worked(5);
                                monitor.done();
 
+
+                               final StringBuilder reportText = new StringBuilder();
+                               if(importResult!=null){
+                                   List<byte[]> reports = importResult.getReports();
+                                   for (byte[] bs : reports) {
+                        reportText.append(new String(bs));
+                    }
+                               }
                                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();
                                        }
                                });