+++ /dev/null
-/**\r
-* Copyright (C) 2007 EDIT\r
-* European Distributed Institute of Taxonomy \r
-* http://www.e-taxonomy.eu\r
-* \r
-* The contents of this file are subject to the Mozilla Public License Version 1.1\r
-* See LICENSE.TXT at the top of this package for the full license terms.\r
-*/\r
-\r
-package eu.etaxonomy.taxeditor.operations.name;\r
-\r
-import org.apache.log4j.Logger;\r
-import org.eclipse.core.commands.ExecutionException;\r
-import org.eclipse.core.commands.operations.IUndoContext;\r
-import org.eclipse.core.runtime.IAdaptable;\r
-import org.eclipse.core.runtime.IProgressMonitor;\r
-import org.eclipse.core.runtime.IStatus;\r
-\r
-import eu.etaxonomy.cdm.model.reference.ReferenceBase;\r
-import eu.etaxonomy.cdm.model.taxon.Taxon;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationship;\r
-import eu.etaxonomy.cdm.model.taxon.TaxonRelationshipType;\r
-import eu.etaxonomy.taxeditor.operations.AbstractEditorOperation;\r
-\r
-/**\r
- * @author p.ciardelli\r
- * @created 29.01.2009\r
- * @version 1.0\r
- */\r
-public class RemoveConceptRelationOperation extends AbstractEditorOperation {\r
- private static final Logger logger = Logger\r
- .getLogger(RemoveConceptRelationOperation.class);\r
- \r
- private Taxon relatedTaxon;\r
- private TaxonRelationshipType relationshipType;\r
- private ReferenceBase citation;\r
- private String microcitation;\r
- private TaxonRelationship relationship; \r
-\r
- public RemoveConceptRelationOperation(String label,\r
- IUndoContext undoContext, Taxon taxon, Taxon relatedTaxon,\r
- TaxonRelationshipType relationshipType) {\r
- super(label, undoContext, taxon);\r
- \r
- this.relatedTaxon = relatedTaxon;\r
- this.relationshipType = relationshipType;\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.core.commands.operations.AbstractOperation#execute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
- */\r
- @Override\r
- public IStatus execute(IProgressMonitor monitor, IAdaptable info)\r
- throws ExecutionException {\r
- \r
- // Find relation, save citation information\r
- for (TaxonRelationship relationship : taxon.getTaxonRelations()) {\r
- if (relationship.getType().equals(relationshipType)\r
- && relationship.getFromTaxon().equals(relatedTaxon)) {\r
- citation = relationship.getCitation();\r
- microcitation = relationship.getCitationMicroReference();\r
- this.relationship = relationship; \r
- }\r
- }\r
- \r
- // Remove relation from taxon\r
- taxon.removeTaxonRelation(relationship);\r
- \r
- return redrawOpenEditor();\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.core.commands.operations.AbstractOperation#redo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
- */\r
- @Override\r
- public IStatus redo(IProgressMonitor monitor, IAdaptable info)\r
- throws ExecutionException {\r
- return execute(monitor, info);\r
- }\r
-\r
- /* (non-Javadoc)\r
- * @see org.eclipse.core.commands.operations.AbstractOperation#undo(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)\r
- */\r
- @Override\r
- public IStatus undo(IProgressMonitor monitor, IAdaptable info)\r
- throws ExecutionException {\r
- \r
-// relatedTaxon.addTaxonRelation(relationship); // don't do nothin'\r
- taxon.addTaxonRelation(relatedTaxon, relationshipType, citation, microcitation);\r
- \r
- return redrawOpenEditor();\r
- }\r
-}\r