Update ICdmEntitySessionEnabled to no longer extend ICdmChangeListener
authorCherian Mathew <c.mathew@bgbm.org>
Fri, 10 Jul 2015 09:23:02 +0000 (11:23 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Fri, 10 Jul 2015 09:23:02 +0000 (11:23 +0200)
41 files changed:
eu.etaxonomy.taxeditor.bulkeditor/META-INF/MANIFEST.MF
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/BulkEditor.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AgentEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/GroupEditorInput.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/NameRelationshipEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/OccurrenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/ReferenceEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/TaxonEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/UserEditorInput.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/referencingobjects/ReferencingObjectsView.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/service/CdmServiceRequestExecutor.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySession.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/CdmEntitySessionManager.java
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/taxeditor/session/ICdmEntitySessionEnabled.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/MultiPageTaxonEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/TaxonEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/AbstractIdentificationEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/KeyEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/key/polytomous/PolytomousKeyEditorInput.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/TaxonNameEditor.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/ConceptViewPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/concept/graph/ConceptGraphView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateView.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveViewPart.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/media/MediaViewPart.java
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/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/handler/RemotingMoveTaxonNodeHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java [moved from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java with 58% similarity]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/definedterm/DefinedTermEditor.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingCdmHandler.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateSearchView.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/detail/DetailsViewPart.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/supplementaldata/SupplementalDataViewPart.java
eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java [moved from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingTestUpdateOperation.java with 76% similarity]
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/httpinvoker/RemotingSessionAwareTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/operation/RemotingCdmUpdateOperationTest.java
eu.etaxonomy.taxeditor.test/src/test/java/eu/etaxonomy/taxeditor/session/MockSessionOwner.java

index 7b539d270151d639d41640d4dbcd53ad58b441df..2865ebb778afcc017402fdb3bca4b15cd68030ff 100644 (file)
@@ -21,7 +21,8 @@ Require-Bundle: org.eclipse.ui,
  eu.etaxonomy.taxeditor.cdmlib
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
 Bundle-ActivationPolicy: lazy
-Import-Package: org.eclipse.core.runtime,
+Import-Package: eu.etaxonomy.taxeditor.editor,
+ org.eclipse.core.runtime,
  org.eclipse.equinox.app,
  org.eclipse.jface.text,
  org.eclipse.jface.text.presentation,
index c5399f59aefd0b8b956ac137d334624a78eea2e9..e1208b01c5083936c05f265642af25d8bcf989df 100644 (file)
@@ -10,7 +10,6 @@
 package eu.etaxonomy.taxeditor.annotatedlineeditor;
 
 import java.util.Iterator;
-import java.util.List;
 
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -24,7 +23,6 @@ import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.editors.text.TextEditor;
 import org.eclipse.ui.texteditor.IDocumentProvider;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
@@ -33,8 +31,6 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -50,13 +46,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 25.06.2009
  * @version 1.0
  */
-public class AnnotatedLineEditor extends TextEditor implements IConversationEnabled, IPostOperationEnabled, ICdmEntitySessionEnabled {
+public class AnnotatedLineEditor extends TextEditor implements IConversationEnabled, IPostOperationEnabled {
 
     protected ConversationHolder conversation;
 
     private IEntityPersistenceService persistenceService;
     protected ILineDisplayStrategy lineDisplayStrategy;
-    private final ICdmEntitySession cdmEntitySession;
+
 
     /**
      * <p>Constructor for AnnotatedLineEditor.</p>
@@ -65,7 +61,6 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
      */
     public AnnotatedLineEditor(ConversationHolder conversation) {
         this.conversation = conversation;
-        cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
     }
 
     /* (non-Javadoc)
@@ -265,7 +260,7 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
         if (getConversationHolder() != null) {
             getConversationHolder().bind();
         }
-        cdmEntitySession.bind();
+        ((AbstractBulkEditorInput)getEditorInput()).bind();
         PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
         // TODO pass focus to underlying widgets
     }
@@ -327,7 +322,7 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
     public void dispose() {
         super.dispose();
         conversation.close();
-        cdmEntitySession.dispose();
+        ((AbstractBulkEditorInput)getEditorInput()).dispose();
     }
 
     /**
@@ -341,30 +336,5 @@ public class AnnotatedLineEditor extends TextEditor implements IConversationEnab
         return false;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
-     */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return cdmEntitySession;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
-    public <T extends CdmBase> List<T> getRootEntities() {
-        AbstractBulkEditorInput input = (AbstractBulkEditorInput)getEditorInput();
-        return input.getModel();
-    }
 
 }
index c984f74e8ca0ea5e5f2cb07ae94f78e8fc3096aa..8db6230ba7d0492fa4301d8d5824950a8615ec3c 100644 (file)
@@ -190,7 +190,6 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        @Override
        public void setFocus() {
            conversation.bind();
-           getCdmEntitySession().bind();
                searchBar.setFocus();
 
                // TODO find a better place to put this - this dialog should be shown after initial contents of
@@ -199,6 +198,7 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                        displayWarningDialog();
                        isInitialFocus = false;
                }
+               super.setFocus();
        }
 
        /**
index de067d794127ffdd193fa32514e50f5b53c258b6..ddcf61255c73effa237f891771acff361c552cbd 100644 (file)
@@ -34,6 +34,7 @@ import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.CdmBaseSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.TitleCacheComparator;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
+import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -45,7 +46,8 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  * @param <T>
  */
-public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEditorInput , IEntityPersistenceService<T> {
+public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEntitySessionInput implements IEditorInput ,
+    IEntityPersistenceService<T> {
 
        private UUID entityUuid;
 
@@ -55,6 +57,10 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
 
        private static Class serviceClass;
 
+       public AbstractBulkEditorInput() {
+
+       }
+
        /**
         * <p>NewInstance</p>
         *
@@ -304,9 +310,17 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
        /**
         * @return
         */
-       public List<?> getModel() {
+       public List<T> getModel() {
                return model;
        }
 
 
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+     */
+    @Override
+    public   List<T> getRootEntities() {
+        return getModel();
+    }
 }
index 3db059d65a3ad4488f33199cd20a80481e28454a..1e9ca9ffd69368ae50a1fd15ecb24fe5e92a803c 100644 (file)
@@ -197,4 +197,12 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
                return false;
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
+
 }
index ea7019bdc8fe6b8cab855f4cdc34fcc02efefe92..ce95b2ffea4a843f76d55230bd18f98c74f4548d 100644 (file)
@@ -111,6 +111,14 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
                return entity.getName();
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
+
 
 
 }
index d717431f6c76bb92d96edc45a45dafdaf4f52c69..18f5ff8e1e1d6b92ad965aa37dd7a27d228835fa 100644 (file)
@@ -164,5 +164,13 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
                return (entity).getFullTitleCache();
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
+
 
 }
