From d12aec9da316db2bc5455157f56f36eac6ba32ce Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Wed, 10 Apr 2019 12:33:23 +0200
Subject: [PATCH] ref #8222 Delete type designations via operations
---
.../section/name/TypeDesignationSection.java | 24 ++++++-
.../DeleteTypeDesignationOperation.java | 69 +++++++++++++++++++
2 files changed, 92 insertions(+), 1 deletion(-)
create mode 100755 eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/operation/DeleteTypeDesignationOperation.java
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java
index a930d287d..1e5d53b57 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/TypeDesignationSection.java
@@ -12,7 +12,9 @@ package eu.etaxonomy.taxeditor.ui.section.name;
import java.util.Collection;
import java.util.Comparator;
+import org.eclipse.core.commands.operations.IOperationHistory;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.e4.ui.workbench.modeling.EPartService;
import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.ToolBarManager;
@@ -31,9 +33,12 @@ import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
import eu.etaxonomy.cdm.model.name.TaxonName;
import eu.etaxonomy.cdm.model.name.TypeDesignationBase;
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
+import eu.etaxonomy.taxeditor.editor.ITaxonEditor;
import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.model.AbstractUtility;
import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -42,7 +47,9 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
import eu.etaxonomy.taxeditor.ui.section.ITaxonBaseDetailSection;
+import eu.etaxonomy.taxeditor.ui.section.name.operation.DeleteTypeDesignationOperation;
import eu.etaxonomy.taxeditor.ui.section.name.type.CloneTypeWizard;
+import eu.etaxonomy.taxeditor.view.e4.details.DetailsPartE4;
/**
* @author n.hoffmann
@@ -140,7 +147,22 @@ public class TypeDesignationSection extends AbstractEntityCollectionSection {
+
+ private final TypeDesignationBase> typeDesignation;
+
+ public DeleteTypeDesignationOperation(String label, IUndoContext undoContext, TaxonName taxonName,
+ TypeDesignationBase> typeDesignation, IPostOperationEnabled postOperationEnabled,
+ ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, taxonName, postOperationEnabled, cdmEntitySessionEnabled);
+ this.typeDesignation = typeDesignation;
+
+ }
+
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ monitor.worked(20);
+ if (typeDesignation != null && typeDesignation.isPersited()){
+ if(element==null){
+ CdmStore.getService(INameService.class).deleteTypeDesignation(null, typeDesignation);
+ }
+ else{
+ CdmStore.getService(INameService.class).deleteTypeDesignation(element.getUuid(), typeDesignation.getUuid());
+ }
+ return postExecute(element);
+ }
+ return null;
+ }
+
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ return execute(monitor, info);
+ }
+
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ element.removeTypeDesignation(typeDesignation);
+ return postExecute(element);
+ }
+
+}
--
2.34.1