corrected usage of service calls returning update/delete result objects
authorCherian Mathew <c.mathew@bgbm.org>
Wed, 20 May 2015 12:31:34 +0000 (12:31 +0000)
committerCherian Mathew <c.mathew@bgbm.org>
Wed, 20 May 2015 12:31:34 +0000 (12:31 +0000)
eu.etaxonomy.taxeditor.navigation/plugin.xml
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/key/polytomous/PolytomousKeyViewPart.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/TaxonNavigator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/DeleteHandler.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.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java

index 91eb7bbe25f06bb93606148ca65522afcc66936b..78ff843f3c5f4da5f134f8b7a0fad9adf118164c 100644 (file)
                commandId="eu.etaxonomy.taxeditor.navigation.moveFactualData"
                label="Move factual data to another taxon"
                style="push">
                commandId="eu.etaxonomy.taxeditor.navigation.moveFactualData"
                label="Move factual data to another taxon"
                style="push">
+            <visibleWhen
+                  checkEnabled="true">
+               <and>
+                  <reference
+                        definitionId="isCdmStoreConnected">
+                  </reference>
+                  <reference
+                        definitionId="isTaxonNode">
+                  </reference>
+               </and>
+            </visibleWhen>
          </command>
          <separator
                name="taxeditor-navigation.separator2"
          </command>
          <separator
                name="taxeditor-navigation.separator2"
index 0a913f84cd178aadd321c932fe1369df3ee12f8b..296164c365fdd2ac7a945457ee8a0b874cf31a61 100644 (file)
@@ -113,6 +113,7 @@ public class PolytomousKeyViewPart extends ViewPart implements
        private IContextListener contextListener;
        private final CdmFormFactory formFactory;
        private Text text_filter;
        private IContextListener contextListener;
        private final CdmFormFactory formFactory;
        private Text text_filter;
+       private ICdmEntitySession cdmEntitySession;
 
        private PolytomousKeyViewPartDataChangeBehavior dataChangeBehavior;
 
 
        private PolytomousKeyViewPartDataChangeBehavior dataChangeBehavior;
 
@@ -197,6 +198,8 @@ public class PolytomousKeyViewPart extends ViewPart implements
        private void setInput() {
                conversation = CdmStore.createConversation();
                conversation.registerForDataStoreChanges(this);
        private void setInput() {
                conversation = CdmStore.createConversation();
                conversation.registerForDataStoreChanges(this);
+               cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+        cdmEntitySession.registerForDataStoreChanges(this);
                List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);
                if(!viewer.getControl().isDisposed()){
                    viewer.setInput(input);
                List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);
                if(!viewer.getControl().isDisposed()){
                    viewer.setInput(input);
@@ -208,6 +211,9 @@ public class PolytomousKeyViewPart extends ViewPart implements
         */
        @Override
        public void setFocus() {
         */
        @Override
        public void setFocus() {
+           if(cdmEntitySession != null) {
+            cdmEntitySession.bind();
+        }
                viewer.getControl().setFocus();
        }
 
                viewer.getControl().setFocus();
        }
 
@@ -240,6 +246,9 @@ public class PolytomousKeyViewPart extends ViewPart implements
                conversation.unregisterForDataStoreChanges(this);
                conversation.close();
                CdmStore.getContextManager().removeContextListener(contextListener);
                conversation.unregisterForDataStoreChanges(this);
                conversation.close();
                CdmStore.getContextManager().removeContextListener(contextListener);
+           }
+           if(cdmEntitySession != null) {
+               cdmEntitySession.dispose();
            }
                super.dispose();
        }
            }
                super.dispose();
        }
@@ -283,17 +292,15 @@ public class PolytomousKeyViewPart extends ViewPart implements
      */
     @Override
     public ICdmEntitySession getCdmEntitySession() {
      */
     @Override
     public ICdmEntitySession getCdmEntitySession() {
-        // TODO Auto-generated method stub
-        return null;
+        return cdmEntitySession;
     }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
      */
     @Override
     }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
      */
     @Override
