import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteDescriptionElementOperation;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteSpecimenDescriptionOperation;
import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonDescriptionOperation;
+import eu.etaxonomy.taxeditor.editor.view.descriptive.operation.DeleteTaxonNameDescriptionOperation;
import eu.etaxonomy.taxeditor.editor.view.media.operation.DeleteMediaOperation;
import eu.etaxonomy.taxeditor.editor.view.media.operation.RemoveImageFromDescriptionElementOperation;
import eu.etaxonomy.taxeditor.model.AbstractUtility;
Object object = iter.next();
// TaxonDescription
- if(object instanceof TaxonDescription){
+ if(object instanceof TaxonDescription ){
operations.add(new DeleteTaxonDescriptionOperation(label, undoContext, (TaxonDescription) object, factualDataPart, cdmEntitySessionEnabled));
}
+ if(object instanceof TaxonNameDescription ){
+ operations.add(new DeleteTaxonNameDescriptionOperation(label, undoContext, (TaxonNameDescription) object, factualDataPart, cdmEntitySessionEnabled));
+ }
else if(object instanceof SpecimenDescription){
operations.add(new DeleteSpecimenDescriptionOperation(label, undoContext, (SpecimenDescription) object, factualDataPart, cdmEntitySessionEnabled)) ;
}
--- /dev/null
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.editor.view.descriptive.operation;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.commands.operations.IUndoContext;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+
+import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.model.description.TaxonNameDescription;
+import eu.etaxonomy.cdm.model.name.TaxonName;
+import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
+import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
+import eu.etaxonomy.taxeditor.store.CdmStore;
+
+/**
+ * @author k.luther
+ * @since 4 Mar 2019
+ *
+ */
+public class DeleteTaxonNameDescriptionOperation extends AbstractPostOperation<TaxonName> {
+ private final TaxonNameDescription description;
+ /**
+ * @param label
+ * @param undoContext
+ * @param element
+ * @param postOperationEnabled
+ * @param cdmEntitySessionEnabled
+ */
+ public DeleteTaxonNameDescriptionOperation(String label, IUndoContext undoContext, TaxonNameDescription description,
+ IPostOperationEnabled postOperationEnabled, ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
+ super(label, undoContext, description.getTaxonName(), postOperationEnabled, cdmEntitySessionEnabled);
+ this.description = description;
+
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+
+ monitor.worked(20);
+ if (description != null && description.isPersited()){
+// element.removeDescription(description);
+ CdmStore.getService(IDescriptionService.class).deleteDescription(description.getUuid());
+ element.removeDescription(description);
+ return postExecute(element);
+ }else if (description != null && !description.isPersited()){
+ element.removeDescription(description);
+ return Status.OK_STATUS;
+ }
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ return execute(monitor, info);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ element.addDescription(description);
+
+ return postExecute(null);
+ }
+
+}