Merge branch 'release/5.11.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / model / AbstractUtility.java
index 6ac2be0150efec6a7285cfaf7bfbae332be9faf4..483cc19917ab41d0ef556cdeae3fabdb1e149420 100644 (file)
@@ -66,10 +66,10 @@ import eu.etaxonomy.cdm.io.common.ExportDataWrapper;
 import eu.etaxonomy.cdm.io.common.ExportResult;
 import eu.etaxonomy.cdm.io.common.ExportResultType;
 import eu.etaxonomy.cdm.io.common.ExportType;
+import eu.etaxonomy.cdm.io.common.ImportResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.term.IEnumTerm;
 import eu.etaxonomy.taxeditor.event.EventUtility;
 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
@@ -643,11 +643,19 @@ public abstract class AbstractUtility {
 //                         for(String report : remotingMonitor.getResult()) {
                     createResult(label, showResult, remotingMonitor);
                     updateNameEditors(remotingMonitor);
+                    refreshNavigator();
                     return Status.OK_STATUS;
                 }
 
 
 
+                private void refreshNavigator() {
+                    EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
+
+                }
+
+
+
                 @Override
                 protected void canceling() {
                     CdmStore.getCurrentApplicationConfiguration().getProgressMonitorService().cancel(uuid);
@@ -691,6 +699,10 @@ public abstract class AbstractUtility {
             if (!((UpdateResult)remotingMonitor.getResult()).getExceptions().isEmpty()){
                 reportSb.append(((UpdateResult)remotingMonitor.getResult()).getExceptions().toString());
             }
+        }else if (remotingMonitor.getReports()!= null){
+            for (String o:remotingMonitor.getReports()){
+                reportSb.append(o);
+            }
         }
 //          }
         if(showResult && !StringUtils.isBlank(reportSb.toString()) && reportSb.length() != 0) {
@@ -800,19 +812,28 @@ public abstract class AbstractUtility {
     }
     public static void updateNameEditors(IRemotingProgressMonitor remotingMonitor){
         List<Taxon> taxaToUpdate = new ArrayList();
-        for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
-            Taxon taxon = null;
-            TaxonNode node = null;
-            if (object instanceof Taxon){
-                taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
+        if (remotingMonitor.getResult() instanceof UpdateResult){
+            for (CdmBase object: ((UpdateResult)remotingMonitor.getResult()).getUpdatedObjects()){
+                Taxon taxon = null;
 
+                if (object instanceof Taxon){
+                    taxon = HibernateProxyHelper.deproxy(object, Taxon.class);
 
-            }else if (object instanceof Synonym){
-                Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
-                taxon = syn.getAcceptedTaxon();
+
+                }else if (object instanceof Synonym){
+                    Synonym syn = HibernateProxyHelper.deproxy(object, Synonym.class);
+                    taxon = syn.getAcceptedTaxon();
+                }
+                taxaToUpdate.add(taxon);
+            }
+        }else if (remotingMonitor.getResult() instanceof ImportResult){
+            Map<String, Integer> result = ((ImportResult)remotingMonitor.getResult()).getUpdatedRecords();
+            for (Map.Entry<String, Integer> object: result.entrySet()){
+                //TODO
             }
-            taxaToUpdate.add(taxon);
         }
+
+
         EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAME_EDITOR, taxaToUpdate);
     }