-    public <T extends CdmBase> List<T> getRootEntities() {
-        // TODO Auto-generated method stub
-        return null;
+    public  List<PolytomousKey> getRootEntities() {
+        return getKeys();
     }
 
 }
     }
 
 }
index 0f9ffddf80231d3137596d0d14fa11fc37c879b1..b41c09498e9e329be512bd24610fd0ff25a7ad27 100644 (file)
@@ -34,6 +34,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class DeleteOperation extends AbstractPersistentPostOperation {
 
        private final PolytomousKey key;
 public class DeleteOperation extends AbstractPersistentPostOperation {
 
        private final PolytomousKey key;
+       private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
 
        /**
         * @param label
 
        /**
         * @param label
@@ -47,6 +48,7 @@ public class DeleteOperation extends AbstractPersistentPostOperation {
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
                this.key = key;
                        ICdmEntitySessionEnabled cdmEntitySessionEnabled) {
                super(label, undoContext, postOperationEnabled, conversationEnabled, cdmEntitySessionEnabled);
                this.key = key;
+               this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
        }
 
        /* (non-Javadoc)
        }
 
        /* (non-Javadoc)
@@ -58,10 +60,11 @@ public class DeleteOperation extends AbstractPersistentPostOperation {
                bind();
 
                DeleteResult result = CdmStore.getService(IPolytomousKeyService.class).delete(key);
                bind();
 
                DeleteResult result = CdmStore.getService(IPolytomousKeyService.class).delete(key);
+
                if (result.isError()){
                        MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
 
                if (result.isError()){
                        MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
 
-               }else if(result.isAbort()){
+               } else if(result.isAbort()){
                        MessageDialog.openWarning(null, "Delete abort", "The object could not be deleted, maybe there was no object selected.");
                }
 
                        MessageDialog.openWarning(null, "Delete abort", "The object could not be deleted, maybe there was no object selected.");
                }
 
index 51692227613600913a42d87e6aa8f317047ee830..2e9ce9f3a097b8c5875d66fdfc3eeaa956a20154 100644 (file)
@@ -31,6 +31,7 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
 import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.cdm.model.taxon.TaxonComparatorSearch;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
@@ -72,6 +73,8 @@ public class TaxonNavigator extends CommonNavigator implements
 
        private IDataChangeBehavior dataChangeBehavior;
 
 
        private IDataChangeBehavior dataChangeBehavior;
 
+       private Root root;
+
        /*
         * (non-Javadoc)
         *
        /*
         * (non-Javadoc)
         *
@@ -107,8 +110,8 @@ public class TaxonNavigator extends CommonNavigator implements
                        // we do not preserve state. Closing the view, in contrary to
                        // closing the whole application
                        // should be handled by the state manager too
                        // we do not preserve state. Closing the view, in contrary to
                        // closing the whole application
                        // should be handled by the state manager too
-
-                       return new Root(conversation);
+                   root = new Root(conversation);
+                       return root;
                }
                return new EmptyRoot();
        }
                }
                return new EmptyRoot();
        }
@@ -183,8 +186,9 @@ public class TaxonNavigator extends CommonNavigator implements
         *            a {@link org.eclipse.core.runtime.IProgressMonitor} object.
         */
        public void restore(IMemento memento, IProgressMonitor monitor) {
         *            a {@link org.eclipse.core.runtime.IProgressMonitor} object.
         */
        public void restore(IMemento memento, IProgressMonitor monitor) {
+           root = new Root(conversation);
                if (memento == null) {
                if (memento == null) {
-                       getCommonViewer().setInput(new Root(conversation));
+                       getCommonViewer().setInput(root);
                        return;
                }
                int mementoWork = 0;
                        return;
                }
                int mementoWork = 0;
@@ -212,7 +216,7 @@ public class TaxonNavigator extends CommonNavigator implements
                subProgressMonitor.worked(1);
                conversation.registerForDataStoreChanges(TaxonNavigator.this);
                subProgressMonitor.worked(1);
                subProgressMonitor.worked(1);
                conversation.registerForDataStoreChanges(TaxonNavigator.this);
                subProgressMonitor.worked(1);
-               getCommonViewer().setInput(new Root(conversation));
+               getCommonViewer().setInput(root);
                subProgressMonitor.worked(1);
                getCommonViewer().refresh();
                subProgressMonitor.worked(1);
                subProgressMonitor.worked(1);
                getCommonViewer().refresh();
                subProgressMonitor.worked(1);
@@ -494,7 +498,10 @@ public class TaxonNavigator extends CommonNavigator implements
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
      */
     @Override
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
      */
     @Override
-    public <T extends CdmBase> List<T> getRootEntities() {
+    public List<Classification> getRootEntities() {
+        if(root != null) {
+            return root.getParentBeans();
+        }
         return null;
     }
 }
         return null;
     }
 }
index 117250e04c79a406a0deefe9d7e2dc9cc801dabb..14fea3aa97a7fe6be693dcf766f2981e27223711 100644 (file)
@@ -17,7 +17,6 @@ import java.util.Set;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.core.commands.IHandler;
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.TreeSelection;
 import org.eclipse.core.commands.common.NotDefinedException;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.TreeSelection;
@@ -40,6 +39,8 @@ import eu.etaxonomy.taxeditor.navigation.NavigationUtil;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.DeleteOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
 import eu.etaxonomy.taxeditor.navigation.navigator.TaxonNavigator;
 import eu.etaxonomy.taxeditor.navigation.navigator.operation.DeleteOperation;
 import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
+import eu.etaxonomy.taxeditor.ui.dialog.DeleteConfiguratorDialog;
+import eu.etaxonomy.taxeditor.ui.dialog.DeleteTaxonConfiguratorDialog;
 
 /**
  * <p>DeleteTreeNodeHandler class.</p>
 
 /**
  * <p>DeleteTreeNodeHandler class.</p>
@@ -48,7 +49,7 @@ import eu.etaxonomy.taxeditor.operation.AbstractPostOperation;
  * @created 06.04.2009
  * @version 1.0
  */
  * @created 06.04.2009
  * @version 1.0
  */
-public class DeleteHandler extends AbstractHandler implements IHandler{
+public class DeleteHandler extends AbstractHandler{
 
        protected IWorkbenchPage activePage;
        protected TaxonNavigator taxonNavigator;
 
        protected IWorkbenchPage activePage;
        protected TaxonNavigator taxonNavigator;
@@ -63,6 +64,7 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
 
                TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
 
 
                TreeSelection selection = (TreeSelection) HandlerUtil.getCurrentSelection(event);
 
+
                String plural = selection.size() > 1 ? "s" : "";
                // Prompt user for confirmation
 
                String plural = selection.size() > 1 ? "s" : "";
                // Prompt user for confirmation
 
@@ -84,26 +86,32 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
                        }
                }
                AbstractPostOperation operation = null;
                        }
                }
                AbstractPostOperation operation = null;