index a317feca144f1e561b25e3eaadc674c90650745d..ceaa1e6db4cd79e3dc0816c5b982fc4d9646547c 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 /**
 * Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy 
+* European Distributed Institute of Taxonomy
 * http://www.e-taxonomy.eu
-* 
+*
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
@@ -30,7 +30,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRelationship> {
 
        /**
-        * 
+        *
         */
        private static final long serialVersionUID = -7453923697752787687L;
 
@@ -50,7 +50,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
                }
                return instance;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#getName()
         */
@@ -105,7 +105,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
        /** {@inheritDoc} */
        @Override
        protected NameRelationship loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return null; // CdmStore.getNameService().load(entityUuid, propertyPaths);
        }
 
@@ -117,7 +117,7 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
                MessagingUtils.notImplementedMessage(getClass());
                return null;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
         */
@@ -126,8 +126,16 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
                if(entity instanceof NameRelationship){
                        return ((NameRelationship) entity).getType().getTitleCache();
                }
-               
+
                return super.getTypeText(entity);
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
+
 }
index 57599ec76791d785f4682e716b02a330c6a83e96..7a0cb889c28e9b3ce9060973985c0b6e8475b8e2 100644 (file)
@@ -163,4 +163,12 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
 
                return sortProviders;
        }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
 }
index 7528faf17f96dcdf8455f45e82a073cded81b6ba..5a6853a0d080d76d7af3832bd09dfc78171a08e9 100644 (file)
@@ -178,4 +178,12 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
                return super.getTypeText(entity);
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
+
 }
index 932803f38fc0755fff3cbd1f03b1543b9edc6233..a4831c4c62b06a49685d26b4aa5f77f5f24763b6 100644 (file)
@@ -5,20 +5,17 @@ import java.util.Arrays;
 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.hibernate.HibernateProxyHelper;\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.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
@@ -122,4 +119,13 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
                return new TaxonCreator();\r
        }\r
 \r
+\r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()\r
+     */\r
+    @Override\r
+    public void merge() {\r
+\r
+    }\r
+\r
 }\r
index c80a7c4d7b4ea19ad1ec961d48653068a913a4da..fa8c27760f7cd39d3f8c2e4ecc63ba5340c32efc 100644 (file)
@@ -113,5 +113,13 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
                return String.format("%s, %s", entity.getUsername(), entity.getPerson());
        }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+
+    }
+
 
 }
index ff0aedf84e560251f5d398b906654045b9416259..b613952f6386f4d41a3d175a9b4114dd9973b49c 100644 (file)
@@ -33,7 +33,6 @@ import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Table;
 import org.eclipse.ui.IWorkbenchPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IGroupService;
@@ -314,15 +313,4 @@ public class ReferencingObjectsView extends AbstractCdmViewPart{
                selectionService.addSelectionListener(this);
 
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
-
-
 }
index bbe3686ac30df0b37c6695c0a9a9daeda1cddccd..4d7b5cfd3a9b8df319ed1e8c30de089d861867e9 100644 (file)
@@ -44,15 +44,13 @@ public class CdmServiceRequestExecutor extends CdmAuthenticatedHttpInvokerReques
                    logger.info("Remote invoking : " + currentRemoteInvocation.getMethodName() + "@" + config.getServiceUrl());
                        rir = super.doExecuteRequest(config, baos);
                        if(rir.getValue() != null && !rir.hasException()) {
-                           if(currentRemoteInvocation.getMethodName().equals("merge")) {
-                               rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
-                           } else if(rir.getValue() instanceof UpdateResult){
+                           if(rir.getValue() instanceof UpdateResult){
                                UpdateResult result = (UpdateResult)rir.getValue();
                                if(result.isOk()){
-                                   cdmEntitySessionManager.load(result, true);
+                                   rir = new RemoteInvocationResult(cdmEntitySessionManager.load(result, true));
                                }
                            } else {
-                               rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), false));
+                               rir = new RemoteInvocationResult(cdmEntitySessionManager.load(rir.getValue(), true));
                            }
                        }
                        cache(currentRemoteInvocation, rir);
index c8d48f0e2e9551966dc25af88ffa765bd236f45d..b039d20c344687cd8d9382c803cdd9e88c85444b 100644 (file)
@@ -21,7 +21,6 @@ import net.sf.ehcache.statistics.LiveCacheStatistics;
 
 import org.apache.log4j.Logger;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.service.IService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.model.common.CdmBase;
