adding a taxon bulk editor and changes because the delete methods does not throw...
authorKatja Luther <k.luther@bgbm.org>
Mon, 5 May 2014 13:01:16 +0000 (13:01 +0000)
committerKatja Luther <k.luther@bgbm.org>
Mon, 5 May 2014 13:01:16 +0000 (13:01 +0000)
21 files changed:
.gitattributes
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/command/OpenBulkEditorContributionItem.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/BulkEditorInputType.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/TaxonCreator.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/operation/DeleteTaxonOperation.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/operation/DeleteOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/ChangeAcceptedTaxonToSynonymOperation.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/operation/DeleteTermBaseOperation.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/featuretree/SelectFeatureTreeWizardPage.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/SearchManager.java

index ebd36d16bca1116fb49dba60fac8fb66e7be1813..65b8759313ca365d99790e851d4688637da1d971 100644 (file)
@@ -97,12 +97,14 @@ eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkedito
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/NameRelationshipEditorInput.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/AgentCreator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/GroupCreator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/NameCreator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/OccurrenceCreator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/ReferenceCreator.java -text
+eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/TaxonCreator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/UserCreator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractDateComparator.java -text
 eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/sortprovider/AbstractSortProvider.java -text
index d16a2b0899ef4193b3ee3ae7f53cb66fbcb44fc1..99f1a7d82a25a7a801f309666fccc80ff0cb0f2d 100644 (file)
@@ -80,7 +80,7 @@ public class OpenBulkEditorContributionItem extends CompoundContributionItem {
         contributionItems.add(new Separator(groupName));
         contributionItems.add(BulkEditorInputType.USER.createContributionItem());
         contributionItems.add(BulkEditorInputType.GROUP.createContributionItem());
-
+        contributionItems.add(BulkEditorInputType.TAXON.createContributionItem());
         return contributionItems.toArray(new IContributionItem[contributionItems.size()]);
     }
 
index b40c5ac7ac85cbe45c32cf3e78b11d13f929b5fa..c35441da3cd22ccbff41e06f137c6ff9f14486c8 100644 (file)
@@ -17,6 +17,7 @@ import eu.etaxonomy.cdm.model.name.NameRelationship;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
+import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorConstants;
 
 public enum BulkEditorInputType {
@@ -26,7 +27,8 @@ public enum BulkEditorInputType {
        NAME_RELATIONSHIP("Name Relationship", NameRelationshipEditorInput.ID), 
        OCCURRENCE("Specimens and Observations", OccurrenceEditorInput.ID), 
        USER("User", UserEditorInput.ID), 
-       GROUP("Group", GroupEditorInput.ID);
+       GROUP("Group", GroupEditorInput.ID),
+       TAXON("Taxon", TaxonEditorInput.ID);
 
        public String id;
        public String label;
@@ -86,6 +88,8 @@ public enum BulkEditorInputType {
                        return GROUP;
                } else if (User.class.isAssignableFrom(clazz)) {
                        return USER;
+               } else if (Taxon.class.isAssignableFrom(clazz)){
+                       return TAXON;
                }
                return null;
        }
@@ -105,6 +109,8 @@ public enum BulkEditorInputType {
                        return USER;
                } else if (input instanceof GroupEditorInput) {
                        return GROUP;
+               } else if (input instanceof TaxonEditorInput){
+                       return TAXON;
                }
                return null;
        }