+               TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
                if (treeNodes.size() == 1 ){
                        try {
 
                                ITaxonTreeNode treeNode = treeNodes.iterator().next();
                                ITaxonTreeNode taxonNode =treeNode;
                                TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
                if (treeNodes.size() == 1 ){
                        try {
 
                                ITaxonTreeNode treeNode = treeNodes.iterator().next();
                                ITaxonTreeNode taxonNode =treeNode;
                                TaxonNodeDeletionConfigurator configNodes = new TaxonNodeDeletionConfigurator();
-                               TaxonDeletionConfigurator config = new TaxonDeletionConfigurator();
                                if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
                                if (taxonNode instanceof Classification && taxonNode.hasChildNodes()){
-                                       if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){
+                                       if(!DeleteTaxonConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification? The tree has children, they will be deleted, too.")){
                                                return null;
                                        }
                                } else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
                                                return null;
                                        }
                                } else if (taxonNode instanceof Classification && !taxonNode.hasChildNodes()){
-                                       if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
+                                       if(!DeleteTaxonConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the classification?")){
                                                return null;
                                        }
                                } else {
                                                return null;
                                        }
                                } else {
+
                                        if (taxonNode.hasChildNodes()){
                                        if (taxonNode.hasChildNodes()){
-                                               MessageDialog dialog = new MessageDialog(HandlerUtil.getActiveShell(event), "Confirm Deletion", null,
-                                                           "Do you really want to delete the selected node? It has childnodes, they will be deleted, too.", MessageDialog.WARNING, new String[] { "Delete all children",
-                                                         "Move children to parent node", "Skip" }, 0);
+                        DeleteConfiguratorDialog dialog = new DeleteTaxonConfiguratorDialog(
+                                config,
+                                HandlerUtil.getActiveShell(event),
+                                "Confirm Deletion",
+                                null,
+                                "Do you really want to delete the selected node? It has childnodes, they will be deleted, too.",
+                                MessageDialog.WARNING, new String[] { "Delete all children",
+                                        "Move children to parent node", "Skip" }, 0);
                                                int result = dialog.open();
 
                                                if (result == 0){
                                                int result = dialog.open();
 
                                                if (result == 0){
@@ -120,7 +128,7 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
 
                                                }
                                        }else{
 
                                                }
                                        }else{
-                                               if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){
+                                               if(!DeleteTaxonConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected node?")){
                                                        return null;
                                                }
                                        }
                                                        return null;
                                                }
                                        }
@@ -130,6 +138,7 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
                                        /*if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
                                                return null;
                                        }*/
                                        /*if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
                                                return null;
                                        }*/
+
                                                operation = new DeleteOperation(event.getCommand().getName(),
                                                        NavigationUtil.getUndoContext(),
                                                                taxonNode,
                                                operation = new DeleteOperation(event.getCommand().getName(),
                                                        NavigationUtil.getUndoContext(),
                                                                taxonNode,
@@ -139,6 +148,7 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
                                                                taxonNavigator);
 
                                                NavigationUtil.executeOperation(operation);
                                                                taxonNavigator);
 
                                                NavigationUtil.executeOperation(operation);
+
                                                //}
                                }
 
                                                //}
                                }
 
