#5012 Adding remoting session and updating save methods for Bulk Editor
authorCherian Mathew <c.mathew@bgbm.org>
Wed, 1 Jul 2015 09:56:09 +0000 (11:56 +0200)
committerCherian Mathew <c.mathew@bgbm.org>
Thu, 2 Jul 2015 09:01:18 +0000 (11:01 +0200)
Replace properties file with xml file

#5012 updates for making Bulk Editor remoting capable

27 files changed:
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/handler/DeleteHandler.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/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/input/entitycreator/UserCreator.java
eu.etaxonomy.taxeditor.cdmlib/.gitignore
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/eu/etaxonomy/cdm/httpInvokerServiceClients.xml
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties [deleted file]
eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml [new file with mode: 0644]
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientCollectionService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientDescriptionService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientNameService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientOccurenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientReferenceService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTaxonService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientTermService.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/store/LoginManager.java
eu.etaxonomy.taxeditor.test/src/test/resources/log4j.xml

index 08876fef01d643cd5a2869b83dd2472903ec86aa..c5399f59aefd0b8b956ac137d334624a78eea2e9 100644 (file)
@@ -1,15 +1,16 @@
 // $Id$
 /**
-* Copyright (C) 2007 EDIT
-* 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.
-*/
+ * Copyright (C) 2007 EDIT
+ * 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.
+ */
 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;
@@ -23,13 +24,17 @@ 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;
 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 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;
 
 /**
@@ -45,292 +50,321 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  * @created 25.06.2009
  * @version 1.0
  */