@@ -126,6 +132,8 @@ public enum BulkEditorInputType {
                        return new UserEditorInput();
                case GROUP:
                        return new GroupEditorInput();
+               case TAXON:
+                       return new TaxonEditorInput();
                default:
                        throw new IllegalStateException(
                                        "No input class for the given input type defined.");
index 5cec310cd858d86ee290c72fa64c80b7fbc6afe3..7dc209328f8c0ea0670be559422b31790f1d97ec 100644 (file)
@@ -110,8 +110,8 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
        }
 
        /** {@inheritDoc} 
-        * @throws ReferencedObjectUndeletableException */
-       public boolean delete(TaxonNameBase entity) throws ReferencedObjectUndeletableException {
+        **/
+       public boolean delete(TaxonNameBase entity)  {
                return CdmStore.getService(INameService.class).delete(entity) != null;
        }
 
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java
new file mode 100644 (file)
index 0000000..92b9023
--- /dev/null
@@ -0,0 +1,104 @@
+package eu.etaxonomy.taxeditor.bulkeditor.input;\r
+\r
+import java.util.Arrays;\r
+import java.util.List;\r
+import java.util.UUID;\r
+\r
+import eu.etaxonomy.cdm.api.service.INameService;\r
+import eu.etaxonomy.cdm.api.service.ITaxonService;\r
+import eu.etaxonomy.cdm.api.service.config.FindTaxaAndNamesConfiguratorImpl;\r
+import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;\r
+import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;\r
+import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.cdm.persistence.query.MatchMode;\r
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.NameCreator;\r
+import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.TaxonCreator;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{\r
+\r
+       private static TaxonEditorInput instance;\r
+       /** Constant <code>ID="bulkeditor.input.taxon"</code> */\r
+       public static final String ID = "bulkeditor.input.taxon";\r
+       \r
+       /**\r
+        * <p>Getter for the field <code>instance</code>.</p>\r
+        *\r
+        * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.\r
+        */\r
+       public static AbstractBulkEditorInput getInstance() {\r
+               if (instance == null) {\r
+                       instance = new TaxonEditorInput();\r
+               }\r
+               return instance;\r
+       }\r
+       \r
+       \r
+       @Override\r
+       public String getName() {\r
+               return BulkEditorInputType.TAXON.label;\r
+       }\r
+\r
+       @Override\r
+       public String getToolTipText() {\r
+               return getName();\r
+       }\r
+\r
+       \r
+       /**\r
+        * <p>getID</p>\r
+        *\r
+        * @return a {@link java.lang.Object} object.\r
+        */\r
+       public static Object getID() {\r
+               return ID;\r
+       }\r
+       \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()\r
+        */\r
+       /** {@inheritDoc} */\r
+       @Override\r
+       public boolean isMergingEnabled() {\r
+               return false;\r
+       }\r
+       @Override\r
+       public boolean save(TaxonBase entity) {\r
+               return CdmStore.getService(ITaxonService.class).saveOrUpdate(entity) != null;\r
+       }\r
+\r
+       \r
+\r
+       /** {@inheritDoc} */\r
+       @Override\r
+       public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {\r
+               IFindTaxaAndNamesConfigurator<TaxonBase> newConfig = new FindTaxaAndNamesConfiguratorImpl<TaxonBase>();\r
+               newConfig.setTitleSearchString(configurator.getTitleSearchStringSqlized());\r
+               newConfig.setMatchMode(MatchMode.ANYWHERE);\r
+               \r
+               return CdmStore.getSearchManager().findTaxa(configurator);\r
+       }\r
+\r
+\r
+       @Override\r
+       protected TaxonBase loadEntity(UUID entityUuid) {\r
+               List<String> propertyPaths = Arrays.asList(new String[]{}); \r
+               return CdmStore.getService(ITaxonService.class).load(entityUuid, propertyPaths);\r
+       }\r
+\r
+       \r
+\r
+       /** {@inheritDoc} \r
+        * @throws ReferencedObjectUndeletableException */\r
+       public boolean delete(TaxonBase entity) {\r
+               return CdmStore.getService(ITaxonService.class).delete(entity) != null;\r
+       }\r
+       @Override\r
+       protected IEntityCreator<TaxonBase> createEntityCreator() {\r
+               return new TaxonCreator();\r
+       }\r
+\r
+}\r
diff --git a/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/TaxonCreator.java b/eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/entitycreator/TaxonCreator.java
new file mode 100644 (file)
index 0000000..526ed9d
--- /dev/null
@@ -0,0 +1,55 @@
+package eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator;\r
+\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import eu.etaxonomy.cdm.model.agent.Person;\r
+import eu.etaxonomy.cdm.model.agent.Team;\r
+import eu.etaxonomy.cdm.model.name.Rank;\r
+import eu.etaxonomy.cdm.model.name.TaxonNameBase;\r
+import eu.etaxonomy.cdm.model.taxon.Synonym;\r
+import eu.etaxonomy.cdm.model.taxon.Taxon;\r
+import eu.etaxonomy.cdm.model.taxon.TaxonBase;\r
+import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;\r
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;\r
+import eu.etaxonomy.taxeditor.store.CdmStore;\r
+\r
+public class TaxonCreator implements IEntityCreator<TaxonBase>{\r
+\r
+       NameCreator nameCreator;\r
+       @Override\r
+       public TaxonBase createEntity(String text) {\r
+               // TODO Auto-generated method stub\r
+               return null;\r
+       }\r
+\r
+       @Override\r
+       public TaxonBase createEntity(Object key, String text) {\r
+               TaxonBase taxonBase = null;\r
+               if (nameCreator == null){\r
+                       nameCreator = new NameCreator();\r
+               }\r
+               if (Synonym.class.equals(key)){\r
+                       taxonBase = Synonym.NewInstance(nameCreator.createEntity(text), null);\r
+               } else{\r
+                       taxonBase = Taxon.NewInstance(nameCreator.createEntity(text), null);\r
+               }\r
+               \r
+               return taxonBase;\r
+       }\r
+\r
+       @Override\r
+       public Map<Object, String> getKeyLabelPairs() {\r
+               Map<Object, String> result = new HashMap<Object, String>();\r
+               result.put(Synonym.class, "Synonym");\r
+               result.put(Taxon.class, "Taxon");\r
+               return result;\r
+       }\r
+\r
+       @Override\r
+       public boolean savesEntity() {\r
+               // TODO Auto-generated method stub\r
+               return false;\r
+       }\r
+\r
+}\r
index b7b3b75e2ab893a735828cc783721ff767036d21..8274cc91fea3725a6b30ad217c85331972c9ba37 100644 (file)
@@ -66,15 +66,10 @@ public class DeleteTaxonOperation extends DeleteTaxonBaseOperation{
                                controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();\r
 \r
                                ITaxonService service = controller.getTaxonService();\r
-                               try {\r
+                               \r
 \r
-                                       service.deleteTaxon(element, new TaxonDeletionConfigurator(), classification);\r
+                               String result = service.deleteTaxon(element, new TaxonDeletionConfigurator(), classification);\r
 \r
-                               } catch (DataChangeNoRollbackException e) {\r
-                                       // TODO Auto-generated catch block\r
-                                       e.printStackTrace();\r
-\r
-                               }\r
 \r
                                //closeObsoleteEditor(taxon);\r
                                monitor.worked(40);\r
index d3115113072f9e812547113cc8b60819f75c72dd..313ef06d02ad9643cbe353e478c5b6c223320c8a 100644 (file)
@@ -21,6 +21,7 @@ import org.hibernate.criterion.Criterion;
 import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
@@ -284,7 +285,7 @@ public class TransientAgentService implements IAgentService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(AgentBase persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(AgentBase persistentObject) {
         return defaultAgentService.delete(persistentObject);
     }
 
@@ -735,7 +736,14 @@ public class TransientAgentService implements IAgentService {
     @Override
     public Pager<AgentBase> findTitleCache(Class<? extends AgentBase> clazz, String queryString, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, MatchMode matchMode) {
         return defaultAgentService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
-    };
+    }
+
+       @Override
+       public List<String> isDeletable(AgentBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       };
 
 
 
index b9890789b3c4bec4e24ba9341364708ff185519d..04c4b45206a5346ac6df7d79b123bf1c542f5be0 100644 (file)
@@ -21,6 +21,7 @@ import org.hibernate.criterion.Criterion;
 import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.IClassificationService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
@@ -299,7 +300,7 @@ public class TransientClassificationService implements IClassificationService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(Classification persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(Classification persistentObject) {
         return defaultClassificationService.delete(persistentObject);
     }
 
@@ -914,6 +915,13 @@ public class TransientClassificationService implements IClassificationService {
         return defaultClassificationService.listChildNodesOfTaxon(taxonUuid, classificationUuid, pageSize, pageIndex, propertyPaths);
     }
 
+       @Override
+       public List<String> isDeletable(Classification object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 
 
 }
index aa0ba729376521b8100ff356f108bdaab7770c94..f53599ca6ee70c6677758d76b689846e979d1db9 100644 (file)
@@ -22,6 +22,7 @@ import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.DistributionTree;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
@@ -277,7 +278,7 @@ public class TransientDescriptionService implements IDescriptionService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(DescriptionBase persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(DescriptionBase persistentObject) {
         return defaultDescriptionService.delete(persistentObject);
     }
 
@@ -1094,4 +1095,11 @@ public class TransientDescriptionService implements IDescriptionService {
         return defaultDescriptionService.getOrderedDistributions(taxonDescriptions, subAreaPreference, statusOrderPreference, hideMarkedAreas, omitLevels, propertyPaths);
     }
 
+       @Override
+       public List<String> isDeletable(DescriptionBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 }
index 0ff84199d53fe9a58eb1569001ae21bca4abac45..50606709f29be44e6f72561b66a26baf7ae6b332 100644 (file)
@@ -24,6 +24,7 @@ import org.hibernate.criterion.Criterion;
 import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
@@ -218,7 +219,7 @@ public class TransientNameService implements INameService {
      * @see eu.etaxonomy.cdm.api.service.INameService#delete(eu.etaxonomy.cdm.model.name.TaxonNameBase, eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator)
      */
     @Override
-    public UUID delete(TaxonNameBase name, NameDeletionConfigurator config) throws ReferencedObjectUndeletableException {
+    public String delete(TaxonNameBase name, NameDeletionConfigurator config)  {
         return defaultNameService.delete(name, config);
     }
 
@@ -255,7 +256,7 @@ public class TransientNameService implements INameService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(TaxonNameBase persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(TaxonNameBase persistentObject) {
         return defaultNameService.delete(persistentObject);
     }
 
@@ -1190,5 +1191,12 @@ public class TransientNameService implements INameService {
         return defaultNameService.getTaggedName(uuid);
     }
 
+       @Override
+       public List<String> isDeletable(TaxonNameBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 
 }
index 3b28f72960845230994b34dfc22401f108281db4..5a226f607eadde05a2ac0e306ffad0d84627ee16 100644 (file)
@@ -28,6 +28,7 @@ import org.hibernate.search.spatial.impl.Rectangle;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacadeNotSupportedException;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
@@ -276,7 +277,7 @@ public class TransientOccurenceService implements IOccurrenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(SpecimenOrObservationBase persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(SpecimenOrObservationBase persistentObject) {
         return defaultService.delete(persistentObject);
     }
 
@@ -894,5 +895,12 @@ public class TransientOccurenceService implements IOccurrenceService {
         return defaultService.moveSequence(from, to, sequence);
     }
 
+       @Override
+       public List<String> isDeletable(SpecimenOrObservationBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 
 }
index 72571f0bfa0262a7e8791f8021eb7ef224dc3bc8..932cae0f71462c76338ce5317b4815a3747a391c 100644 (file)
@@ -21,6 +21,7 @@ import org.hibernate.criterion.Criterion;
 import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.IReferenceService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.api.service.pager.Pager;
@@ -273,7 +274,7 @@ public class TransientReferenceService implements IReferenceService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(Reference persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(Reference persistentObject) {
         return defaultReferenceService.delete(persistentObject);
     }
 
@@ -690,5 +691,12 @@ public class TransientReferenceService implements IReferenceService {
         return defaultReferenceService.findTitleCache(clazz, queryString, pageSize, pageNumber, orderHints, matchMode);
     }
 
+       @Override
+       public List<String> isDeletable(Reference object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 
 }
index ed5bc21d00acfa791103bde6babfc79e2c29132b..da1c1752e29dd942829c1e3bb2490590e3f4b0af 100644 (file)
@@ -26,6 +26,7 @@ import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.TaxaAndNamesSearchMode;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.MatchingTaxonConfigurator;
@@ -255,7 +256,7 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(TaxonBase persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(TaxonBase persistentObject) {
         return defaultTaxonService.delete(persistentObject);
     }
 
@@ -1365,24 +1366,23 @@ public class TransientTaxonService implements ITaxonService {
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
      */
     @Override
-    public void deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
-        defaultTaxonService.deleteSynonym(arg0, arg1);
+    public String deleteSynonym(Synonym arg0, SynonymDeletionConfigurator arg1) {
+        return defaultTaxonService.deleteSynonym(arg0, arg1);
     }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(eu.etaxonomy.cdm.model.taxon.Synonym, eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
      */
     @Override
-    public void deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
-        defaultTaxonService.deleteSynonym(arg0, arg1, arg2);
+    public String deleteSynonym(Synonym arg0, Taxon arg1, SynonymDeletionConfigurator arg2) {
+        return defaultTaxonService.deleteSynonym(arg0, arg1, arg2);
     }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteTaxon(eu.etaxonomy.cdm.model.taxon.Taxon, eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator, eu.etaxonomy.cdm.model.taxon.Classification)
      */
     @Override
-    public UUID deleteTaxon(Taxon arg0, TaxonDeletionConfigurator arg1, Classification arg2)
-            throws DataChangeNoRollbackException {
+    public String deleteTaxon(Taxon arg0, TaxonDeletionConfigurator arg1, Classification arg2) {
         return defaultTaxonService.deleteTaxon(arg0, arg1, arg2);
     }
 
@@ -1421,6 +1421,13 @@ public class TransientTaxonService implements ITaxonService {
         return defaultTaxonService.listAcceptedTaxaFor(synonymUuid, classificationUuid, pageSize, pageNumber, orderHints, propertyPaths);
     }
 
+       @Override
+       public List<String> isDeletable(TaxonBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 
 
 
index f2b6c5627ca5326679aa8d7236751ff081d73588..c80ca961dda66dad5ba00351018809480004685e 100644 (file)
@@ -25,6 +25,7 @@ import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.ITermService;
+import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.TermDeletionConfigurator;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
@@ -330,7 +331,7 @@ public class TransientTermService implements ITermService {
      * @see eu.etaxonomy.cdm.api.service.IService#delete(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
     @Override
-    public UUID delete(DefinedTermBase persistentObject) throws ReferencedObjectUndeletableException{
+    public String delete(DefinedTermBase persistentObject) {
         return defaultTermService.delete(persistentObject);
     }
 
@@ -857,4 +858,11 @@ public class TransientTermService implements ITermService {
         return defaultTermService.getDefinedTermByIdInVocabulary(id, vocabularyUuid, clazz, pageSize, pageNumber);
     }
 
+       @Override
+       public List<String> isDeletable(DefinedTermBase object,
+                       DeleteConfiguratorBase config) {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
 }
index 967c481e7a2f4dafdc53e28bb9d966bff4703964..abb15e3a4cf82f28788787c0a6963d64456d09e5 100644 (file)
@@ -52,11 +52,9 @@ public class DeleteOperation extends AbstractPersistentPostOperation {
        public IStatus execute(IProgressMonitor monitor, IAdaptable info)
                        throws ExecutionException {
                bind();
-               try{
-                       CdmStore.getService(IPolytomousKeyService.class).delete(key);
-               }catch(ReferencedObjectUndeletableException e){
-                       throw new ExecutionException(e.getMessage());
-               }
+               
+               String result = CdmStore.getService(IPolytomousKeyService.class).delete(key);
+               
                return postExecute(null);
        }
 
index 680a2d30823bca1eb2585cb7ff1ac88a7b8abdf7..697b46af520e0697663f098e3813bbfac6d06a42 100644 (file)
@@ -74,12 +74,9 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
                bind();
        Synonym synonym = null;
        Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
-               try {
-                       synonym = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode((TaxonNode) taxonNode, newAcceptedTaxonNode, null, null, null);
-               } catch (DataChangeNoRollbackException e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
+               
+               synonym = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode((TaxonNode) taxonNode, newAcceptedTaxonNode, null, null, null);
+               
                monitor.worked(40);
         
                return postExecute(oldTaxon);
index afad39fc6a9cc961ba0ac155afba4982e76fe123..21629870e32e3e63ba7d6878e6034e8f805e8b3f 100644 (file)
@@ -10,7 +10,9 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
+import java.util.List;
 import java.util.Set;
+import java.util.UUID;
 
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
@@ -99,13 +101,9 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
                                //((TaxonNode) treeNode).delete();
 
                                element = ((TaxonNode)taxonNode).getTaxon();
-                               try {
-                                       service.deleteTaxonNode((TaxonNode)taxonNode, config);
-                               } catch (DataChangeNoRollbackException e) {
-
-                                       throw new ExecutionException(e.getMessage());
-
-                               }
+                               
+                               String result = service.deleteTaxonNode((TaxonNode)taxonNode, config);
+                               //TODO:if result is not a UUIDstring then pop up a message box
 
                        }else if(taxonNode != null && taxonNode instanceof Classification){
                                Classification taxonomicTree = (Classification) taxonNode;
@@ -114,12 +112,9 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
                                                return null;
                                        }
                                }*/
-                               try{
-                                       CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
-                               }catch(ReferencedObjectUndeletableException e){
-                                       throw new ExecutionException(e.getMessage());
-                               }
-
+                               
+                               String result = CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
+                               
 
                                /*}else{
                                        try{
@@ -129,11 +124,9 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
                                        }
                                }*/
                        } else {
-                               try {
-                                       service.deleteTaxonNodes(treeNodes, config);
-                               } catch (DataChangeNoRollbackException e) {
-                                       throw new ExecutionException(e.getMessage());
-                               }
+                               
+                               List<UUID> result =service.deleteTaxonNodes(treeNodes, config);
+                               
                        }
 
                monitor.worked(40);
index 52ebe22c73c80663fde7d781aea3692740164b6d..c0d89719447f06971149075e4ef5892260f9376e 100644 (file)
@@ -78,13 +78,9 @@ public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {
                        }                       \r
 \r
                        definedEditorInput.getVocabularies().remove((TermVocabulary)termBase); \r
-                       try{\r
-                               CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
-                       } catch (DataChangeNoRollbackException e) {\r
-                               \r
-                               throw new ExecutionException(e.getMessage());\r
-                               \r
-                       }\r
+                       \r
+                       String result = CdmStore.getService(IVocabularyService.class).delete((TermVocabulary)termBase);\r
+                       \r
                        \r
                } else if (termBase instanceof DefinedTermBase) {\r
                        \r
@@ -117,13 +113,9 @@ public class DeleteTermBaseOperation extends AbstractPostTaxonOperation {
                        if(vocabulary != null){\r
                                vocabulary.removeTerm(definedTermBase);\r
                        }\r
-                       try{\r
-                               CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase);\r
-                       } catch (DataChangeNoRollbackException e) {\r
-                               \r
-                               throw new ExecutionException(e.getMessage());\r
-                               \r
-                       }\r
+                       \r
+                       String result = CdmStore.getService(ITermService.class).delete((DefinedTermBase)termBase);\r
+                       \r
                }\r
                \r
                return postExecute(termBase);\r
index b53e1ba83e36a0ec4b773f2b42e2a4c167dca686..de74faa76b5b9cd4f6ae2390b91ba1b4d3998fba 100644 (file)
@@ -161,16 +161,9 @@ public class SelectFeatureTreeWizardPage extends WizardPage implements ISelectio
                        IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
                        for(Object element : selection.toArray()){
                                viewer.remove(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.");
-                                       
-                               }
+                               
+                               String result = CdmStore.getService(IFeatureTreeService.class).delete((FeatureTree) element);
+                               
                                viewer.setSelection(new StructuredSelection(new Object[0]));
                        }
                }
index 99eb03129d162278a8d820688d603b4f4840ea86..91316ef4295e71f11807aabf8da11734c480e39e 100644 (file)
@@ -101,6 +101,8 @@ public class SearchManager {
                return CdmStore.getService(ITaxonService.class).findTaxaAndNamesForEditor(configurator);
        }
 
+       
+       
 
        /**
         * <p>findReferences</p>
@@ -240,5 +242,12 @@ public class SearchManager {
                return configurator.getTitleSearchString().replace(WILDCARD, "%");
        }
 
+       public List findTaxa(IIdentifiableEntityServiceConfigurator configurator) {
+               if(checkLargeResult(CdmStore.getService(ITaxonService.class).countByTitle(configurator))){
+                       return CdmStore.getService(ITaxonService.class).findByTitle(configurator).getRecords();
+               }
+               return NO_RESULTS;
+       }
+
 
 }