@@ -149,10 +159,11 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
                        }
                } else{
                        try{
                        }
                } else{
                        try{
-                               if(! MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
+                               if(!DeleteTaxonConfiguratorDialog.openConfirmWithConfigurator(config, HandlerUtil.getActiveShell(event), "Confirm Deletion", "Do you really want to delete the selected nodes?")){
                                        return null;
                                }
                                if (allEditorsClosed){
                                        return null;
                                }
                                if (allEditorsClosed){
+
                                        operation = new DeleteOperation(event.getCommand().getName(),
                                                NavigationUtil.getUndoContext(),
                                                        treeNodes,
                                        operation = new DeleteOperation(event.getCommand().getName(),
                                                NavigationUtil.getUndoContext(),
                                                        treeNodes,
@@ -162,6 +173,7 @@ public class DeleteHandler extends AbstractHandler implements IHandler{
                                                        taxonNavigator);
 
                                        NavigationUtil.executeOperation(operation);
                                                        taxonNavigator);
 
                                        NavigationUtil.executeOperation(operation);
+
                                }
                        }catch (NotDefinedException e) {
                                MessagingUtils.warn(getClass(), "Command name not set");
                                }
                        }catch (NotDefinedException e) {
                                MessagingUtils.warn(getClass(), "Command name not set");
index 81a4af179e8f15b98267d2ad0f4981a0cb6aa3cb..101f4734a295757c7c25c66d71125647d0f7b0ae 100644 (file)
@@ -10,9 +10,6 @@
 
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
-import java.util.HashSet;
-import java.util.Set;
-
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.commands.ExecutionException;
 import org.eclipse.core.commands.operations.IUndoContext;
 import org.eclipse.core.runtime.IAdaptable;
@@ -21,11 +18,10 @@ import org.eclipse.core.runtime.IStatus;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.api.service.config.TaxonDeletionConfigurator;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
-import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
@@ -80,17 +76,10 @@ public class ChangeAcceptedTaxonToSynonymOperation extends
 
                monitor.worked(20);
                bind();
 
                monitor.worked(20);
                bind();
-       Synonym synonym = null;
-       Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
 
 
-               synonym = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null);
-               Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
-               for(Taxon taxon : synonym.getAcceptedTaxa()) {
-                   affectedObjects.addAll(taxon.getTaxonNodes());
-               }
-               //FIXME:Remoting add new taxonNode.getParent to affectedObjects
+       Taxon oldTaxon = (Taxon) HibernateProxyHelper.deproxy(((TaxonNode) taxonNode).getTaxon());
 
 
-               cdmEntitySessionEnabled.getCdmEntitySession().update(synonym, affectedObjects);
+               UpdateResult result = CdmStore.getService(ITaxonNodeService.class).makeTaxonNodeASynonymOfAnotherTaxonNode(taxonNode.getUuid(), newAcceptedTaxonNode.getUuid(), null, null, null);
 
                monitor.worked(40);
                return postExecute(oldTaxon);
 
                monitor.worked(40);
                return postExecute(oldTaxon);
index c450209d60d911157bd56ca7ca124317b4e1a7fd..692c5ad87611391286c581a354f7d98137f8bdf8 100644 (file)
@@ -102,23 +102,18 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
         monitor.worked(20);
         ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
         ITaxonNodeService service = controller.getTaxonNodeService();
         monitor.worked(20);
         ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration();
         ITaxonNodeService service = controller.getTaxonNodeService();
-        Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
+        DeleteResult result;
 
 
-        if(taxonNode != null && taxonNode instanceof TaxonNode){
-            //((TaxonNode) treeNode).delete();
+        if(taxonNode != null && taxonNode instanceof TaxonNode) {
 
             element = ((TaxonNode)taxonNode).getTaxon();
 
 
             element = ((TaxonNode)taxonNode).getTaxon();
 
-            DeleteResult result = service.deleteTaxonNode(taxonNode.getUuid(), config);
-            if (result.isError()){
-                //TODO:Error message!
+            result = service.deleteTaxonNode(taxonNode.getUuid(), config);
+            if (result.isError() || result.isAbort()){
                 MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
                 MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
-            } else {
-                affectedObjects.add(((TaxonNode)taxonNode).getParent());
-                cdmEntitySessionEnabled.getCdmEntitySession().delete(taxonNode, affectedObjects);
             }
 
             }
 
-        }else if(taxonNode != null && taxonNode instanceof Classification){
+        } else if(taxonNode != null && taxonNode instanceof Classification) {
             Classification taxonomicTree = (Classification) taxonNode;
             /*if(taxonomicTree.hasChildNodes()){
                                        if(! MessageDialog.openConfirm(null, "Confirm Deletion", "The selected tree has children, do yu realy want to delete the whole tree with its children?")){
             Classification taxonomicTree = (Classification) taxonNode;
             /*if(taxonomicTree.hasChildNodes()){
                                        if(! MessageDialog.openConfirm(null, "Confirm Deletion", "The selected tree has children, do yu realy want to delete the whole tree with its children?")){
@@ -126,32 +121,30 @@ public class DeleteOperation extends AbstractPersistentPostOperation{
                                        }
                                }*/
 
                                        }
                                }*/
 
-            DeleteResult result = CdmStore.getService(IClassificationService.class).delete(taxonomicTree);
-            if (result.isError()){
-                //TODO:Error message!
+            result = CdmStore.getService(IClassificationService.class).delete(taxonomicTree.getUuid());
+            if (result.isError() || result.isAbort()){
                 MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
                 MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
-            } else {
-                affectedObjects.add(((TaxonNode)taxonNode).getParent());
-                cdmEntitySessionEnabled.getCdmEntitySession().delete(taxonomicTree, affectedObjects);
             }
             }
+
         } else {
             Set<UUID> treeNodeUuids = new HashSet<UUID>();
         } else {
             Set<UUID> treeNodeUuids = new HashSet<UUID>();
+            ITaxonTreeNode entity = null;
             for(ITaxonTreeNode treeNode : treeNodes) {
             for(ITaxonTreeNode treeNode : treeNodes) {
+                if(entity == null) {
+                    entity = treeNode;
+                }
                 treeNodeUuids.add(treeNode.getUuid());
             }
                 treeNodeUuids.add(treeNode.getUuid());
             }
-            DeleteResult result = service.deleteTaxonNodes(treeNodeUuids, config);
-            if (result.isError()){
-                //TODO:Error message!
+
+            result = service.deleteTaxonNodes(treeNodeUuids, config);
+            if (result.isError() || result.isAbort()){
                 MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
             }
 
                 MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage());
             }
 
-            for(ITaxonTreeNode treeNode : treeNodes) {
-                affectedObjects.add(((TaxonNode)treeNode).getParent());
-            }
-            cdmEntitySessionEnabled.getCdmEntitySession().delete(treeNodes, affectedObjects);
         }
 
         monitor.worked(40);
         }
 
         monitor.worked(40);
