ref #7428: update all name editors involved when executing subtree operations
authorKatja Luther <k.luther@bgbm.org>
Wed, 27 Mar 2019 14:45:26 +0000 (15:45 +0100)
committerKatja Luther <k.luther@bgbm.org>
Wed, 27 Mar 2019 14:45:26 +0000 (15:45 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonNameEditorE4.java

index bcf42d545cbbc538b168fbeb33e153bf641445b2..614bd7aff6c2b230f5cba05f9488d1ac9dfca8ae 100644 (file)
@@ -61,6 +61,7 @@ import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
+import eu.etaxonomy.cdm.model.name.TaxonName;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
@@ -752,6 +753,24 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         }
     }
 
+    @Inject
+    @Optional
+    private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) List<CdmBase> cdmBases) {
+
+        for (CdmBase cdmBase: cdmBases){
+            if (cdmBase instanceof Taxon || cdmBase instanceof TaxonName){
+                if ((EventUtility.getTaxonEditor() != null && EventUtility.getTaxonEditor().equals(this))
+                        || (this.taxon != null && (this.taxon.equals(cdmBase)
+                                || (this.taxon.getName() != null && this.taxon.getName().equals(cdmBase))))) {
+                    EPartService partService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EPartService.class);
+                    EModelService modelService = TaxeditorEditorPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getService(EModelService.class);
+                    EditorUtil.openTaxonBaseE4(this.getTaxon().getUuid(), modelService, partService, application);
+
+                }
+            }
+        }
+    }
+
     @Inject
     @Optional
     private void updateView(@UIEventTopic(WorkbenchEventConstants.REFRESH_NAME_EDITOR) UUID cdmbaseUuid) {