From: Katja Luther Date: Thu, 28 Nov 2013 11:09:17 +0000 (+0000) Subject: minor X-Git-Tag: 3.6.0~861 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/97e10b7ca8041467c6a72e9cf76a23165886c2cd minor --- diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java index 7c292c52d..39acd4ff0 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java @@ -10,6 +10,8 @@ package eu.etaxonomy.taxeditor.annotatedlineeditor; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; + /** * Performs the retrieving and saving of a list of entities edited by a ListEditor, @@ -53,6 +55,7 @@ public interface IEntityPersistenceService { * * @param entity a {@link java.lang.Object} object. * @return a boolean. + * @throws ReferencedObjectUndeletableException */ - boolean delete(T entity); + boolean delete(T entity) throws ReferencedObjectUndeletableException; } diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/DeleteHandler.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/DeleteHandler.java index d1c0c6445..f08c60f92 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/DeleteHandler.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/handler/DeleteHandler.java @@ -22,8 +22,10 @@ import org.eclipse.ui.texteditor.IDocumentProvider; import eu.etaxonomy.cdm.api.application.CdmApplicationController; import eu.etaxonomy.cdm.api.service.IOccurrenceService; +import eu.etaxonomy.cdm.api.service.IReferenceService; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; +import eu.etaxonomy.cdm.model.reference.Reference; import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService; import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation; @@ -71,14 +73,16 @@ public class DeleteHandler extends AbstractHandler { LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object); try { + CdmApplicationController controller; + controller = (CdmApplicationController) CdmStore.getCurrentApplicationConfiguration(); //persistenceService.delete(object); if (object instanceof SpecimenOrObservationBase){ - CdmApplicationController controller; - - controller = (CdmApplicationController) CdmStore.getCurrentApplicationConfiguration(); IOccurrenceService service = controller.getOccurrenceService(); service.delete((SpecimenOrObservationBase)object); + } else if (object instanceof Reference){ + IReferenceService service = controller.getReferenceService(); + service.delete((Reference)object); } } catch (Exception e){ diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java index 95c0c0b20..386e714eb 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java @@ -13,8 +13,12 @@ import java.util.Arrays; import java.util.List; import java.util.UUID; +import org.eclipse.core.commands.ExecutionException; + import eu.etaxonomy.cdm.api.service.IAgentService; import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; +import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.agent.AgentBase; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator; import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider; @@ -109,9 +113,11 @@ public class AgentEditorInput extends AbstractBulkEditorInput { return CdmStore.getService(IAgentService.class).load(uuid, propertyPaths); } - /** {@inheritDoc} */ - public boolean delete(AgentBase entity) { - return CdmStore.getService(IAgentService.class).delete(entity) != null; + + public boolean delete(AgentBase entity) throws ReferencedObjectUndeletableException { + + return CdmStore.getService(IAgentService.class).delete(entity) != null; + } /** {@inheritDoc} */ diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java index b5d87769d..eb5fb3695 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.java @@ -16,6 +16,7 @@ import java.util.UUID; import eu.etaxonomy.cdm.api.service.IGroupService; import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.common.Group; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator; import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.GroupCreator; @@ -70,7 +71,7 @@ public class GroupEditorInput extends AbstractBulkEditorInput { * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object) */ @Override - public boolean delete(Group entity) { + public boolean delete(Group entity) throws ReferencedObjectUndeletableException { return CdmStore.getService(IGroupService.class).delete(entity) != null; } diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java index 617fccf59..5cec310cd 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java @@ -16,6 +16,7 @@ import java.util.UUID; import eu.etaxonomy.cdm.api.service.INameService; import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator; import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider; @@ -108,8 +109,9 @@ public class NameEditorInput extends AbstractBulkEditorInput { return CdmStore.getService(INameService.class).load(uuid, propertyPaths); } - /** {@inheritDoc} */ - public boolean delete(TaxonNameBase entity) { + /** {@inheritDoc} + * @throws ReferencedObjectUndeletableException */ + public boolean delete(TaxonNameBase entity) throws ReferencedObjectUndeletableException { return CdmStore.getService(INameService.class).delete(entity) != null; } diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java index 3f9858869..d9417cd81 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java @@ -16,6 +16,7 @@ import java.util.UUID; import eu.etaxonomy.cdm.api.service.IOccurrenceService; import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator; @@ -124,9 +125,10 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput { return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths); } - /** {@inheritDoc} */ - public boolean delete(Reference entity) { + /** {@inheritDoc} + * @throws ReferencedObjectUndeletableException */ + public boolean delete(Reference entity) throws ReferencedObjectUndeletableException { return CdmStore.getService(IReferenceService.class).delete(entity) != null; } diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java index bafce5e95..2d8a7e406 100644 --- a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java +++ b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java @@ -16,6 +16,7 @@ import java.util.UUID; import eu.etaxonomy.cdm.api.service.IUserService; import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.common.User; import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator; import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.UserCreator; @@ -70,7 +71,7 @@ public class UserEditorInput extends AbstractBulkEditorInput { * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object) */ @Override - public boolean delete(User entity) { + public boolean delete(User entity) throws ReferencedObjectUndeletableException { return CdmStore.getService(IUserService.class).delete(entity) != null; } diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java index 0ded7902e..967c481e7 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java @@ -18,6 +18,7 @@ import org.eclipse.core.runtime.IStatus; import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; import eu.etaxonomy.cdm.api.service.IPolytomousKeyService; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.description.PolytomousKey; import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation; import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; @@ -51,7 +52,11 @@ public class DeleteOperation extends AbstractPersistentPostOperation { public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException { bind(); - CdmStore.getService(IPolytomousKeyService.class).delete(key); + try{ + CdmStore.getService(IPolytomousKeyService.class).delete(key); + }catch(ReferencedObjectUndeletableException e){ + throw new ExecutionException(e.getMessage()); + } return postExecute(null); } diff --git a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java index c7b5a37a0..49c6f7796 100644 --- a/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java +++ b/eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java @@ -26,6 +26,7 @@ import eu.etaxonomy.cdm.api.service.ITaxonNodeService; import eu.etaxonomy.cdm.api.service.ITaxonService; import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator; import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.common.CdmBase; import eu.etaxonomy.cdm.model.common.ITreeNode; import eu.etaxonomy.cdm.model.taxon.Classification; @@ -116,7 +117,11 @@ public class DeleteOperation extends AbstractPersistentPostOperation{ StoreUtil.warningDialog("Tree is not empty", this, "It is not possible to delete a Taxonomic Tree that " + "is not empty. Please delete included taxa first"); }else{ + try{ CdmStore.getService(IClassificationService.class).delete(taxonomicTree); + }catch(ReferencedObjectUndeletableException e){ + throw new ExecutionException(e.getMessage()); + } } } else { try { diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java index c5bbd9c4e..eed7baa7d 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java @@ -18,6 +18,7 @@ import org.eclipse.core.runtime.Status; import eu.etaxonomy.cdm.api.service.ITermService; import eu.etaxonomy.cdm.api.service.IVocabularyService; +import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException; import eu.etaxonomy.cdm.model.common.DefinedTerm; import eu.etaxonomy.cdm.model.common.DefinedTermBase; import eu.etaxonomy.cdm.model.common.TermBase; @@ -77,8 +78,13 @@ public class DeleteTermBaseOperation extends AbstractPostOperation { } definedEditorInput.getVocabularies().remove((TermVocabulary)termBase); - CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase); - + try{ + CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase); + } catch (DataChangeNoRollbackException e) { + + throw new ExecutionException(e.getMessage()); + + } } else if (termBase instanceof DefinedTermBase) { @@ -111,8 +117,13 @@ public class DeleteTermBaseOperation extends AbstractPostOperation { if(vocabulary != null){ vocabulary.removeTerm(definedTermBase); } - CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase); - + try{ + CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase); + } catch (DataChangeNoRollbackException e) { + + throw new ExecutionException(e.getMessage()); + + } } return postExecute(termBase); diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java index de1a6b42a..b53e1ba83 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java @@ -12,6 +12,7 @@ package eu.etaxonomy.taxeditor.featuretree; import java.util.List; +import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.ListViewer; @@ -31,8 +32,10 @@ import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import eu.etaxonomy.cdm.api.service.IFeatureTreeService; +import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException; import eu.etaxonomy.cdm.model.description.FeatureTree; import eu.etaxonomy.taxeditor.store.CdmStore; +import eu.etaxonomy.taxeditor.store.StoreUtil; /** *

SelectFeatureTreeWizardPage class.

@@ -158,7 +161,16 @@ public class SelectFeatureTreeWizardPage extends WizardPage implements ISelectio IStructuredSelection selection = (IStructuredSelection) viewer.getSelection(); for(Object element : selection.toArray()){ viewer.remove(element); - CdmStore.getService(IFeatureTreeService.class).delete((FeatureTree) element); + try{ + CdmStore.getService(IFeatureTreeService.class).delete((FeatureTree) element); + } catch (DataChangeNoRollbackException d) { + + StoreUtil.warningDialog( + "Feature can not be removed", + this, + "The selected feature can not be removed from the feature tree."); + + } viewer.setSelection(new StructuredSelection(new Object[0])); } } diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java index ab5213636..d7e1c2cf1 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/TermStore.java @@ -19,6 +19,7 @@ import java.util.List; import java.util.Set; import eu.etaxonomy.cdm.api.service.ITermService; +import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; import eu.etaxonomy.cdm.model.common.DefinedTermBase; import eu.etaxonomy.cdm.model.common.MarkerType; import eu.etaxonomy.cdm.model.description.AbsenceTerm; @@ -103,8 +104,9 @@ public class TermStore { *

delete

* * @param selected a {@link eu.etaxonomy.cdm.model.common.DefinedTermBase} object. + * @throws ReferencedObjectUndeletableException */ - public static void delete(DefinedTermBase selected) { + public static void delete(DefinedTermBase selected) throws ReferencedObjectUndeletableException { CdmStore.getService(ITermService.class).delete(selected); }