+
         return postExecute(null);
     }
 
         return postExecute(null);
     }
 
index c65b17388fe4282b3aa9c3cc6e9968349f4e22c1..14b19f62d6ddf6985340fdce736804df55798d62 100644 (file)
@@ -10,7 +10,6 @@
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.HashMap;
 package eu.etaxonomy.taxeditor.navigation.navigator.operation;
 
 import java.util.HashMap;
-import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
 import java.util.Map;
 import java.util.Set;
 
@@ -23,7 +22,7 @@ import org.eclipse.core.runtime.Status;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
 
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
 import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
@@ -53,7 +52,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
 
        private final Set<TaxonNode> taxonNodes;
 
 
        private final Set<TaxonNode> taxonNodes;
 
-       private final ICdmEntitySessionEnabled cdmEntitySessionEnabled;
+
        /**
         * <p>Constructor for MoveTaxonOperation.</p>
         *
        /**
         * <p>Constructor for MoveTaxonOperation.</p>
         *
@@ -83,7 +82,7 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                        this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent());
                }
 
                        this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent());
                }
 
-               this.cdmEntitySessionEnabled = cdmEntitySessionEnabled;
+
        }
 
        /* (non-Javadoc)
        }
 
        /* (non-Javadoc)
@@ -96,14 +95,10 @@ public class MoveTaxonOperation extends AbstractPersistentPostOperation {
                bind();
                monitor.worked(20);
 
                bind();
                monitor.worked(20);
 
-               Set<CdmBase> affectedObjects = new HashSet<CdmBase>();
+
                try {
                        for (TaxonNode taxonNode : taxonNodes){
                try {
                        for (TaxonNode taxonNode : taxonNodes){
-                           TaxonNode newTaxonNode = CdmStore.getService( ITaxonNodeService.class).moveTaxonNode(taxonNode.getUuid(), newParentTreeNode.getUuid());
-                               affectedObjects.add(newTaxonNode.getParent());
-                               //FIXME:Remoting testing until UpdateResult is ready
-                               affectedObjects.add(newTaxonNode.getParent().getParent());
-                               cdmEntitySessionEnabled.getCdmEntitySession().update(newTaxonNode, affectedObjects);
+                           UpdateResult result = CdmStore.getService( ITaxonNodeService.class).moveTaxonNode(taxonNode.getUuid(), newParentTreeNode.getUuid());
                                monitor.worked(2);
                        }
 
                                monitor.worked(2);
                        }