ref #6668 Update taxon name editor when deleting the type specimen
authorPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 2 Mar 2018 07:53:01 +0000 (08:53 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 2 Mar 2018 07:53:01 +0000 (08:53 +0100)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/TaxonNameEditorE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/handler/DeleteDerivateHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/event/WorkbenchEventConstants.java

index 936176aeb53e98ef3e38504e6fa611969e5c387b..2be9d88b0fc2abf46abb65f408d4059f6befd495 100644 (file)
@@ -29,9 +29,11 @@ import org.eclipse.e4.core.services.events.IEventBroker;
 import org.eclipse.e4.ui.di.Focus;
 import org.eclipse.e4.ui.di.Persist;
 import org.eclipse.e4.ui.di.UIEventTopic;
+import org.eclipse.e4.ui.model.application.MApplication;
 import org.eclipse.e4.ui.model.application.ui.MDirtyable;
 import org.eclipse.e4.ui.model.application.ui.basic.MPart;
 import org.eclipse.e4.ui.services.EMenuService;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
 import org.eclipse.e4.ui.workbench.modeling.ESelectionService;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
@@ -52,6 +54,7 @@ import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
+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;
@@ -61,6 +64,7 @@ import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
+import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.ISecuredEditor;
 import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
 import eu.etaxonomy.taxeditor.editor.e4.TaxonEditorInputE4;
@@ -723,4 +727,12 @@ public class TaxonNameEditorE4 implements IConversationEnabled, IDirtyMarkable,
         }
     }
 
+    @Inject
+    @Optional
+    private void updatefromDelete(@UIEventTopic(WorkbenchEventConstants.DELETE_DERIVATIVE)DeleteResult result,
+            EPartService partService, MApplication application){
+        //TODO evaluate if update necessary based on specimen type designations
+        EditorUtil.updateEditor(this.input.getTaxonNode(), partService, application);
+    }
+
 }
index 6ccb5a00ea2e8460ea39eb660395a5650079b7e0..a4270289adcc80d6d5b847f72aeebdd7b1f6d1af 100644 (file)
@@ -34,6 +34,8 @@ import eu.etaxonomy.taxeditor.editor.AppModelId;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.l10n.Messages;
 import eu.etaxonomy.taxeditor.editor.view.derivate.DerivateView;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.model.DeleteResultMessagingUtils;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -78,6 +80,9 @@ public class DeleteDerivateHandler {
 
                 return Status.CANCEL_STATUS;
             }
+            //broadcast delete result
+            EventUtility.postEvent(WorkbenchEventConstants.DELETE_DERIVATIVE, deleteResult);
+
             if(derivateView.postOperation(null)){
                 derivateView.remove(treeNode);
 
index d2c2be22e06ca601cc4e8718c1041247f966632c..8a04225190d65c3b787cd8fe786914da9fd50be9 100644 (file)
@@ -26,6 +26,9 @@ public interface WorkbenchEventConstants {
     public static final String REFRESH_NAME_EDITOR = "REFRESH/EDITOR/NAME";
 
     public static final String REFRESH_SUPPLEMENTAL = "REFRESH/SUPPLEMENTAL";
+
     public static final String NO_FOCUS_VIEW = "FOCUS/NO";
 
+    public static final String DELETE_DERIVATIVE = "DELETE/DERIVATIVE";
+
 }