#5161 Fix problem of new entity not refreshed
authorCherian Mathew <c.mathew@bgbm.org>
Tue, 25 Aug 2015 14:54:01 +0000 (16:54 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Thu, 27 Aug 2015 14:12:42 +0000 (16:12 +0200)
13 files changed:
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/AnnotatedLineDocumentProvider.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityContainer.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/IEntityPersistenceService.java
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/annotatedlineeditor/LineAnnotation.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

index 5469cb0693d406f40536e6a60776f43933ad8c14..3243ffbe49299cddaee36b43327ac5139893df83 100644 (file)
@@ -237,7 +237,8 @@ public class AnnotatedLineDocumentProvider extends AbstractDocumentProvider {
                                if (annotation instanceof IEntityContainer<?>) {
                                        IEntityContainer<?> container = (IEntityContainer<?>) annotation;
                                        if (container.isMarkedAsNew() || container.isDirty()) {
-                                               persistenceService.save(container.getEntity()); // save
+                                               Object entity = persistenceService.save(container.getEntity()); // save
+                                               container.setEntity(entity);
                                                container.setDirty(false);
                                                container.markAsNew(false);
                                        }
index 9761f55f4acc88096bd846bdcd707ba8d41f2cbb..230d5240eaab76c4503299463099d4e39896920d 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.
 */
@@ -28,54 +28,56 @@ public interface IEntityContainer<T> {
         * @return a T object.
         */
        T getEntity();
-       
+
+       void setEntity(Object entity);
+
        /**
         * <p>getEditableText</p>
         *
         * @return a {@link java.lang.String} object.
         */
        String getEditableText();
-       
+
        /**
         * <p>getAttachedEntities</p>
         *
         * @return a {@link java.util.Set} object.
         */
        Set<T> getAttachedEntities();
-       
+
        /**
         * <p>markAsMerged</p>
         *
         * @param mergeTarget a T object.
         */
        void markAsMerged(T mergeTarget);
-       
+
        /**
         * <p>markAsDeleted</p>
         */
        void markAsDeleted();
-       
+
        /**
         * <p>markAsNew</p>
         *
         * @param isNew a boolean.
         */
        void markAsNew(boolean isNew);
-       
+
        /**
         * <p>isMarkedAsMerged</p>
         *
         * @return a boolean.
         */
        boolean isMarkedAsMerged();
-       
+
        /**
         * <p>isMarkedAsDeleted</p>
         *
         * @return a boolean.
         */
        boolean isMarkedAsDeleted();
-       
+
        /**
         * <p>isMarkedAsNew</p>
         *
index 39acd4ff0fd996a8c7b58dc9b17dcfdf267b56a4..b57e8b7bc1840b9f5aca90b30eacb9efcc0425ed 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.
 */
@@ -24,23 +24,23 @@ import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableExcepti
  * @version 1.0
  */
 public interface IEntityPersistenceService<T> {
-       
+
        /**
         * <p>create</p>
         *
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean create(T entity);
-       
+       T create(T entity);
+
        /**
         * <p>save</p>
         *
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
         */
-       boolean save(T entity);
-       
+       T save(T entity);
+
        /**
         * <p>merge</p>
         *
@@ -49,13 +49,13 @@ public interface IEntityPersistenceService<T> {
         * @return a boolean.
         */
        boolean merge(T entity, T mergeTarget);
-       
+
        /**
         * <p>delete</p>
         *
         * @param entity a {@link java.lang.Object} object.
         * @return a boolean.
-        * @throws ReferencedObjectUndeletableException 
+        * @throws ReferencedObjectUndeletableException
         */
        boolean delete(T entity) throws ReferencedObjectUndeletableException;
 }
index 6d30942d829760bdb2dda538c040ac9d01d33cfc..ef4f124b70dada677d4330bf1f5fc6c3980443f8 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.
 */
@@ -29,7 +29,7 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
 
        /** Constant <code>TYPE_GENERIC="Annotation.TYPE_UNKNOWN"</code> */
        public static final String TYPE_GENERIC = Annotation.TYPE_UNKNOWN;
-       
+
        private T entity;
        private ILineDisplayStrategy lineDisplayStrategy;
 
@@ -38,7 +38,7 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
        private boolean markedAsNew;
        private T mergeTarget;
 
-       
+
        /**
         * <p>Constructor for LineAnnotation.</p>
         *
@@ -51,7 +51,7 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
                this.lineDisplayStrategy = lineDisplayStrategy;
                setType(TYPE_GENERIC);
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.jface.text.source.Annotation#getText()
         */
@@ -60,7 +60,7 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
        public String getText() {
                return getEditableText();
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.jface.text.source.Annotation#setText(java.lang.String)
         */
@@ -68,17 +68,17 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
        @Override
        public void setText(String text) {
                lineDisplayStrategy.setText(text, entity);
-               dirty  = true;          
+               dirty  = true;
                super.setText(text);
        }
-       
+
        /** {@inheritDoc} */
        @Override
        public String toString() {
                // For debugging
                return getText();
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#getAttachedEntities()
         */
@@ -87,7 +87,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a {@link java.util.Set} object.
         */
-       public Set getAttachedEntities() {
+       @Override
+    public Set getAttachedEntities() {
                // TODO Auto-generated method stub
                return null;
        }
@@ -100,7 +101,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a T object.
         */
-       public T getEntity() {
+       @Override
+    public T getEntity() {
                return entity;
        }
 
@@ -112,7 +114,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getEditableText() {
+       @Override
+    public String getEditableText() {
                return lineDisplayStrategy.getText(entity);
        }
 
@@ -124,7 +127,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a T object.
         */
-       public T getMergeTarget() {
+       @Override
+    public T getMergeTarget() {
                return mergeTarget;
        }
 
@@ -136,7 +140,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a boolean.
         */
-       public boolean isMarkedAsDeleted() {
+       @Override
+    public boolean isMarkedAsDeleted() {
                return super.isMarkedDeleted();
        }
 
@@ -148,7 +153,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a boolean.
         */
-       public boolean isMarkedAsMerged() {
+       @Override
+    public boolean isMarkedAsMerged() {
                return markedAsMerged;
        }
 
@@ -160,7 +166,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a boolean.
         */
-       public boolean isMarkedAsNew() {
+       @Override
+    public boolean isMarkedAsNew() {
                return markedAsNew;
        }
 
@@ -170,7 +177,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
        /**
         * <p>markAsDeleted</p>
         */
-       public void markAsDeleted() {
+       @Override
+    public void markAsDeleted() {
                super.markDeleted(true);
                if (!isMarkedAsMerged()) {
                        lineDisplayStrategy.setStatusMessage(entity + " deleted.", entity);
@@ -185,7 +193,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @param mergeTarget a T object.
         */
-       public void markAsMerged(T mergeTarget) {
+       @Override
+    public void markAsMerged(T mergeTarget) {
                this.mergeTarget = mergeTarget;
                markedAsMerged = true;
                lineDisplayStrategy.setStatusMessage("'" + entity + "' merged into '" + mergeTarget + "'.", entity);
@@ -195,7 +204,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#markAsNew()
         */
        /** {@inheritDoc} */
-       public void markAsNew(boolean isNew) {
+       @Override
+    public void markAsNew(boolean isNew) {
                markedAsNew = isNew;
                lineDisplayStrategy.setStatusMessage("New entity created.", entity);
        }
@@ -204,7 +214,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         * @see eu.etaxonomy.taxeditor.bulkeditor.IEntityContainer#setDirty(boolean)
         */
        /** {@inheritDoc} */
-       public void setDirty(boolean dirty) {
+       @Override
+    public void setDirty(boolean dirty) {
                this.dirty = dirty;
        }
 
@@ -216,7 +227,8 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
         *
         * @return a boolean.
         */
-       public boolean isDirty() {
+       @Override
+    public boolean isDirty() {
                return dirty;
        }
 
@@ -228,4 +240,12 @@ public class LineAnnotation<T> extends Annotation implements IEntityContainer<T>
        public String getHoverText() {
                return lineDisplayStrategy.getHoverText(entity);
        }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityContainer#setEntity(java.lang.Object)
+     */
+    @Override
+    public void setEntity(Object entity) {
+        this.entity = (T) entity;
+    }
 }
index 1f2f06e333a42e53417713b9c58f47d2fd6edbf6..664035344691867fae48a1e4a3e91aab11ef56a9 100644 (file)
@@ -255,7 +255,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
 
        /** {@inheritDoc} */
        @Override
-    public boolean create(T entity) {
+    public T create(T entity) {
                return save(entity);
        }
 
@@ -316,7 +316,15 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> extends CdmEnt
                return model;
        }
 
-
+       protected boolean replaceInModel(T entity) {
+           int index = model.indexOf(entity);
+           if(index >= 0) {
+               model.set(index, entity);
+               return true;
+           } else {
+               return false;
+           }
+       }
 
     /* (non-Javadoc)
      * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
index 1ed2910f4c7e595805a3127b7b2e39357a406f96..92431c5a39269a1360910a4f074996e113b81f1b 100644 (file)
@@ -146,11 +146,12 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        }
 
        @Override
-       public boolean save(TeamOrPersonBase entity) {
+       public TeamOrPersonBase save(TeamOrPersonBase entity) {
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IAgentService.class).merge(entity) != null;
+               return (TeamOrPersonBase) CdmStore.getService(IAgentService.class).merge(entity);
            } else {
-               return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+               CdmStore.getService(IAgentService.class).saveOrUpdate(entity) ;
+               return entity;
            }
        }
 
index ce95b2ffea4a843f76d55230bd18f98c74f4548d..1ec68333958a42b6fe3c518f45d7e3b0ffe25a85 100644 (file)
@@ -61,11 +61,12 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#save(java.lang.Object)
         */
        @Override
-       public boolean save(Group entity) {
+       public Group save(Group entity) {
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IGroupService.class).merge(entity) != null;
+               return CdmStore.getService(IGroupService.class).merge(entity) ;
            } else {
-               return CdmStore.getService(IGroupService.class).saveOrUpdate(entity) != null;
+               CdmStore.getService(IGroupService.class).saveOrUpdate(entity);
+               return entity;
            }
        }
 
index 18f5ff8e1e1d6b92ad965aa37dd7a27d228835fa..2763b2f634f71e56540df838364ad4a38ea31460 100644 (file)
@@ -117,11 +117,12 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
 
        /** {@inheritDoc} */
        @Override
-    public boolean save(TaxonNameBase entity) {
+    public TaxonNameBase save(TaxonNameBase entity) {
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(INameService.class).merge(entity) != null;
+               return CdmStore.getService(INameService.class).merge(entity) ;
            } else {
-               return CdmStore.getService(INameService.class).saveOrUpdate(entity) != null;
+               CdmStore.getService(INameService.class).saveOrUpdate(entity);
+               return entity;
            }
        }
 
index ceaa1e6db4cd79e3dc0816c5b982fc4d9646547c..893232a917d8eae331cee17b86db4ce23c00599f 100644 (file)
@@ -74,9 +74,9 @@ public class NameRelationshipEditorInput extends AbstractBulkEditorInput<NameRel
         */
        /** {@inheritDoc} */
        @Override
-       public boolean save(NameRelationship entity) {
+       public NameRelationship save(NameRelationship entity) {
                // TODO Auto-generated method stub
-               return false;
+               return null;
        }
 
        /* (non-Javadoc)
index 7a0cb889c28e9b3ce9060973985c0b6e8475b8e2..1e66ad04702b96ff4d0664ef703bddefdd71a489 100644 (file)
@@ -17,6 +17,7 @@ import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurato
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.OccurrenceCreator;
@@ -135,11 +136,12 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
         */
        /** {@inheritDoc} */
        @Override
-    public boolean save(SpecimenOrObservationBase entity) {
+    public SpecimenOrObservationBase<IIdentifiableEntityCacheStrategy> save(SpecimenOrObservationBase entity) {
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IOccurrenceService.class).merge(entity) != null;
+               return CdmStore.getService(IOccurrenceService.class).merge(entity) ;
            } else {
-               return CdmStore.getService(IOccurrenceService.class).save(entity) != null;
+               CdmStore.getService(IOccurrenceService.class).save(entity);
+               return entity;
            }
        }
 
index 5a6853a0d080d76d7af3832bd09dfc78171a08e9..ea8598b67b1742711062f184bf8c071be87bbecd 100644 (file)
@@ -138,11 +138,12 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
 
        /** {@inheritDoc} */
        @Override
-    public boolean save(Reference entity) {
+    public Reference save(Reference entity) {
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IReferenceService.class).merge(entity) != null;
+               return CdmStore.getService(IReferenceService.class).merge(entity);
            } else {
-               return CdmStore.getService(IReferenceService.class).saveOrUpdate(entity) != null;
+               CdmStore.getService(IReferenceService.class).saveOrUpdate(entity);
+               return entity;
            }
        }
 
index a4831c4c62b06a49685d26b4aa5f77f5f24763b6..1ce4878383e72f4dd9cd266a448669bc6fa51eac 100644 (file)
@@ -70,11 +70,12 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
                return false;\r
        }\r
        @Override\r
-       public boolean save(TaxonBase entity) {\r
+       public TaxonBase save(TaxonBase entity) {\r
            if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
-               return CdmStore.getService(ITaxonService.class).merge(entity) != null;\r
+               return CdmStore.getService(ITaxonService.class).merge(entity);\r
            } else {\r
-               return CdmStore.getService(ITaxonService.class).saveOrUpdate(entity) != null;\r
+               CdmStore.getService(ITaxonService.class).saveOrUpdate(entity);\r
+               return entity;\r
            }\r
        }\r
 \r
index fa8c27760f7cd39d3f8c2e4ecc63ba5340c32efc..e9469eca101555416640a607d1cbfdbeb6d9e92d 100644 (file)
@@ -61,11 +61,12 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#save(java.lang.Object)
         */
        @Override
-       public boolean save(User entity) {
+       public User save(User entity) {
            if(CdmStore.getCurrentSessionManager().isRemoting()) {
-               return CdmStore.getService(IUserService.class).merge(entity) != null;
+               return CdmStore.getService(IUserService.class).merge(entity);
            } else {
-               return CdmStore.getService(IUserService.class).saveOrUpdate(entity) != null;
+               CdmStore.getService(IUserService.class).saveOrUpdate(entity);
+               return entity;
            }
 
        }