@@ -62,7 +61,6 @@ public class CdmEntitySession implements ICdmEntitySession  {
         this.changeObservers = new ArrayList<ICdmEntitySessionEnabled>();
         this.newCdmEntities = new HashSet<CdmBase>();
         cdmEntitySessionManager.addToOwnerSessionMap(sessionOwner, this);
-        CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
     }
 
 
@@ -193,12 +191,9 @@ public class CdmEntitySession implements ICdmEntitySession  {
     public void dispose() {
 
         cdmTransientEntityCacher.dispose();
-//        for(ICdmEntitySessionEnabled observer : changeObservers) {
-//            CdmPostDataChangeObservableListener.getDefault().unregister(observer);
-//        }
         changeObservers.clear();
         cdmEntitySessionManager.remove(sessionOwner);
-        CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
+
     }
 
 
index dc30385918d029ffcf365189aca41f761f0b2503..9bddb82d5035e181b477ed2ccde78b49c6d6ee41 100644 (file)
@@ -89,7 +89,7 @@ public class CdmEntitySessionManager implements ICdmEntitySessionManager {
         }
         ICdmEntitySession session  = ownerSessionMap.get(sessionOwner);
         if(session == null) {
-            session = newSession(sessionOwner,true);
+            throw new CdmClientSessionException("Trying to bind session which does not exist");
         }
 
         setActiveSession(session);
index 5c0fa38cceb17ad8e84e69d2c346b71f389de602..7e6a2308bffac310a41bf213a89717786f99f8f5 100644 (file)
@@ -2,10 +2,9 @@ package eu.etaxonomy.taxeditor.session;
 
 import java.util.Collection;
 
-import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
-public interface ICdmEntitySessionEnabled extends ICdmChangeListener {
+public interface ICdmEntitySessionEnabled {
 
     public ICdmEntitySession getCdmEntitySession();
 
index 7c7530967da8af39ded7606cec5373ac93304666..4cb7f97088bbed2c9f9c7f188a483fbe11db539f 100644 (file)
@@ -23,15 +23,12 @@ import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.forms.editor.FormEditor;
 
-import eu.etaxonomy.cdm.api.application.CdmApplicationState;
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.internal.TaxeditorEditorPlugin;
 import eu.etaxonomy.taxeditor.editor.name.TaxonNameEditor;
@@ -45,8 +42,6 @@ import eu.etaxonomy.taxeditor.model.IPartContentHasFactualData;
 import eu.etaxonomy.taxeditor.model.IPartContentHasMedia;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 
 /**
  *
@@ -59,7 +54,7 @@ import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
  * @version 1.0
  */
 public class MultiPageTaxonEditor extends FormEditor implements
-IPartContentHasFactualData, IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled,
+IPartContentHasFactualData, IConversationEnabled, IPostOperationEnabled,
 IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
 
     /** Constant <code>ID="eu.etaxonomy.taxeditor.editor.taxon"{trunked}</code> */
@@ -67,7 +62,6 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
 
     private boolean dirty;
 
-    private ICdmEntitySession cdmEntitySession;
     private ConversationHolder conversation;
     private IDataChangeBehavior dataChangeBehavior;
     private IUndoContext undoContext;
@@ -88,9 +82,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
     /** {@inheritDoc} */
     @Override
     public void dispose() {
-        if(cdmEntitySession != null) {
-            cdmEntitySession.dispose();
-        }
+        input.dispose();
         conversation.unregisterForDataStoreChanges(this);
         conversation.close();
         super.dispose();
@@ -107,7 +99,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         input = (TaxonEditorInput) getEditorInput();
         conversation = input.getConversationHolder();
         conversation.registerForDataStoreChanges(this);
-        CdmApplicationState.getCurrentDataChangeService().register(this);
+
         try {
             addPage(Page.NAME.getIndex(), new TaxonNameEditor(this),
                     getEditorInput());
@@ -152,7 +144,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
 
             // commit the conversation and start a new transaction immediately
 
-            input.update();
+            input.merge();
             conversation.commit(true);
             monitor.worked(1);
 
@@ -175,7 +167,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
                 editorPage.setDisabled();
             }
         }
-        CdmApplicationState.getCurrentDataChangeService().unregister(this);
+
         conversation.unregisterForDataStoreChanges(this);
         conversation.close();
         setDirty(false);
@@ -258,7 +250,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         }
 
         this.input = (TaxonEditorInput) input;
-        cdmEntitySession = this.input.getCdmEntitySession();
+
 
         // try {
         // // Listen for name changes,
@@ -407,9 +399,7 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         // logger.warn("Setting focus to editor");
         // bind the conversation
         getConversationHolder().bind();
-        if(cdmEntitySession != null) {
-            cdmEntitySession.bind();
-        }
+        input.bind();
         // pass focus to the active editor page
         getActiveEditor().setFocus();
     }
@@ -567,28 +557,4 @@ IDirtyMarkable, IPartContentHasDetails, ISecuredEditor, IPartContentHasMedia {
         return true;
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
-     */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return cdmEntitySession;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
-    public List<TaxonNode> getRootEntities() {
-        return input.getRootEntities();
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 }
index d06d3cbf55e82a08dd51f934d988822d4613d460..b8742e3dafe892ee1fb92bab8d0f4822fca410bf 100644 (file)
@@ -20,7 +20,6 @@ import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.IPersistableElement;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -49,7 +48,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 19.03.2009
  * @version 1.0
  */
-public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled, IPersistableElement {
+public class TaxonEditorInput  extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled, IPersistableElement {
 
     private final ConversationHolder conversation;
 
@@ -59,8 +58,6 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorIn
 
     private TaxonBase initiallySelectedTaxonBase;
 
-    private final ITaxonNodeService service;
-
     private enum CdmType {
         TAXON_NODE,
         TAXON_BASE,
@@ -69,7 +66,6 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorIn
 
     private TaxonEditorInput(UUID uuid, CdmType type) {
         this.conversation = CdmStore.createConversation();
-        service = CdmStore.getService(ITaxonNodeService.class);
         switch(type) {
         case PARENT_TAXON_NODE:
             initForParentTaxonNode(uuid);
@@ -98,7 +94,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorIn
     private void initForTaxonNode(UUID taxonNodeUuid) {
 
 
-        TaxonNode taxonNode = getCdmEntitySession().remoteLoad(service,taxonNodeUuid, null);
+        TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeUuid);
 
         if(taxonNode == null){
             MessagingUtils.warningDialog("Not yet implemented", TaxonEditorInput.class, "Selected element is not type TaxonBase.");
@@ -109,7 +105,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorIn
 
     private void initForTaxonBase(UUID taxonBaseUuid) {
 
-        TaxonBase taxonBase = getCdmEntitySession().remoteLoad(CdmStore.getService(ITaxonService.class),taxonBaseUuid);
+        TaxonBase taxonBase = CdmStore.getService(ITaxonService.class).load(taxonBaseUuid);
         if (taxonBase != null){
             if(taxonBase.isInstanceOf(Taxon.class)){
                 Taxon taxon = CdmBase.deproxy(taxonBase, Taxon.class);
@@ -156,7 +152,7 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorIn
         TaxonNode newTaxonNode = parentNode.addChildTaxon(newTaxon, parentNode.getReference(), parentNode.getMicroReference());
 
         // add the new taxon to the editors persistence context
-        UUID newTaxonNodeUuid = getCdmEntitySession().remoteSave(CdmStore.getService(ITaxonNodeService.class),newTaxonNode);
+        UUID newTaxonNodeUuid = CdmStore.getService(ITaxonNodeService.class).save(newTaxonNode).getUuid();
 
         initForTaxonNode(newTaxonNodeUuid);
     }
@@ -435,44 +431,26 @@ public class TaxonEditorInput extends CdmEntitySessionInput implements IEditorIn
         return initiallySelectedTaxonBase;
     }
 
-    @Override
-    public String toString() {
-        return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#getService()
-     */
-    @Override
-    public ITaxonNodeService getService() {
-        return service;
-    }
+//    @Override
+//    public String toString() {
+//        return String.format("%s[%s]", this.getClass().getSimpleName(), getTaxon());
+//    }
 
 
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#getRootEntities()
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
      */
     @Override
-    public  List<TaxonNode> getRootEntities() {
+    public List<TaxonNode> getRootEntities() {
         return Arrays.asList(taxonNode);
     }
 
-
     /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#update()
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
      */
     @Override
-    public <T extends CdmBase> void update() {
-        taxonNode = getCdmEntitySession().remoteUpdate(service, taxonNode);
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
+    public void merge() {
+        CdmStore.getService(ITaxonNodeService.class).merge(taxonNode);
     }
 
 }
index 4bf11c90dff393d6db4ec30929588e7f2533bfbf..0a1f60ffedeedfde2a26f5514c57269595939bf9 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package eu.etaxonomy.taxeditor.editor.key;
 
@@ -11,13 +11,14 @@ import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.description.IIdentificationKey;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput;
 
 /**
  * @author n.hoffmann
- * 
+ *
  */
 public abstract class AbstractIdentificationEditorInput<T extends IIdentificationKey>
-               implements IEditorInput, IConversationEnabled {
+               extends CdmEntitySessionInput implements IEditorInput, IConversationEnabled {
 
        private final ConversationHolder conversation;
 
@@ -27,7 +28,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
         */
        @Override
@@ -38,7 +39,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.IEditorInput#exists()
         */
        @Override
@@ -48,7 +49,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.IEditorInput#getImageDescriptor()
         */
        @Override
@@ -59,7 +60,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.IEditorInput#getPersistable()
         */
        @Override
@@ -70,7 +71,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.IEditorInput#getToolTipText()
         */
        @Override
@@ -80,7 +81,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see org.eclipse.ui.IEditorInput#getName()
         */
        @Override
@@ -98,7 +99,7 @@ public abstract class AbstractIdentificationEditorInput<T extends IIdentificatio
        @Override
        public void update(CdmDataChangeMap changeEvents) {
        }
-       
+
        /* (non-Javadoc)
         * @see java.lang.Object#equals(java.lang.Object)
         */
index 84807b9ae8465b65c00c149cba2a689a9875bee7..1edd6539352f12a20df4031fb212a3ce0899f116 100644 (file)
@@ -10,9 +10,6 @@
 
 package eu.etaxonomy.taxeditor.editor.key;
 
-import java.util.Arrays;
-import java.util.List;
-
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
@@ -20,10 +17,8 @@ import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.forms.editor.FormEditor;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
-import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
 import eu.etaxonomy.cdm.model.description.PolytomousKey;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyEditorInput;
@@ -33,9 +28,6 @@ import eu.etaxonomy.taxeditor.model.DataChangeBridge;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
-import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
  * @author n.hoffmann
@@ -43,7 +35,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class KeyEditor extends FormEditor implements IConversationEnabled,
-               IDirtyMarkable, IPartContentHasDetails, ICdmEntitySessionEnabled {
+               IDirtyMarkable, IPartContentHasDetails {
 
        public static final String ID = "eu.etaxonomy.taxeditor.editor.key";
 
@@ -52,7 +44,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
        private boolean dirty;
 
        private KeyEditorDataChangeBehaviour dataChangeBehavior;
-       private ICdmEntitySession cdmEntitySession;
+
        private PolytomousKeyEditorInput polytomousKeyEditorInput;
 
        /*
@@ -64,11 +56,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
     @Override
     public void init(IEditorSite site, IEditorInput input)
             throws PartInitException {
-        cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
         polytomousKeyEditorInput = (PolytomousKeyEditorInput)input;
-        if(CdmStore.getCurrentSessionManager().isRemoting()) {
-            polytomousKeyEditorInput.init();
-        }
         super.init(site, input);
     }
 
@@ -84,7 +72,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
                        monitor.beginTask("Saving Editor", 1);
                        getConversationHolder().bind();
                        getConversationHolder().commit(true);
-                       CdmStore.getService(IPolytomousKeyService.class).merge(((PolytomousKeyEditorInput)getEditorInput()).getKey());
+                       polytomousKeyEditorInput.merge();
                        setDirty(false);
                        monitor.worked(1);
                } finally {
@@ -115,7 +103,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
        @Override
        public void setFocus() {
                getConversationHolder().bind();
-               cdmEntitySession.bind();
+               polytomousKeyEditorInput.bind();
                super.setFocus();
        }
        /*
@@ -212,7 +200,7 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
        public void dispose() {
                conversation.unregisterForDataStoreChanges(this);
                conversation.close();
-               cdmEntitySession.dispose();
+               polytomousKeyEditorInput.dispose();
                super.dispose();
        }
 
@@ -248,32 +236,4 @@ public class KeyEditor extends FormEditor implements IConversationEnabled,
                PolytomousKey key = polytomousKeyEditorInput.getKey();
                setPartName(key.getTitleCache());
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
-     */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return cdmEntitySession;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
-    public List<PolytomousKey> getRootEntities() {
-        return Arrays.asList(polytomousKeyEditorInput.getKey());
-    }
-
-
-
 }
index 9d1cbad67cfc74732042e9ce155c217d5cdffadc..8165f0b8cc9aad187143ad6ccc29010c1a19b7e6 100644 (file)
@@ -3,6 +3,8 @@
  */
 package eu.etaxonomy.taxeditor.editor.key.polytomous;
 
+import java.util.Arrays;
+import java.util.List;
 import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
@@ -36,9 +38,6 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
         this.name = name;
     }
 
-    public void init() {
-        this.key = CdmStore.getService(IPolytomousKeyService.class).load(keyUuid, null);
-    }
 
     public static PolytomousKeyEditorInput NewInstance(UUID polytomousKeyUuid) throws Exception{
         try{
@@ -77,4 +76,20 @@ public class PolytomousKeyEditorInput extends AbstractIdentificationEditorInput<
         return super.equals(object);
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
+     */
+    @Override
+    public  List<PolytomousKey> getRootEntities() {
+        return Arrays.asList(key);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
+     */
+    @Override
+    public void merge() {
+        CdmStore.getService(IPolytomousKeyService.class).merge(key);
+    }
+
 }
index 754832bd43339701e1c43b31bcefc3d721ef8f36..7733dfd52805ae37089d6d70b08be14788b5d37a 100644 (file)
@@ -42,7 +42,6 @@ import org.eclipse.ui.forms.widgets.ScrolledForm;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 import org.eclipse.ui.part.EditorPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
@@ -74,7 +73,6 @@ import eu.etaxonomy.taxeditor.model.TaxeditorPartService;
 import eu.etaxonomy.taxeditor.preference.Resources;
 import eu.etaxonomy.taxeditor.security.RequiredPermissions;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
-import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 /**
@@ -88,7 +86,7 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @version 1.0
  */
 public class TaxonNameEditor extends EditorPart implements
-               IMultiPageTaxonEditorPage, IConversationEnabled, ICdmEntitySessionEnabled,
+               IMultiPageTaxonEditorPage, IConversationEnabled,
                IPartContentHasDetails, IPartChangeListener,
                ISelectionListener, IDropTargetable, ISecuredEditor {
 
@@ -950,30 +948,6 @@ public class TaxonNameEditor extends EditorPart implements
                setEnabled(enabled, background);
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
-     */
-    @Override
-    public ICdmEntitySession getCdmEntitySession() {
-        return editor.getCdmEntitySession();
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
-     */
-    @Override
-    public <T extends CdmBase> List<T> getRootEntities() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
+
 
 }
index f3685081947b1c9c553e4790fbde4f94588091ff..bab0e949c77cf58b0d0dbe6002e466b6c74992a1 100644 (file)
@@ -25,7 +25,6 @@ import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
 import eu.etaxonomy.taxeditor.editor.key.AbstractGraphKeyEditor;
@@ -139,12 +138,4 @@ public class ConceptViewPart extends AbstractCdmEditorViewPart implements IPartC
                super.changed(object);
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 }
index 4621fbb6ab89c0c4c26ae94b3e1a0c6f62862f26..01ca52b887b002e49c861b3d5e9bc1b9bba5b3e9 100644 (file)
@@ -17,7 +17,6 @@ import org.eclipse.zest.layouts.LayoutAlgorithm;
 import org.eclipse.zest.layouts.LayoutStyles;
 import org.eclipse.zest.layouts.algorithms.TreeLayoutAlgorithm;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
@@ -124,13 +123,5 @@ public class ConceptGraphView extends AbstractCdmEditorViewPart {
                return layoutAlgoritm;
        }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 
 }
index 2fb470f6ea56cabebca1426ede6bdc1ddfe80066..7c66b8ace01796a477d3db1972833cce4464f5c8 100644 (file)
@@ -31,7 +31,6 @@ import org.eclipse.ui.IEditorSite;
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.EditorPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
@@ -353,15 +352,6 @@ public class DerivateView extends EditorPart implements IPartContentHasFactualDa
         super.dispose();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
-
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
      */
index a4b95431052963bf9c752e04e8afc44f56d72cfc..7556a73d2612f9b93ca11525614197de02a0c09a 100644 (file)
@@ -45,7 +45,6 @@ import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PartInitException;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
@@ -362,13 +361,4 @@ public class DescriptiveViewPart extends AbstractCdmEditorViewPart implements IP
            provider.toggleShowOnlyIndividualAssociations();
            viewer.refresh();
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 }
index 01d9e01c3a4d621e010d3705dc6e90f98b1f1a3b..07cbd473dc5f8a3dd3f4f78d1e2b1bd17d2e64ce 100644 (file)
@@ -28,7 +28,6 @@ import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchActionConstants;
 import org.eclipse.ui.IWorkbenchPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
 import eu.etaxonomy.taxeditor.editor.MultiPageTaxonEditor;
@@ -168,13 +167,4 @@ public class MediaViewPart extends AbstractCdmEditorViewPart implements IPartCon
     public boolean onComplete() {
                return true;
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 }
index 98eba9a32263028dd1852a48a264a454819e5c7f..d018d6b4feb9911e28cc5e4e71b6f273527ee4d3 100644 (file)
@@ -33,8 +33,10 @@ import org.eclipse.ui.commands.ICommandService;
 import org.eclipse.ui.handlers.IHandlerService;
 import org.eclipse.ui.part.ViewPart;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IPolytomousKeyService;
@@ -56,7 +58,8 @@ import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
  *
  */
 public class PolytomousKeyViewPart extends ViewPart implements
-               IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled {
+               IConversationEnabled, ICdmEntitySessionEnabled, IPostOperationEnabled,
+               ICdmChangeListener {
 
        private class FilterModifyListener implements ModifyListener{
                @Override
@@ -201,6 +204,7 @@ public class PolytomousKeyViewPart extends ViewPart implements
                conversation = CdmStore.createConversation();
                conversation.registerForDataStoreChanges(this);
                cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+               CdmApplicationState.getCurrentDataChangeService().register(this);
 
                List<PolytomousKey> input = CdmStore.getService(IPolytomousKeyService.class).list(PolytomousKey.class, null, null, null, null);
                if(!viewer.getControl().isDisposed()){
@@ -252,6 +256,7 @@ public class PolytomousKeyViewPart extends ViewPart implements
            if(cdmEntitySession != null) {
                cdmEntitySession.dispose();
            }
+           CdmApplicationState.getCurrentDataChangeService().unregister(this);
                super.dispose();
        }
 
index 08ad6769300e1bd6db6854d46f1193c04a49d1ef..f36f3912539e2c711fc082864e8ae003e2ec3308 100644 (file)
@@ -30,6 +30,7 @@ import org.eclipse.ui.navigator.CommonNavigator;
 
 import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.api.service.IClassificationService;
@@ -59,7 +60,8 @@ import eu.etaxonomy.taxeditor.store.LoginManager;
  * @version 1.0
  */
 public class TaxonNavigator extends CommonNavigator implements
-               IPostOperationEnabled, IConversationEnabled, Observer, ICdmEntitySessionEnabled {
+               IPostOperationEnabled, IConversationEnabled, Observer,
+               ICdmEntitySessionEnabled, ICdmChangeListener {
 
        /**
         * Constant
@@ -386,6 +388,7 @@ public class TaxonNavigator extends CommonNavigator implements
                if(cdmEntitySession != null) {
                    cdmEntitySession.dispose();
                }
+               CdmApplicationState.getCurrentDataChangeService().unregister(this);
        }
 
        /*
index 0ddc03aa04b4c423c77bc48702587f4e5b3dfddc..288211858c672f3abcccc0e1114cedf64e7fc0e2 100644 (file)
@@ -19,6 +19,7 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.handlers.HandlerUtil;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolderMock;
@@ -80,6 +81,7 @@ public class RemotingMoveTaxonNodeHandler extends RemotingCdmHandler {
      */
     @Override
     public AbstractOperation prepareOperation(ExecutionEvent event) {
+        Shell activeShell = HandlerUtil.getActiveShell(event);
         TaxonNode parentTaxonNode;
 
         List<UUID> excludeTaxa = new ArrayList<UUID>();
@@ -88,26 +90,28 @@ public class RemotingMoveTaxonNodeHandler extends RemotingCdmHandler {
         boolean moveToNewParent = true;
 
         if (PreferencesUtil.getSortNodesNaturally()){
-            if(!MessageDialog.openQuestion(null, "Target node", "The choosen target node should be the parent?")){
+            if(!MessageDialog.openQuestion(activeShell, "Target node", "The choosen target node should be the parent?")){
                 moveToNewParent = false;
             }
-            parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+            parentTaxonNode = TaxonNodeSelectionDialog.select(activeShell,
                     new ConversationHolderMock(),
                     "Choose the taxon above the moved taxon.",
                     excludeTaxa,
                     null,
                     null);
         } else {
-            parentTaxonNode = TaxonNodeSelectionDialog.select(HandlerUtil.getActiveShell(event),
+            parentTaxonNode = TaxonNodeSelectionDialog.select(activeShell,
                     new ConversationHolderMock(),
                     "Choose new parent",
                     excludeTaxa,
                     null,
                     null);
         }
+
+
         if(parentTaxonNode != null){
             if(NavigationUtil.isDirty(parentTaxonNode)){
-                MessageDialog.openWarning(HandlerUtil.getActiveShell(event),
+                MessageDialog.openWarning(activeShell,
                         "Unsaved Parent Taxon",
                         "There are unsaved changes in the parent taxon. Please save first.");
                 return null;
similarity index 58%
rename from eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java
rename to eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/editor/CdmEntitySessionInput.java
index ea3f2f1ccf7ede665c9750834a35d06d00040b14..86da9e875ad964fc0d09400a1e8d1d532eda28f5 100644 (file)
@@ -9,8 +9,6 @@
 */
 package eu.etaxonomy.taxeditor.editor;
 
-import eu.etaxonomy.cdm.api.service.IService;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -28,25 +26,19 @@ public abstract class CdmEntitySessionInput implements ICdmEntitySessionEnabled
         cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
     }
 
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
-     */
     @Override
     public ICdmEntitySession getCdmEntitySession() {
-       return cdmEntitySession;
+        return cdmEntitySession;
     }
 
-    public <T extends CdmBase> void update(IService<T> service, T cdmBase) {
-        cdmEntitySession.remoteUpdate(service, cdmBase);
+    public void bind() {
+        cdmEntitySession.bind();
     }
 
-    public abstract  <T extends CdmBase> IService<T> getService();
-
-    public <T extends CdmBase> void update(T cdmBase) {
-        cdmEntitySession.remoteUpdate(getService(), cdmBase);
+    public void dispose() {
+        cdmEntitySession.dispose();
     }
 
+    public abstract void merge();
 
-    public abstract <T extends CdmBase> void update();
 }
index f855feddb1651fd9e0316ffcf00108a773d87275..b01236b244b11bbdac1a0f413b7bc8ef19f39560 100644 (file)
@@ -36,7 +36,6 @@ import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PartInitException;\r
 import org.eclipse.ui.part.EditorPart;\r
 \r
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;\r
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;\r
 import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;\r
 import eu.etaxonomy.cdm.api.service.IVocabularyService;\r
@@ -276,15 +275,6 @@ public class DefinedTermEditor extends EditorPart implements IConversationEnable
            super.dispose();\r
        }\r
 \r
-    /* (non-Javadoc)\r
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)\r
-     */\r
-    @Override\r
-    public void onChange(CdmChangeEvent event) {\r
-        // TODO Auto-generated method stub\r
-\r
-    }\r
-\r
     /* (non-Javadoc)\r
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()\r
      */\r
index a367512fb5b5a6ac02f9d1469832ace26b3618e6..1ce4165a6be926b4d193f0fcacfeb947a277621e 100644 (file)
@@ -55,7 +55,7 @@ public abstract class RemotingCdmHandler extends AbstractHandler {
 
         switch(status.getSeverity()) {
         case IStatus.WARNING:
-            MessagingUtils.warningDialog("Operation successful but with warnings", null, status);
+            ErrorDialog.openError(null, "Operation successful but with warnings", null, status);
             break;
         case IStatus.ERROR:
             ErrorDialog.openError(null, "Error executing operation", null, status);
index 59fd5ed1aba31b7be887fe3dce6a9cd9c99551e4..b73c4aad6d0fd16e9035e870d3588f1e5b8c3325 100644 (file)
@@ -19,7 +19,6 @@ import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IMemento;
 import org.eclipse.ui.part.ViewPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
@@ -148,14 +147,6 @@ public class DerivateSearchView extends ViewPart implements IContextListener, IC
         super.dispose();
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getCdmEntitySession()
index 5e508b66925a45b918ca3ea74ea631dfeb9b6812..d3f20092474906c4d04a7895f2f9b15320d32b9c 100644 (file)
@@ -18,7 +18,6 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.description.Feature;
@@ -150,13 +149,4 @@ public class DetailsViewPart extends AbstractCdmEditorViewPart implements IPartC
     public boolean onComplete() {
                return true;
        }
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
 }
index c264db3d1d67c4187262faafa60298001f3435d1..984c3c6f206199c1cc44e0afb2b28bdc8adff4e4 100644 (file)
@@ -19,7 +19,6 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.part.EditorPart;
 
-import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
 import eu.etaxonomy.cdm.ext.occurrence.gbif.GbifResponse;
 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
@@ -124,16 +123,4 @@ public class SupplementalDataViewPart extends AbstractCdmEditorViewPart {
                // TODO Auto-generated method stub
                return false;
        }
-
-
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.cdm.api.application.ICdmChangeListener#onChange(eu.etaxonomy.cdm.api.application.CdmChangeEvent)
-     */
-    @Override
-    public void onChange(CdmChangeEvent event) {
-        // TODO Auto-generated method stub
-
-    }
-
-
 }
similarity index 76%
rename from eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/operation/RemotingTestUpdateOperation.java
rename to eu.etaxonomy.taxeditor.store/src/test/java/eu/etaxonomy/taxeditor/store/operations/RemotingTestUpdateOperation.java
index da7b24b4fd4a968d484e89d9a0d032ecc8876942..727460c57e0f23ecea43fdc8b35eb9fe6e59c496 100644 (file)
@@ -7,7 +7,7 @@
 * The contents of this file are subject to the Mozilla Public License Version 1.1
 * See LICENSE.TXT at the top of this package for the full license terms.
 */
-package eu.etaxonomy.taxeditor.operation;
+package eu.etaxonomy.taxeditor.store.operations;
 
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -16,6 +16,8 @@ import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent.Action;
 import eu.etaxonomy.cdm.api.service.ITestService;
 import eu.etaxonomy.cdm.api.service.UpdateResult;
+import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
+import eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation;
 
 /**
  * @author cmathew
@@ -28,6 +30,7 @@ public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation {
 
     private UpdateResult result;
     private Exception exception;
+    private CdmEntityIdentifier cei;
 
 
     /**
@@ -50,6 +53,13 @@ public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation {
         this.exception = exception;
     }
 
+    public RemotingTestUpdateOperation(CdmEntityIdentifier cei,
+            Object source,
+            boolean async) {
+        super(LABEL, Action.Update, source, async);
+        this.cei = cei;
+    }
+
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.operation.RemotingCdmUpdateOperation#doUpdateExecute(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.core.runtime.IAdaptable)
      */
@@ -57,9 +67,11 @@ public class RemotingTestUpdateOperation extends RemotingCdmUpdateOperation {
     protected UpdateResult doUpdateExecute(IProgressMonitor monitor, IAdaptable info) throws Exception {
         ITestService testService = CdmApplicationState.getTestService();
         if(result != null) {
-            return CdmApplicationState.getTestService().returnResult(result);
-        } else if(throwExceptions) {
+            return testService.returnResult(result);
+        } else if(exception != null) {
             return testService.throwException(exception);
+        } else if(cei != null) {
+            return testService.addChild(cei);
         }
         return null;
     }
index 08bebc458be26bcc03d06e256882ec3109ea960f..2ef07d2aa874041b1d8883821401acd849038009 100644 (file)
@@ -13,6 +13,7 @@ import org.apache.log4j.Logger;
 import org.junit.After;
 import org.junit.Before;
 
+import eu.etaxonomy.cdm.api.application.CdmApplicationState;
 import eu.etaxonomy.taxeditor.remoting.cache.CdmTransientEntityCacher;
 import eu.etaxonomy.taxeditor.session.ICdmEntitySession;
 import eu.etaxonomy.taxeditor.session.MockSessionOwner;
@@ -36,6 +37,7 @@ public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
         sessionOwner = new MockSessionOwner();
         logger.info("created mock session owner : " + sessionOwner);
         ICdmEntitySession cdmEntitySession = cdmEntitySessionManager.newSession(sessionOwner, true);
+        CdmApplicationState.getCurrentDataChangeService().register(sessionOwner);
         sessionOwner.setCdmEntitySession(cdmEntitySession);
         cacher = getCacher(sessionOwner);
     }
@@ -43,6 +45,7 @@ public abstract class RemotingSessionAwareTest extends BaseRemotingTest {
     @After
     public void postSessionAwareTest() {
         sessionOwner.dispose();
+        CdmApplicationState.getCurrentDataChangeService().unregister(sessionOwner);
         logger.info("disposed of mock session owner : " + sessionOwner);
     }
 }
index 6c8081242b9f8b81bd0bebe3175da338505f2276..2cdde76aa9b3bf8c4c7f44341e674f4c2cae7257 100644 (file)
@@ -27,6 +27,7 @@ import eu.etaxonomy.cdm.api.service.dto.CdmEntityIdentifier;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
 import eu.etaxonomy.taxeditor.operations.BaseOperationTest;
 import eu.etaxonomy.taxeditor.remoting.cache.ProxyUtils;
+import eu.etaxonomy.taxeditor.store.operations.RemotingTestUpdateOperation;
 
 /**
  * @author cmathew
@@ -83,6 +84,8 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
 
         operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
         operation.execute(monitor, info);
+
+        Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
     }
 
     @Test
@@ -114,6 +117,8 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
         sessionOwner.setExpectedUpdatedObjects(taxonNodes);
         operation = new RemotingTestUpdateOperation(result, sessionOwner, false);
         operation.execute(monitor, info);
+
+        Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
     }
 
     @Test
@@ -151,4 +156,23 @@ public class RemotingCdmUpdateOperationTest extends BaseOperationTest {
         Assert.assertEquals(taxonNodes, sessionOwner.getEventUpdatedObjects());
     }
 
+    @Test
+    public void testDataChange() throws ExecutionException {
+        TaxonNode taxonNode = (TaxonNode) ProxyUtils.deproxy(taxonNodeService.load(taxonNodeUuid1));
+        CdmEntityIdentifier cei = new CdmEntityIdentifier(taxonNode.getId(), TaxonNode.class);
+
+        taxonNodes = new HashSet<TaxonNode>();
+        taxonNodes.add(taxonNode);
+
+        int taxonNodeCountChildren = taxonNode.getCountChildren();
+        sessionOwner.setExpectedUpdatedObjects(taxonNodes);
+
+        operation = new RemotingTestUpdateOperation(cei, sessionOwner, false);
+        operation.execute(monitor, info);
+
+        Set eventUpdatedObjects = sessionOwner.getEventUpdatedObjects();
+        Assert.assertEquals(taxonNodes, eventUpdatedObjects);
+        Assert.assertEquals(taxonNodeCountChildren + 1, ((TaxonNode)eventUpdatedObjects.iterator().next()).getCountChildren());
+    }
+
 }
index 4fe02063117de7d980f273862764a052492f6222..4b503a251b98475649159d8ce19c029c6d06c54b 100644 (file)
@@ -8,9 +8,10 @@ import org.apache.log4j.Logger;
 import org.junit.Assert;
 
 import eu.etaxonomy.cdm.api.application.CdmChangeEvent;
+import eu.etaxonomy.cdm.api.application.ICdmChangeListener;
 import eu.etaxonomy.cdm.model.common.CdmBase;
 
-public class MockSessionOwner<T extends CdmBase> implements ICdmEntitySessionEnabled {
+public class MockSessionOwner<T extends CdmBase> implements ICdmEntitySessionEnabled, ICdmChangeListener {
 
     private static final Logger logger = Logger.getLogger(MockSessionOwner.class);