-public class AnnotatedLineEditor extends TextEditor implements IConversationEnabled, IPostOperationEnabled {
-
-       protected ConversationHolder conversation;
-
-       private IEntityPersistenceService persistenceService;
-       protected ILineDisplayStrategy lineDisplayStrategy;
-
-
-       /**
-        * <p>Constructor for AnnotatedLineEditor.</p>
-        *
-        * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       public AnnotatedLineEditor(ConversationHolder conversation) {
-               this.conversation = conversation;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.editors.text.TextEditor#doSetInput(org.eclipse.ui.IEditorInput)
-        */
-       /** {@inheritDoc} */
-       @Override
-       protected void doSetInput(IEditorInput input) throws CoreException {
-
-               AnnotatedLineDocumentProvider provider = new AnnotatedLineDocumentProvider(input);
-
-               provider.setLineDisplayStrategy(lineDisplayStrategy, input);
-               setDocumentProvider(provider);
-
-               super.doSetInput(input);
-       }
-
-       /**
-        * <p>Setter for the field <code>persistenceService</code>.</p>
-        *
-        * @param persistenceService a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService} object.
-        */
-       protected void setPersistenceService(
-                       IEntityPersistenceService persistenceService) {
-               this.persistenceService = persistenceService;
-       }
-
-       /**
-        * <p>Getter for the field <code>persistenceService</code>.</p>
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService} object.
-        */
-       protected IEntityPersistenceService getPersistenceService() {
-               return persistenceService;
-       }
-
-       /**
-        * <p>Setter for the field <code>lineDisplayStrategy</code>.</p>
-        *
-        * @param lineDisplayStrategy a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy} object.
-        */
-       protected void setLineDisplayStrategy(
-                       ILineDisplayStrategy lineDisplayStrategy) {
-               this.lineDisplayStrategy = lineDisplayStrategy;
-       }
-
-       /** {@inheritDoc} */
-       @Override
-       protected ISourceViewer createSourceViewer(Composite parent,
-                       IVerticalRuler ruler, int styles) {
-
-               fAnnotationAccess= getAnnotationAccess();
-               fOverviewRuler= createOverviewRuler(getSharedColors());
-               LineSelectionViewer viewer = new LineSelectionViewer(parent, ruler, getOverviewRuler(),
-                                               isOverviewRulerVisible(), styles);
-//                                             isOverviewRulerVisible(), styles | SWT.WRAP);
-               getSourceViewerDecorationSupport(viewer);
-
-               return viewer;
-       }
-
-       /**
-        * Create an annotated line with an "empty" entity, i.e. using the editor
-        * input's default entity type and a zero-length title cache.
-        *
-        * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
-        */
-       public LineAnnotation createAnnotatedLineNewObject() {
-
-               // Create new object
-
-               AnnotatedLineDocumentProvider documentProvider = (AnnotatedLineDocumentProvider) getDocumentProvider();
-               IEntityCreator entityCreator = documentProvider.getEntityCreator(getEditorInput());
-               Object entity = entityCreator.createEntity(null);
-
-               LineAnnotation annotation = createAnnotatedLine(entity);
-               if (annotation != null) {
-                       annotation.markAsNew(true);
-               }
-               return annotation;
-       }
-
-       /**
-        * Create an annotated line, first creating an entity of type "key" - this key
-        * must be recognized by the editor's entity creator.
-        *
-        * @param key a {@link java.lang.Object} object.
-        * @param titleCache a {@link java.lang.String} object.
-        * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
-        */
-       public LineAnnotation createAnnotatedLineNewObject(Object key, String titleCache) {
-
-
-
-               // Create new object
-               Object entity = ((AnnotatedLineDocumentProvider) getDocumentProvider()).
-                                                       getEntityCreator(getEditorInput()).createEntity(key, titleCache);
-               // checks if the creator also saves the entity (in a different conversation), in which case
-               // we need to bind back this editors conversation
-               // we also need to reload the entity because the conversation used to
-               // to create / save the entity may have been closed
-               if(entity != null && ((AnnotatedLineDocumentProvider) getDocumentProvider()).getEntityCreator(getEditorInput()).savesEntity()) {
-                       getConversationHolder().bind();
-                       Object object = CdmStore.getService(IOccurrenceService.class).load(((CdmBase)entity).getUuid());
-                       entity = HibernateProxyHelper.deproxy(object);
-               }
-
-               if(entity == null) {
-                       return null;
-               }
-               LineAnnotation annotation = createAnnotatedLine(entity);
-               if (annotation != null) {
-                       annotation.markAsNew(true);
-               }
-
-               return annotation;
-
-       }
-
-         @Override
-         public boolean isDirty() {
-               return super.isDirty();
-         }
-
-       /**
-        * Creates an annotated line at the end of the document. The annotation contains the entity.
-        *
-        * @param entity a {@link java.lang.Object} object.
-        * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
-        */
-       public LineAnnotation createAnnotatedLine(Object entity) {
-
-               IEditorInput input = getEditorInput();
-               AnnotatedLineDocumentProvider provider = (AnnotatedLineDocumentProvider) getDocumentProvider();
-
-               LineAnnotation annotation = null;
-               try {
-                       annotation = provider.createAnnotatedLine(input, entity);
-
-                       // Jump to new line
-                       IAnnotationModel model = provider.getAnnotationModel(input);
-                       if(model != null){
-                               int start= model.getPosition(annotation).getOffset();
-                               selectAndReveal(start, 0);
-                       }
-
-               } catch (BadLocationException e) {
-                       // TODO Auto-generated catch block
-                       e.printStackTrace();
-               }
-               return annotation;
-       }
-
-       /**
-        * <p>removeAnnotatedLine</p>
-        *
-        * @param lineno a int.
-        */
-       public void removeAnnotatedLine(int lineno) {
-               ((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(lineno);
-       }
-
-       /**
-        * <p>removeAnnotatedLine</p>
-        *
-        * @param annotation a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
-        */
-       public void removeAnnotatedLine(LineAnnotation annotation) {
-               ((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(annotation);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.texteditor.AbstractTextEditor#doSave(org.eclipse.core.runtime.IProgressMonitor)
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void doSave(IProgressMonitor progressMonitor) {
-               if (getConversationHolder() != null) {
-                       if( ! getConversationHolder().isBound()){
-                               getConversationHolder().bind();
-                       }
-                       super.doSave(progressMonitor);
-                       getConversationHolder().commit(true);
-               } else {
-                       super.doSave(progressMonitor);
-               }
-               firePropertyChange(PROP_DIRTY);
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.texteditor.AbstractTextEditor#setFocus()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void setFocus() {
-               super.setFocus();
-               if (getConversationHolder() != null) {
-                       getConversationHolder().bind();
-               }
-               PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
-               // TODO pass focus to underlying widgets
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
-        */
-       /**
-        * <p>getConversationHolder</p>
-        *
-        * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
-        */
-       @Override
+public class AnnotatedLineEditor extends TextEditor implements IConversationEnabled, IPostOperationEnabled, ICdmEntitySessionEnabled {
+
+    protected ConversationHolder conversation;
+
+    private IEntityPersistenceService persistenceService;
+    protected ILineDisplayStrategy lineDisplayStrategy;
+    private final ICdmEntitySession cdmEntitySession;
+
+    /**
+     * <p>Constructor for AnnotatedLineEditor.</p>
+     *
+     * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     */
+    public AnnotatedLineEditor(ConversationHolder conversation) {
+        this.conversation = conversation;
+        cdmEntitySession = CdmStore.getCurrentSessionManager().newSession(this, true);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.editors.text.TextEditor#doSetInput(org.eclipse.ui.IEditorInput)
+     */
+    /** {@inheritDoc} */
+    @Override
+    protected void doSetInput(IEditorInput input) throws CoreException {
+
+        AnnotatedLineDocumentProvider provider = new AnnotatedLineDocumentProvider(input);
+
+        provider.setLineDisplayStrategy(lineDisplayStrategy, input);
+        setDocumentProvider(provider);
+
+        super.doSetInput(input);
+    }
+
+    /**
+     * <p>Setter for the field <code>persistenceService</code>.</p>
+     *
+     * @param persistenceService a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService} object.
+     */
+    protected void setPersistenceService(
+            IEntityPersistenceService persistenceService) {
+        this.persistenceService = persistenceService;
+    }
+
+    /**
+     * <p>Getter for the field <code>persistenceService</code>.</p>
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService} object.
+     */
+    protected IEntityPersistenceService getPersistenceService() {
+        return persistenceService;
+    }
+
+    /**
+     * <p>Setter for the field <code>lineDisplayStrategy</code>.</p>
+     *
+     * @param lineDisplayStrategy a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.ILineDisplayStrategy} object.
+     */
+    protected void setLineDisplayStrategy(
+            ILineDisplayStrategy lineDisplayStrategy) {
+        this.lineDisplayStrategy = lineDisplayStrategy;
+    }
+
+    /** {@inheritDoc} */
+    @Override
+    protected ISourceViewer createSourceViewer(Composite parent,
+            IVerticalRuler ruler, int styles) {
+
+        fAnnotationAccess= getAnnotationAccess();
+        fOverviewRuler= createOverviewRuler(getSharedColors());
+        LineSelectionViewer viewer = new LineSelectionViewer(parent, ruler, getOverviewRuler(),
+                isOverviewRulerVisible(), styles);
+        //                                             isOverviewRulerVisible(), styles | SWT.WRAP);
+        getSourceViewerDecorationSupport(viewer);
+
+        return viewer;
+    }
+
+    /**
+     * Create an annotated line with an "empty" entity, i.e. using the editor
+     * input's default entity type and a zero-length title cache.
+     *
+     * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
+     */
+    public LineAnnotation createAnnotatedLineNewObject() {
+
+        // Create new object
+
+        AnnotatedLineDocumentProvider documentProvider = (AnnotatedLineDocumentProvider) getDocumentProvider();
+        IEntityCreator entityCreator = documentProvider.getEntityCreator(getEditorInput());
+        Object entity = entityCreator.createEntity(null);
+
+        LineAnnotation annotation = createAnnotatedLine(entity);
+        if (annotation != null) {
+            annotation.markAsNew(true);
+        }
+        return annotation;
+    }
+
+    /**
+     * Create an annotated line, first creating an entity of type "key" - this key
+     * must be recognized by the editor's entity creator.
+     *
+     * @param key a {@link java.lang.Object} object.
+     * @param titleCache a {@link java.lang.String} object.
+     * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
+     */
+    public LineAnnotation createAnnotatedLineNewObject(Object key, String titleCache) {
+
+
+
+        // Create new object
+        Object entity = ((AnnotatedLineDocumentProvider) getDocumentProvider()).
+                getEntityCreator(getEditorInput()).createEntity(key, titleCache);
+        // checks if the creator also saves the entity (in a different conversation), in which case
+        // we need to bind back this editors conversation
+        // we also need to reload the entity because the conversation used to
+        // to create / save the entity may have been closed
+        if(entity != null && ((AnnotatedLineDocumentProvider) getDocumentProvider()).getEntityCreator(getEditorInput()).savesEntity()) {
+            getConversationHolder().bind();
+            Object object = CdmStore.getService(IOccurrenceService.class).load(((CdmBase)entity).getUuid());
+            entity = HibernateProxyHelper.deproxy(object);
+        }
+
+        if(entity == null) {
+            return null;
+        }
+        LineAnnotation annotation = createAnnotatedLine(entity);
+        if (annotation != null) {
+            annotation.markAsNew(true);
+        }
+
+        return annotation;
+
+    }
+
+    @Override
+    public boolean isDirty() {
+        return super.isDirty();
+    }
+
+    /**
+     * Creates an annotated line at the end of the document. The annotation contains the entity.
+     *
+     * @param entity a {@link java.lang.Object} object.
+     * @return a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
+     */
+    public LineAnnotation createAnnotatedLine(Object entity) {
+
+        IEditorInput input = getEditorInput();
+        AnnotatedLineDocumentProvider provider = (AnnotatedLineDocumentProvider) getDocumentProvider();
+
+        LineAnnotation annotation = null;
+        try {
+            annotation = provider.createAnnotatedLine(input, entity);
+
+            // Jump to new line
+            IAnnotationModel model = provider.getAnnotationModel(input);
+            if(model != null){
+                int start= model.getPosition(annotation).getOffset();
+                selectAndReveal(start, 0);
+            }
+
+        } catch (BadLocationException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return annotation;
+    }
+
+    /**
+     * <p>removeAnnotatedLine</p>
+     *
+     * @param lineno a int.
+     */
+    public void removeAnnotatedLine(int lineno) {
+        ((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(lineno);
+    }
+
+    /**
+     * <p>removeAnnotatedLine</p>
+     *
+     * @param annotation a {@link eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation} object.
+     */
+    public void removeAnnotatedLine(LineAnnotation annotation) {
+        ((AnnotatedLineDocumentProvider) getDocumentProvider()).removeAnnotatedLine(annotation);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.texteditor.AbstractTextEditor#doSave(org.eclipse.core.runtime.IProgressMonitor)
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void doSave(IProgressMonitor progressMonitor) {
+        if (getConversationHolder() != null) {
+            if( ! getConversationHolder().isBound()){
+                getConversationHolder().bind();
+            }
+            super.doSave(progressMonitor);
+            getConversationHolder().commit(true);
+        } else {
+            super.doSave(progressMonitor);
+        }
+        firePropertyChange(PROP_DIRTY);
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.texteditor.AbstractTextEditor#setFocus()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void setFocus() {
+        super.setFocus();
+        if (getConversationHolder() != null) {
+            getConversationHolder().bind();
+        }
+        cdmEntitySession.bind();
+        PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell().setFocus();
+        // TODO pass focus to underlying widgets
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.conversation.IConversationEnabled#getConversationHolder()
+     */
+    /**
+     * <p>getConversationHolder</p>
+     *
+     * @return a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
+     */
+    @Override
     public ConversationHolder getConversationHolder() {
-               return conversation;
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
-        */
-       /** {@inheritDoc} */
-       @Override
+        return conversation;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.persistence.hibernate.ICdmPostDataChangeObserver#update(eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap)
+     */
+    /** {@inheritDoc} */
+    @Override
     public void update(CdmDataChangeMap changeEvents) {}
 
-       /**
-        * Refreshes text in all lines.
-        */
-       protected void refreshLineDisplay() {
-               IDocumentProvider provider = getDocumentProvider();
-               IEditorInput input = getEditorInput();
-               IAnnotationModel model = provider.getAnnotationModel(input);
-               Iterator iter = getDocumentProvider().getAnnotationModel(getEditorInput()).getAnnotationIterator();
-               while (iter.hasNext()) {
-                       Object next = iter.next();
-                       if (next instanceof LineAnnotation) {
-                               LineAnnotation annotation = (LineAnnotation) next;
-                               ((AnnotatedLineDocumentProvider) getDocumentProvider()).
-                                               updateLineFromAnnotation(annotation);
-                       }
-               }
-       }
-
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
-        */
-       /** {@inheritDoc} */
-       @Override
+    /**
+     * Refreshes text in all lines.
+     */
+    protected void refreshLineDisplay() {
+        IDocumentProvider provider = getDocumentProvider();
+        IEditorInput input = getEditorInput();
+        IAnnotationModel model = provider.getAnnotationModel(input);
+        Iterator iter = getDocumentProvider().getAnnotationModel(getEditorInput()).getAnnotationIterator();
+        while (iter.hasNext()) {
+            Object next = iter.next();
+            if (next instanceof LineAnnotation) {
+                LineAnnotation annotation = (LineAnnotation) next;
+                ((AnnotatedLineDocumentProvider) getDocumentProvider()).
+                updateLineFromAnnotation(annotation);
+            }
+        }
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.taxeditor.operations.IPostOperationEnabled#postOperation(eu.etaxonomy.cdm.model.common.CdmBase)
+     */
+    /** {@inheritDoc} */
+    @Override
     public boolean postOperation(CdmBase objectAffectedByOperation) {
-               refreshLineDisplay();
-
-               return true;
-       }
-
-       /* (non-Javadoc)
-        * @see org.eclipse.ui.editors.text.TextEditor#dispose()
-        */
-       /** {@inheritDoc} */
-       @Override
-       public void dispose() {
-               super.dispose();
-               conversation.close();
-       }
-
-       /**
-        * <p>onComplete</p>
-        *
-        * @return a boolean.
-        */
-       @Override
+        refreshLineDisplay();
+
+        return true;
+    }
+
+    /* (non-Javadoc)
+     * @see org.eclipse.ui.editors.text.TextEditor#dispose()
+     */
+    /** {@inheritDoc} */
+    @Override
+    public void dispose() {
+        super.dispose();
+        conversation.close();
+        cdmEntitySession.dispose();
+    }
+
+    /**
+     * <p>onComplete</p>
+     *
+     * @return a boolean.
+     */
+    @Override
     public boolean onComplete() {
-               // TODO Auto-generated method stub
-               return false;
-       }
+        // 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
+
+    }
+
+    /* (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 c2978874b1a990ce1ac9e37636fe71b87580c3c0..c984f74e8ca0ea5e5f2cb07ae94f78e8fc3096aa 100644 (file)
@@ -34,9 +34,7 @@ import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorSite;
-import org.eclipse.ui.IViewPart;
 import org.eclipse.ui.PartInitException;
-import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.texteditor.ITextEditorActionConstants;
 
 import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineDocumentProvider;
@@ -44,7 +42,6 @@ import eu.etaxonomy.taxeditor.annotatedlineeditor.AnnotatedLineEditor;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
 import eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput;
-import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsView;
 import eu.etaxonomy.taxeditor.model.IDerivedUnitFacadePart;
 import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
 import eu.etaxonomy.taxeditor.model.IPartContentHasDetails;
@@ -193,6 +190,7 @@ 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
@@ -286,11 +284,11 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
        @Override
        public void doSave(IProgressMonitor progressMonitor) {
            isDirty = false;
-          
+
            super.doSave(progressMonitor);
-           
+
            selectFirstItem();
-          
+
                getSourceViewer().getTextWidget().setFocus();
 
        }
@@ -323,7 +321,7 @@ public class BulkEditor extends AnnotatedLineEditor implements IPartContentHasDe
                        }
                        conversation.commit();
                        conversation.clear();
-                       
+
                        getEditorInput().performSearch(query);
 
                        refresh();
index a34d7c5d1ce0f0d7cc4b40ed6a0a4357d841a6a2..ebaf9d2b88e8655bc0e6e45b0995caab138b27c7 100644 (file)
@@ -1,34 +1,26 @@
 // $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.
 */
 
 package eu.etaxonomy.taxeditor.bulkeditor.handler;
 
-import java.util.Iterator;
-import java.util.Set;
-import java.util.UUID;
-
 import org.eclipse.core.commands.AbstractHandler;
 import org.eclipse.core.commands.ExecutionEvent;
 import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IViewPart;
-import org.eclipse.ui.IViewReference;
-import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.handlers.HandlerUtil;
 import org.eclipse.ui.texteditor.IDocumentProvider;
-import org.eclipse.ui.IWorkbenchPage;
 
+import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.IGroupService;
@@ -38,31 +30,20 @@ import eu.etaxonomy.cdm.api.service.IReferenceService;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
-import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
-import eu.etaxonomy.cdm.model.common.CdmBase;
 import eu.etaxonomy.cdm.model.common.Group;
-import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
 import eu.etaxonomy.cdm.model.common.User;
-
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.cdm.model.taxon.Synonym;
 import eu.etaxonomy.cdm.model.taxon.Taxon;
 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
-import eu.etaxonomy.cdm.persistence.dao.hibernate.HibernateBeanInitializer;
-import eu.etaxonomy.cdm.api.application.ICdmApplicationConfiguration;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotation;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.LineAnnotationModel;
 import eu.etaxonomy.taxeditor.bulkeditor.BulkEditor;
-import eu.etaxonomy.taxeditor.bulkeditor.referencingobjects.ReferencingObjectsView;
-
-
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
-import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
-import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
 
@@ -78,84 +59,75 @@ public class DeleteHandler extends AbstractHandler {
         */
        @Override
        public Object execute(ExecutionEvent event) throws ExecutionException {
-               
+
                ISelection selection = HandlerUtil.getCurrentSelection(event);
-               
+
                IEditorPart editor = HandlerUtil.getActiveEditor(event);
-               
+
                IEditorInput input = editor.getEditorInput();
-               
+
                if((input instanceof IEntityPersistenceService) && (selection instanceof IStructuredSelection)){
-                       
-                       
+
+
                        IDocumentProvider provider = ((BulkEditor) editor).getDocumentProvider();
-                       LineAnnotationModel model = 
+                       LineAnnotationModel model =
                                        (LineAnnotationModel) provider.getAnnotationModel(input);
-                       
-                       
+
+
                        IStructuredSelection structuredSelection = (IStructuredSelection) selection;
-                       
+
                        IEntityPersistenceService persistenceService = (IEntityPersistenceService) input;
-                       
-                       
+
+
                        for(Object object : structuredSelection.toList()){
-                               
+
                                LineAnnotation annotation = (LineAnnotation) model.getAnnotation(object);
-                               DeleteResult result = new DeleteResult();       
+                               DeleteResult result = new DeleteResult();
                                //result.setError();
                                try {
                                        ICdmApplicationConfiguration controller;
-                                       controller = (ICdmApplicationConfiguration) CdmStore.getCurrentApplicationConfiguration();
-                                       //persistenceService.delete(object);
+                                       controller = CdmStore.getCurrentApplicationConfiguration();
+
                                        if (object instanceof SpecimenOrObservationBase){
-                                               
                                                IOccurrenceService service = controller.getOccurrenceService();
-                                               SpecimenOrObservationBase persistedObject = service.load(((SpecimenOrObservationBase) object).getUuid());
-                                               if (persistedObject != null){
-                                                       result = service.delete(persistedObject);
-                                               } 
+                                               if (object != null){
+                                                       result = service.delete(((SpecimenOrObservationBase) object).getUuid());
+                                               }
                                        } else if (object instanceof Reference){
                                                IReferenceService service = controller.getReferenceService();
-                                               
-                                               Reference persistedObject = service.load(((Reference) object).getUuid());
-                                               if (persistedObject != null){
-                                                       result = service.delete(persistedObject);
+                                               if (object != null){
+                                                       result = service.delete(((Reference) object).getUuid());
                                                }
-                                               
+
                                        } else if (object instanceof Group){
                                                IGroupService service = controller.getGroupService();
-                                               Group persistedObject = service.load(((Group) object).getUuid());
-                                               if (persistedObject != null){
-                                                       result = service.delete(persistedObject);
+                                               if (object != null){
+                                                       result = service.delete(((Group) object).getUuid());
                                                }
                                        }else if (object instanceof User){
                                                IUserService service = controller.getUserService();
-                                               User persistedObject = service.load(((User) object).getUuid());
-                                               if (persistedObject != null){
-                                                       result = service.delete(persistedObject);
+                                               if (object != null){
+                                                       result = service.delete(((User) object).getUuid());
                                                }
                                        } else if (object instanceof TaxonNameBase){
                                                INameService service = controller.getNameService();
-                                               TaxonNameBase name = service.load(((TaxonNameBase) object).getUuid());
-                                               if (name != null){
+                                               if (object != null){
                                                        NameDeletionConfigurator config = new NameDeletionConfigurator();
-                                                       
-                                                       result = service.delete(name.getUuid(), config);
-                                               } 
+                                                       result = service.delete(((TaxonNameBase) object).getUuid(), config);
+                                               }
                                        } else if (object instanceof TaxonBase){
                                                ITaxonService service = controller.getTaxonService();
-                                               TaxonBase taxonBase = service.load(((TaxonBase) object).getUuid());
-                                               if (taxonBase != null){
+                                               if (object != null){
                                                        if (object instanceof Taxon){
                                                                result = service.deleteTaxon(((TaxonBase) object).getUuid(), null, null);
                                                        }else{
-                                                               result = service.deleteSynonym((Synonym)object, null);
+                                                               result = service.deleteSynonym(((Synonym)object).getUuid(), null);
                                                        }
                                                }
                                        } else if (object instanceof TeamOrPersonBase){
                                                IAgentService service = controller.getAgentService();
-                                               TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
-                                               result = service.delete((TeamOrPersonBase)object);
+                                               //TeamOrPersonBase teamOrPerson = (TeamOrPersonBase)service.load(((TeamOrPersonBase) object).getUuid());
+                                               result = service.delete(((TeamOrPersonBase)object).getUuid());
                                        }
                                } catch (Exception e){
                                        MessagingUtils.messageDialog("Exception occured. Could not delete", getClass(), e.getMessage(), null);
@@ -165,7 +137,7 @@ public class DeleteHandler extends AbstractHandler {
                                                MessagingUtils.messageDialog("Could not delete", getClass(), result.getExceptions().toString(), null);
                                        }else{
                                                MessagingUtils.messageDialog("Could not delete", getClass(), "The object could not be deleted. An exception occured.", null);
-                                               
+
                                        }
                                }
                                if (result.isOk() ){
@@ -175,11 +147,11 @@ public class DeleteHandler extends AbstractHandler {
                                        }
 
                                }
-                               
-                       }                               
+
+                       }
                }
-       
-               
+
+
                return null;
        }
 
index e5b852b5ab76e79dc3e8abf0862f5ef0cd935e35..de067d794127ffdd193fa32514e50f5b53c258b6 100644 (file)
@@ -45,14 +45,14 @@ 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> implements IEditorInput , IEntityPersistenceService<T> {
 
        private UUID entityUuid;
 
        private List<T> model;
 
        private IEntityCreator<T> entityCreator;
-       
+
        private static Class serviceClass;
 
        /**
@@ -62,7 +62,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * @return a {@link eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput} object.
         */
        static public AbstractBulkEditorInput NewInstance(BulkEditorInputType inputType) {
-               
+
                return BulkEditorInputType.getInput(inputType);
        }
 
@@ -99,7 +99,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * @return a T object.
         */
        protected T loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return (T) CdmStore.getService(serviceClass).load(entityUuid, propertyPaths);
        }
 
@@ -179,7 +179,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
 
                if(getEntityUuid() != null){
 
-                       T entity = (T) loadEntity(getEntityUuid());
+                       T entity = loadEntity(getEntityUuid());
                        entityList.add(entity);
                        model = entityList;
                }
@@ -191,7 +191,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
                        entityList = listEntities(configurator);
 
                        Collections.sort(entityList, queryComparator);
-                       
+
 
                }
 
@@ -231,7 +231,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
     public boolean merge(T entity, T mergeTarget) {
                if (entity instanceof IMergable) {
                        try {
-                               CdmStore.getCommonService().merge((IMergable)mergeTarget, (IMergable)entity, null);                             
+                               CdmStore.getCommonService().merge((IMergable)mergeTarget, (IMergable)entity);
                        } catch (MergeException e) {
                                MessagingUtils.errorDialog("Bulk Editor Merge Error",
                                                this,
@@ -279,7 +279,7 @@ public abstract class AbstractBulkEditorInput<T extends ICdmBase> implements IEd
         * Returns a textual representation given object. The default implementation
         * in the abstract base class returns the simple name of the class, this may
         * be overwritten to something more specific in subclasses.
-        * 
+        *
         * @param entity
         * @return a textual representation given object.
         */
index 2a739544f0deeab50984dc606b4db9d09ca8d4d0..3db059d65a3ad4488f33199cd20a80481e28454a 100644 (file)
@@ -1,23 +1,18 @@
 // $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.
 */
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
-import java.util.Arrays;
 import java.util.List;
-import java.util.UUID;
-
-import org.eclipse.core.commands.ExecutionException;
 
 import eu.etaxonomy.cdm.api.service.IAgentService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.exception.DataChangeNoRollbackException;
 import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.model.agent.AgentBase;
 import eu.etaxonomy.cdm.model.agent.Person;
@@ -29,7 +24,6 @@ import eu.etaxonomy.cdm.strategy.merge.MergeException;
 import eu.etaxonomy.cdm.strategy.merge.MergeMode;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
-import eu.etaxonomy.taxeditor.bulkeditor.handler.MergeGroupHandler;
 import eu.etaxonomy.taxeditor.bulkeditor.input.entitycreator.AgentCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.input.sortprovider.IdentifiableEntitySortProvider;
 import eu.etaxonomy.taxeditor.bulkeditor.internal.TaxeditorBulkeditorPlugin;
@@ -47,13 +41,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase> {
 
        /**
-        * 
+        *
         */
        private static final long serialVersionUID = 3387950621617078479L;
 
        /** Constant <code>ID="bulkeditor.input.author"</code> */
        public static final String ID = "bulkeditor.input.author";
-       
+
        private static AgentEditorInput instance;
 
        /**
@@ -64,7 +58,7 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        public static String getID() {
                return ID;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#getName()
         */
@@ -73,7 +67,8 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getName() {
+       @Override
+    public String getName() {
                return BulkEditorInputType.AGENT.label;
        }
 
@@ -85,7 +80,8 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getToolTipText() {
+       @Override
+    public String getToolTipText() {
                return getName();
        }
 
@@ -109,7 +105,7 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        public boolean isMergingEnabled() {
                return true;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()
         */
@@ -118,7 +114,7 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        public boolean isConvertingEnabled() {
                return true;
        }
-       
+
        /** {@inheritDoc} */
        @Override
     public boolean merge(TeamOrPersonBase entity, TeamOrPersonBase mergeTarget) {
@@ -126,7 +122,7 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
                        try {
                                IMergeStrategy strategy = DefaultMergeStrategy.NewInstance(Person.class);
                                strategy.setMergeMode("institutionalMemberships", MergeMode.FIRST);
-                               CdmStore.getCommonService().merge((IMergable)mergeTarget, (IMergable)entity, strategy);                         
+                               CdmStore.getCommonService().merge((IMergable)mergeTarget, (IMergable)entity, Person.class);
                        } catch (MergeException e) {
                                MessagingUtils.errorDialog("Bulk Editor Merge Error",
                                                this,
@@ -144,39 +140,39 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
        public List<TeamOrPersonBase> listEntities(IIdentifiableEntityServiceConfigurator configurator) {
                return CdmStore.getSearchManager().findTeamOrPersons(configurator);
        }
-       
-       /** {@inheritDoc} 
+
+       /** {@inheritDoc}
        @Override
        public AgentBase loadEntity(UUID uuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return CdmStore.getService(IAgentService.class).load(uuid, propertyPaths);
        }*/
 
-       
+
        public boolean delete(AgentBase entity) throws ReferencedObjectUndeletableException  {
-               
-                       return CdmStore.getService(IAgentService.class).delete(entity) != null;                 
-               
-       }
 
-       /** {@inheritDoc} */
-       public boolean save(AgentBase entity) {
-               
-               return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+                       return CdmStore.getService(IAgentService.class).delete(entity) != null;
+
        }
 
+//     /** {@inheritDoc} */
+//     public boolean save(AgentBase entity) {
+//
+//             return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+//     }
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
         */
        @Override
        public List<IBulkEditorSortProvider<TeamOrPersonBase>> getSortProviders() {
                List<IBulkEditorSortProvider<TeamOrPersonBase>> sortProviders = super.getSortProviders();
-               
+
                sortProviders.add(0, new IdentifiableEntitySortProvider<TeamOrPersonBase>());
-               
+
                return sortProviders;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#createEntityCreator()
         */
@@ -187,7 +183,11 @@ public class AgentEditorInput extends AbstractBulkEditorInput<TeamOrPersonBase>
 
        @Override
        public boolean save(TeamOrPersonBase entity) {
-               return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {
+               return CdmStore.getService(IAgentService.class).merge(entity) != null;
+           } else {
+               return CdmStore.getService(IAgentService.class).saveOrUpdate(entity) != null;
+           }
        }
 
        @Override
index 98724faa802a6a0942d057e5507524cf43dc5873..ea7019bdc8fe6b8cab855f4cdc34fcc02efefe92 100644 (file)
@@ -1,18 +1,16 @@
 // $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.
 */
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
-import java.util.Arrays;
 import java.util.List;
-import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IGroupService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -30,9 +28,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
 
        public static final String ID = "bulkeditor.input.group";
-       
+
        private static GroupEditorInput instance;
-       
+
        /**
         * @return the instance
         */
@@ -42,7 +40,7 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
                }
                return instance;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#getName()
         */
@@ -64,7 +62,11 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
         */
        @Override
        public boolean save(Group entity) {
-               return CdmStore.getService(IGroupService.class).saveOrUpdate(entity) != null;
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {
+               return CdmStore.getService(IGroupService.class).merge(entity) != null;
+           } else {
+               return CdmStore.getService(IGroupService.class).saveOrUpdate(entity) != null;
+           }
        }
 
        /* (non-Javadoc)
@@ -86,10 +88,10 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
 
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
-        
+
        @Override
        protected Group loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return CdmStore.getService(IGroupService.class).load(entityUuid, propertyPaths);
        }
 */
@@ -100,7 +102,7 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
        protected IEntityCreator<Group> createEntityCreator() {
                return new GroupCreator();
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
         */
@@ -109,6 +111,6 @@ public class GroupEditorInput extends AbstractBulkEditorInput<Group> {
                return entity.getName();
        }
 
-       
+
 
 }
index c9298f93bd147e80e77643c98f5c56409395dedc..d717431f6c76bb92d96edc45a45dafdaf4f52c69 100644 (file)
@@ -1,22 +1,19 @@
 // $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.
 */
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
-import java.util.Arrays;
 import java.util.List;
-import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.INameService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
-import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityCreator;
 import eu.etaxonomy.taxeditor.bulkeditor.IBulkEditorSortProvider;
@@ -34,14 +31,14 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
 
        /**
-        * 
+        *
         */
        private static final long serialVersionUID = -3085029575759626823L;
        private static NameEditorInput instance;
 
        /** Constant <code>ID="bulkeditor.input.name"</code> */
        public static final String ID = "bulkeditor.input.name";
-       
+
        /**
         * <p>Getter for the field <code>instance</code>.</p>
         *
@@ -53,7 +50,7 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
                }
                return instance;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#getName()
         */
@@ -62,7 +59,8 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getName() {
+       @Override
+    public String getName() {
                return BulkEditorInputType.NAME.label;
        }
 
@@ -74,7 +72,8 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getToolTipText() {
+       @Override
+    public String getToolTipText() {
                return getName();
        }
 
@@ -102,22 +101,28 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
                return CdmStore.getSearchManager().findNames(configurator);
        }
 
-       /** {@inheritDoc} 
+       /** {@inheritDoc}
        @Override
        public TaxonNameBase loadEntity(UUID uuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return CdmStore.getService(INameService.class).load(uuid, propertyPaths);
        }
 */
-       /** {@inheritDoc} 
+       /** {@inheritDoc}
         **/
-       public boolean delete(TaxonNameBase entity)  {
+       @Override
+    public boolean delete(TaxonNameBase entity)  {
                return CdmStore.getService(INameService.class).delete(entity) != null;
        }
 
        /** {@inheritDoc} */
-       public boolean save(TaxonNameBase entity) {
-               return CdmStore.getService(INameService.class).saveOrUpdate(entity) != null;
+       @Override
+    public boolean save(TaxonNameBase entity) {
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {
+               return CdmStore.getService(INameService.class).merge(entity) != null;
+           } else {
+               return CdmStore.getService(INameService.class).saveOrUpdate(entity) != null;
+           }
        }
 
        /* (non-Javadoc)
@@ -134,12 +139,12 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
        @Override
        public List<IBulkEditorSortProvider<TaxonNameBase>> getSortProviders() {
                List<IBulkEditorSortProvider<TaxonNameBase>> sortProviders = super.getSortProviders();
-               
+
                sortProviders.add(0, new IdentifiableEntitySortProvider<TaxonNameBase>());
-               
+
                return sortProviders;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
         */
@@ -150,7 +155,7 @@ public class NameEditorInput extends AbstractBulkEditorInput<TaxonNameBase> {
                }
                return super.getTypeText(entity);
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
         */
index 8e954f8bd163e28d137a6295c6aee14b8cbc802c..57599ec76791d785f4682e716b02a330c6a83e96 100644 (file)
@@ -10,9 +10,7 @@
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
-import java.util.Arrays;
 import java.util.List;
-import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IOccurrenceService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -69,7 +67,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
         */
-       /** {@inheritDoc} 
+       /** {@inheritDoc}
        @Override
        protected SpecimenOrObservationBase loadEntity(UUID entityUuid) {
                List<String> propertyPaths = Arrays.asList(new String[]{});
@@ -125,7 +123,7 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.annotatedlineeditor.IEntityPersistenceService#delete(java.lang.Object)
         */
-       /** {@inheritDoc} 
+       /** {@inheritDoc}
         * @throws ReferencedObjectUndeletableException */
        @Override
     public boolean delete(SpecimenOrObservationBase entity) throws ReferencedObjectUndeletableException {
@@ -138,7 +136,11 @@ public class OccurrenceEditorInput extends AbstractBulkEditorInput<SpecimenOrObs
        /** {@inheritDoc} */
        @Override
     public boolean save(SpecimenOrObservationBase entity) {
-               return CdmStore.getService(IOccurrenceService.class).save(entity) != null;
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {
+               return CdmStore.getService(IOccurrenceService.class).merge(entity) != null;
+           } else {
+               return CdmStore.getService(IOccurrenceService.class).save(entity) != null;
+           }
        }
 
 
index d32a648cd0bf522d3a32dcc2e22ec9fe34612537..7528faf17f96dcdf8455f45e82a073cded81b6ba 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.
 */
@@ -36,13 +36,13 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
 
        /**
-        * 
+        *
         */
        private static final long serialVersionUID = 3806243517765126749L;
 
        /** Constant <code>ID="bulkeditor.input.reference"</code> */
        public static final String ID = "bulkeditor.input.reference";
-       
+
        private static ReferenceEditorInput instance;
 
        /**
@@ -53,7 +53,7 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
        public static String getID() {
                return ID;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#getName()
         */
@@ -62,7 +62,8 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getName() {
+       @Override
+    public String getName() {
                return BulkEditorInputType.REFERENCE.label;
        }
 
@@ -74,7 +75,8 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
         *
         * @return a {@link java.lang.String} object.
         */
-       public String getToolTipText() {
+       @Override
+    public String getToolTipText() {
                return getName();
        }
 
@@ -98,7 +100,7 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
        public boolean isMergingEnabled() {
                return true;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMarkerTypeEditingEnabled(eu.etaxonomy.cdm.model.common.MarkerType)
         */
@@ -111,31 +113,37 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
                return super.isMarkerTypeEditingEnabled(markerType);
        }
 
-       
+
        /** {@inheritDoc} */
        @Override
        public List listEntities(IIdentifiableEntityServiceConfigurator configurator) {
                return CdmStore.getSearchManager().findReferences(configurator);
        }
-       
+
        // Entity persistence
-       
+
        /** {@inheritDoc} */
        @Override
        public Reference loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{"*", "inReference.*", "authorTeam.*"}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{"*", "inReference.*", "authorTeam.*"});
                return CdmStore.getService(IReferenceService.class).load(entityUuid, propertyPaths);
        }
 
-       /** {@inheritDoc} 
+       /** {@inheritDoc}
         * @throws ReferencedObjectUndeletableException */
-       public boolean delete(Reference entity) throws ReferencedObjectUndeletableException {
+       @Override
+    public boolean delete(Reference entity) throws ReferencedObjectUndeletableException {
                return CdmStore.getService(IReferenceService.class).delete(entity) != null;
        }
 
        /** {@inheritDoc} */
-       public boolean save(Reference entity) {
-               return CdmStore.getService(IReferenceService.class).saveOrUpdate(entity) != null;
+       @Override
+    public boolean save(Reference entity) {
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {
+               return CdmStore.getService(IReferenceService.class).merge(entity) != null;
+           } else {
+               return CdmStore.getService(IReferenceService.class).saveOrUpdate(entity) != null;
+           }
        }
 
        /* (non-Javadoc)
@@ -145,20 +153,20 @@ public class ReferenceEditorInput extends AbstractBulkEditorInput<Reference> {
        protected IEntityCreator<Reference> createEntityCreator() {
                return new ReferenceCreator();
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getSortProviders()
         */
        @Override
        public List<IBulkEditorSortProvider<Reference>> getSortProviders() {
                List<IBulkEditorSortProvider<Reference>> sortProviders = super.getSortProviders();
-               
+
                sortProviders.add(0, new IdentifiableEntitySortProvider<Reference>());
                sortProviders.add(1, new ReferenceSortProvider());
-               
+
                return sortProviders;
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getTypeText(java.lang.Object)
         */
index 3367a5e09279f936f52c687d8c049e656a818f65..932803f38fc0755fff3cbd1f03b1543b9edc6233 100644 (file)
@@ -27,9 +27,9 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
        private static TaxonEditorInput instance;\r
        /** Constant <code>ID="bulkeditor.input.taxon"</code> */\r
        public static final String ID = "bulkeditor.input.taxon";\r
-       \r
-       \r
-       \r
+\r
+\r
+\r
        /**\r
         * <p>Getter for the field <code>instance</code>.</p>\r
         *\r
@@ -39,11 +39,11 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
                if (instance == null) {\r
                        instance = new TaxonEditorInput();\r
                }\r
-       \r
+\r
                return instance;\r
        }\r
-       \r
-       \r
+\r
+\r
        @Override\r
        public String getName() {\r
                return BulkEditorInputType.TAXON.label;\r
@@ -54,7 +54,7 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
                return getName();\r
        }\r
 \r
-       \r
+\r
        /**\r
         * <p>getID</p>\r
         *\r
@@ -63,7 +63,7 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
        public static Object getID() {\r
                return ID;\r
        }\r
-       \r
+\r
        /* (non-Javadoc)\r
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.BulkEditorInput#isMergingEnabled()\r
         */\r
@@ -74,10 +74,14 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
        }\r
        @Override\r
        public boolean save(TaxonBase entity) {\r
-               return CdmStore.getService(ITaxonService.class).saveOrUpdate(entity) != null;\r
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {\r
+               return CdmStore.getService(ITaxonService.class).merge(entity) != null;\r
+           } else {\r
+               return CdmStore.getService(ITaxonService.class).saveOrUpdate(entity) != null;\r
+           }\r
        }\r
 \r
-       \r
+\r
 \r
        /** {@inheritDoc} */\r
        @Override\r
@@ -88,7 +92,7 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
                List<TaxonBase> taxa =  CdmStore.getSearchManager().findTaxa(configurator);\r
                List<TaxonBase> taxaCopy = new ArrayList<TaxonBase>();\r
                for (TaxonBase taxon:taxa){\r
-                       \r
+\r
                        if (taxon instanceof Taxon){\r
                                taxaCopy.add(HibernateProxyHelper.deproxy(taxon, Taxon.class));\r
                        }else{\r
@@ -101,15 +105,16 @@ public class TaxonEditorInput extends AbstractBulkEditorInput<TaxonBase>{
 \r
        @Override\r
        protected TaxonBase loadEntity(UUID entityUuid) {\r
-               List<String> propertyPaths = Arrays.asList(new String[]{}); \r
+               List<String> propertyPaths = Arrays.asList(new String[]{});\r
                return CdmStore.getService(ITaxonService.class).load(entityUuid, propertyPaths);\r
        }\r
 \r
-       \r
 \r
-       /** {@inheritDoc} \r
+\r
+       /** {@inheritDoc}\r
         * @throws ReferencedObjectUndeletableException */\r
-       public boolean delete(TaxonBase entity) {\r
+       @Override\r
+    public boolean delete(TaxonBase entity) {\r
                return CdmStore.getService(ITaxonService.class).delete(entity) != null;\r
        }\r
        @Override\r
index c80733b1e807b558638e0ae860322e959e22f87b..c80a7c4d7b4ea19ad1ec961d48653068a913a4da 100644 (file)
@@ -1,18 +1,16 @@
 // $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.
 */
 
 package eu.etaxonomy.taxeditor.bulkeditor.input;
 
-import java.util.Arrays;
 import java.util.List;
-import java.util.UUID;
 
 import eu.etaxonomy.cdm.api.service.IUserService;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -30,9 +28,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
 public class UserEditorInput extends AbstractBulkEditorInput<User> {
 
        public static final String ID = "bulkeditor.input.user";
-       
+
        private static UserEditorInput instance;
-       
+
        /**
         * @return the instance
         */
@@ -42,7 +40,7 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
                }
                return instance;
        }
-       
+
        /* (non-Javadoc)
         * @see org.eclipse.ui.IEditorInput#getName()
         */
@@ -64,7 +62,12 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
         */
        @Override
        public boolean save(User entity) {
-               return CdmStore.getService(IUserService.class).saveOrUpdate(entity) != null;
+           if(CdmStore.getCurrentSessionManager().isRemoting()) {
+               return CdmStore.getService(IUserService.class).merge(entity) != null;
+           } else {
+               return CdmStore.getService(IUserService.class).saveOrUpdate(entity) != null;
+           }
+
        }
 
        /* (non-Javadoc)
@@ -84,13 +87,13 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
                return CdmStore.getSearchManager().findUsers(configurator);
        }
 
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#loadEntity(java.util.UUID)
-       
+
        @Override
        protected User loadEntity(UUID entityUuid) {
-               List<String> propertyPaths = Arrays.asList(new String[]{}); 
+               List<String> propertyPaths = Arrays.asList(new String[]{});
                return CdmStore.getService(IUserService.class).load(entityUuid, propertyPaths);
        }
  */
@@ -101,7 +104,7 @@ public class UserEditorInput extends AbstractBulkEditorInput<User> {
        protected IEntityCreator<User> createEntityCreator() {
                return new UserCreator();
        }
-       
+
        /* (non-Javadoc)
         * @see eu.etaxonomy.taxeditor.bulkeditor.input.AbstractBulkEditorInput#getText(eu.etaxonomy.cdm.model.common.ICdmBase)
         */
index aba437843535c3a7afac76042df26592e35a13e9..91b7734797b5af7b5ded0242db68422bb69aab9a 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.
 */
@@ -43,7 +43,11 @@ public class UserCreator  implements IEntityCreator<User>{
        public User createEntity(Object key, String text) {
                try{
                        User user = User.NewInstance(text, text);
-                       CdmStore.getService(IUserService.class).createUser(user);
+                        if(CdmStore.getCurrentSessionManager().isRemoting()) {
+                            user = CdmStore.getService(IUserService.class).merge(user);
+                        } else {
+                            CdmStore.getService(IUserService.class).createUser(user);
+                        }
                        return user;
                } catch (AccessDeniedException e){
                        MessagingUtils.messageDialog("Access denied", getClass(), e.getMessage(), e);
index ba077a4031add5b3a04384f8b9cfc414efbf47dd..41b529a2179c63c4a7fdeb5afd85cd68ed2e5720 100644 (file)
@@ -1 +1,5 @@
 bin
+/target/
+/target/
+/target/
+/target/
index 93af551851d1675c4b1ad2432c5501cd7c6329ce..626cad9d5255623d07980c42646928617a86f69a 100644 (file)
     </property>\r
     <property name="httpInvokerRequestExecutor">\r
       <bean\r
-        class="org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor">\r
+        class="eu.etaxonomy.taxeditor.service.CdmServiceRequestExecutor">\r
         <property name="readTimeout" value="0" />\r
       </bean>\r
     </property>\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.properties
deleted file mode 100644 (file)
index 0ff9934..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-#\r
-#\r
-# If you are having problems with logging you may debug Log4J initialization,\r
-# start the application with a system property log4j.configDebug set to "true".\r
-# E.g.:\r
-#\r
-#     java -Dlog4j.configDebug=true\r
-#\r
-log4j.rootLogger=WARN, stdout\r
-\r
-\r
-log4j.appender.stdout=org.apache.log4j.ConsoleAppender\r
-log4j.appender.stdout.layout=org.apache.log4j.PatternLayout\r
-log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n\r
-\r
-##\r
-## NOTICE !!!!\r
-## no need to configure a FileAppender here\r
-## use eu.etaxonomy.cdm.remote.config.LoggingConfigurer instead\r
-##\r
-\r
-###\r
-# cdm\r
-###\r
-#log4j.logger.eu.etaxonomy.cdm = INFO\r
-#log4j.logger.eu.etaxonomy.taxeditor.remoting.source = INFO\r
-#log4j.logger.eu.etaxonomy.taxeditor.remoting.cache = INFO\r
diff --git a/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml b/eu.etaxonomy.taxeditor.cdmlib/src/main/resources/log4j.xml
new file mode 100644 (file)
index 0000000..ea880ad
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
+  debug="false">
+  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+    <param name="Target" value="System.out" />
+    <layout class="org.apache.log4j.PatternLayout">
+      <param name="ConversionPattern" value="%d %p [%c] - %m%n" />
+    </layout>
+    <filter class="org.apache.log4j.filter.ExpressionFilter">
+      <param name="expression"
+        value="msg like  '.*has a maxElementsInMemory of 0. This might lead to performance degradation or OutOfMemoryError at Terracotta client.*'" />
+      <param name="acceptOnMatch" value="false" />
+    </filter>
+    <filter class="org.apache.log4j.filter.ExpressionFilter">
+      <param name="expression"
+        value="msg like  '.*[net.sf.ehcache.pool.sizeof.SizeOf] - The configured limit of.*'" />
+      <param name="acceptOnMatch" value="false" />
+    </filter>
+  </appender>
+  <root>
+    <priority value="WARN" />
+    <appender-ref ref="CONSOLE" />
+  </root>
+  <logger name="org.hibernate.proxy.AbstractLazyInitializer">
+    <level value="info" />
+  </logger>
+  <logger
+    name="org.hibernate.collection.internal.AbstractPersistentCollection">
+    <level value="info" />
+  </logger>
+</log4j:configuration>
\ No newline at end of file
index a20f3a7229042cf264fea51fa73d5f3879543e43..3839393713d4e91a253f4c6a040b9390c8a0823f 100644 (file)
@@ -784,4 +784,12 @@ public class TransientAgentService implements IAgentService {
         return defaultService.delete(arg0);
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<AgentBase> merge(List<AgentBase> arg0) {
+       return defaultService.merge(arg0);
+    }
+
 }
index d563a290b6c5e97b21623b19b0a8fe807c46ce9e..0423feb29ebf92aa9eef247066f6d744efb1cb26 100644 (file)
@@ -958,4 +958,12 @@ public class TransientClassificationService implements IClassificationService {
         return defaultService.delete(arg0);
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<Classification> merge(List<Classification> arg0) {
+        return defaultService.merge(arg0);
+    }
+
 }
index 4099ffdc2b010f869b1233b781c6676e5d37cf6f..5e5f0e2fd465339cf238ad8b5b00d8ef0ea14634 100644 (file)
@@ -718,4 +718,12 @@ public class TransientCollectionService implements ICollectionService {
         return defaultService.delete(arg0);
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<Collection> merge(List<Collection> arg0) {
+        return defaultService.merge(arg0);
+    }
+
 }
index 66d18dee7686e3288fee1dba2a4d4fe7c621516b..690275f198ea08d8dce7d565870cc87df5a8ca12 100644 (file)
@@ -1171,4 +1171,12 @@ public class TransientDescriptionService implements IDescriptionService {
         return defaultService.delete(arg0);
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<DescriptionBase> merge(List<DescriptionBase> arg0) {
+        return defaultService.merge(arg0);
+    }
+
 }
index 428165d0122e8bfdfbe0de2964bd4555fa431ba8..dfac645779001d2ed8de3853bed3ae94cccaa3bc 100644 (file)
@@ -1189,4 +1189,12 @@ public class TransientNameService implements INameService {
     public DeleteResult delete(Collection<UUID> arg0) {
         return defaultService.delete(arg0);
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<TaxonNameBase> merge(List<TaxonNameBase> arg0) {
+        return defaultService.merge(arg0);
+    }
 }
index c4c5e3ff7c0327a1d08d3222d4ed3734087d661c..0a0c9ee283d90fe14e0eaa3bb622681b15ebd1d0 100644 (file)
@@ -1073,4 +1073,12 @@ public class TransientOccurenceService implements IOccurrenceService {
         return defaultService.delete(arg0);
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<SpecimenOrObservationBase> merge(List<SpecimenOrObservationBase> arg0) {
+        return defaultService.merge(arg0);
+    }
+
 }
index 399b42bb235a433a91c30cf65d5537e10efa2262..7cf66710929f3becebefc5e4491bb581c1cadc33 100644 (file)
@@ -725,4 +725,12 @@ public class TransientReferenceService implements IReferenceService {
     public DeleteResult delete(Collection<UUID> arg0) {
         return defaultService.delete(arg0);
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<Reference> merge(List<Reference> arg0) {
+        return defaultService.merge(arg0);
+    }
 }
index 5692a93f17a3c5e3dbabb5b1e038b3f1d2cca0db..be1212a6ffe9bf878977763fcc4b4ebc77706e83 100644 (file)
@@ -1480,4 +1480,20 @@ public class TransientTaxonService implements ITaxonService {
     public DeleteResult delete(Collection<UUID> arg0) {
         return defaultService.delete(arg0);
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<TaxonBase> merge(List<TaxonBase> arg0) {
+        return defaultService.merge(arg0);
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.ITaxonService#deleteSynonym(java.util.UUID, eu.etaxonomy.cdm.api.service.config.SynonymDeletionConfigurator)
+     */
+    @Override
+    public DeleteResult deleteSynonym(UUID arg0, SynonymDeletionConfigurator arg1) {
+        return defaultService.deleteSynonym(arg0, arg1);
+    }
 }
index 4cbef62c457f80dc5178efff2033c15363a4a155..af6537698321acd2ad9bb68d1eb32d146e3aa3f3 100644 (file)
@@ -887,4 +887,12 @@ public class TransientTermService implements ITermService {
     public DeleteResult delete(Collection<UUID> arg0) {
         return defaultService.delete(arg0);
     }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.service.IService#merge(java.util.List)
+     */
+    @Override
+    public List<DefinedTermBase> merge(List<DefinedTermBase> arg0) {
+        return defaultService.merge(arg0);
+    }
 }
index 540ed4a692ceed4c277de05ce20cd7c732da37fc..a8f02faceea92bc257bcdadbc44ed6e4ef1acbe5 100644 (file)
@@ -88,7 +88,7 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
                                logger.debug("User authenticated: " + user.getUsername() + "\n" + gaText.toString());
                        }
 
-                       authentication = new UsernamePasswordAuthenticationToken(username,password, authentication.getAuthorities());
+                       authentication = new UsernamePasswordAuthenticationToken(user,password, authentication.getAuthorities());
                        SecurityContextHolder.getContext().setAuthentication(authentication);
 
                        if(!authentication.equals(lastAuthentication)){
@@ -122,7 +122,7 @@ public class LoginManager extends Observable implements IConversationEnabled, IC
         * @return a {@link eu.etaxonomy.cdm.model.common.User} object.
         */
        public User getAuthenticatedUser(){
-               Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+               Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
 
                if(authentication != null
                                && authentication.getPrincipal() != null
index 03e75567cbddb116caf87aca0d82a48aa0b7e616..64c4d55a94f1756a6e2780c0b831142d54182a1a 100644 (file)
         <priority value ="WARN" />
         <appender-ref ref="CONSOLE"/>
     </root>
+    <logger name="org.hibernate.proxy.AbstractLazyInitializer">
+        <level value="info"/> 
+    </logger>
+    <logger name="org.hibernate.collection.internal.AbstractPersistentCollection">
+        <level value="info"/> 
+    </logger>
 </log4j:configuration>
\ No newline at end of file