merge-update from trunk
authorPatric Plitzner <p.plitzner@bgbm.org>
Wed, 17 Jun 2015 13:52:06 +0000 (13:52 +0000)
committerPatric Plitzner <p.plitzner@bgbm.org>
Wed, 17 Jun 2015 13:52:06 +0000 (13:52 +0000)
18 files changed:
.gitignore
eu.etaxonomy.taxeditor.application/.classpath
eu.etaxonomy.taxeditor.application/src/test/java/eu/etaxonomy/taxeditor/README.txt [new file with mode: 0644]
eu.etaxonomy.taxeditor.cdmlib/.classpath
eu.etaxonomy.taxeditor.cdmlib/src/main/java/eu/etaxonomy/cdm/api/cache/CdmServiceCacher.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientAgentService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/TransientClassificationService.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/dataimport/transientServices/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.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/DerivateDropListener.java
eu.etaxonomy.taxeditor.navigation/OSGI-INF/l10n/bundle_de.properties
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/name/ProtologueElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/occurrence/dna/AbstractUnboundEntityCollectionSection.java

index 074683469e08c4a0d5b4632b9a11b4499d953467..87dc88128e4c55100ba12b0ceb536fcbed647dd4 100644 (file)
@@ -66,6 +66,7 @@ eu.etaxonomy.taxeditor.store/target
 eu.etaxonomy.taxeditor.test/screenshots/*.jpeg
 eu.etaxonomy.taxeditor.test/target
 eu.etaxonomy.taxeditor/.settings
+eu.etaxonomy.taxeditor/rcp.target
 eu.etaxonomy.taxeditor/target
 /runtime-taxeditor.product
 /target
index 53dbdc7801b5019e5530b50d2e88e1f666fa8f39..4c7e96f59500b4f98198fb4a11bdf511d1107b48 100644 (file)
@@ -4,6 +4,5 @@
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry including="**/*.java" kind="src" path="src/main/java"/>
        <classpathentry kind="src" path="src/main/resources"/>
-       <classpathentry kind="src" path="src/test/java/"/>
        <classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/eu.etaxonomy.taxeditor.application/src/test/java/eu/etaxonomy/taxeditor/README.txt b/eu.etaxonomy.taxeditor.application/src/test/java/eu/etaxonomy/taxeditor/README.txt
new file mode 100644 (file)
index 0000000..b2e1e57
--- /dev/null
@@ -0,0 +1 @@
+This is only a placeholder file to allow an empty folder. Can be deleted once another file is present in this folder.
\ No newline at end of file
index 452894c9af5aa77b41a5bab6fd16a48df7366359..508f6193f46740039ff0f46f52bac418fff2486f 100644 (file)
@@ -4,6 +4,7 @@
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
        <classpathentry kind="src" path="src/main/java"/>
        <classpathentry kind="src" path="src/main/resources"/>
+       <classpathentry kind="src" path="src/test/java/"/>
        <classpathentry exported="true" kind="lib" path="lib/activation-1.1.1.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/antlr-2.7.7.jar"/>
        <classpathentry exported="true" kind="lib" path="lib/aopalliance-1.0.jar"/>
index f122d18eb3dc948b16be3a74afea317ebdf08f2a..4de156c496dadc30b98aa873290f29f8d6b2613e 100644 (file)
@@ -20,7 +20,7 @@ import eu.etaxonomy.cdm.model.common.CdmBase;
  * @param <T>
  */
 @Component
-public class CdmServiceCacher<T extends CdmBase> extends CdmCacher<T> {
+public class CdmServiceCacher<T extends CdmBase> extends CdmCacher {
 
        @Autowired
        ITermService termService;
@@ -39,4 +39,22 @@ public class CdmServiceCacher<T extends CdmBase> extends CdmCacher<T> {
 
     }
 
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.model.ICdmCacher#isCachable(eu.etaxonomy.cdm.model.common.CdmBase)
+     */
+    @Override
+    public boolean isCachable(CdmBase arg0) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    /* (non-Javadoc)
+     * @see eu.etaxonomy.cdm.api.cache.CdmCacher#load(eu.etaxonomy.cdm.model.common.CdmBase)
+     */
+    @Override
+    public CdmBase load(CdmBase arg0) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }
index a604e1bbd30c392326a3aec66ba2efcbcf606891..6f93cf255fd71b94b5e5a030e135b1f5e879f671 100644 (file)
@@ -60,7 +60,7 @@ import eu.etaxonomy.cdm.strategy.merge.MergeException;
  */
 public class TransientAgentService implements IAgentService {
 
-    private IAgentService defaultService;
+    private final IAgentService defaultService;
 
     /**
      * @param defaultAgentService
@@ -770,4 +770,12 @@ public class TransientAgentService implements IAgentService {
                return defaultService.convertTeam2Person(arg0);
        }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
 }
index 5e33668e57a1e86744a9c0a8e23b71c23bab8058..7cee4d85b6b7dbe529d91a016a783014c4a75929 100644 (file)
@@ -70,6 +70,14 @@ public class TransientClassificationService implements IClassificationService {
         this.defaultService = defaultClassificationService;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
     /**
      * @param t
      * @param pageSize
index 310c39c99000755cb7b24caf67d1d33eb5f2c4a6..7d22b8e0c3541253b2c11d969485734ba343a7b8 100644 (file)
@@ -55,6 +55,14 @@ public class TransientCollectionService implements ICollectionService {
 
     private final ICollectionService defaultService;
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
     /* (non-Javadoc)
      * @see eu.etaxonomy.cdm.api.service.IService#save(eu.etaxonomy.cdm.model.common.ICdmBase)
      */
index f804d48ef6c39bdb59ebd1125ddacd03c987bffa..ff2cdc1e3546e29c0cf355cf3e6754a300849089 100644 (file)
@@ -23,6 +23,7 @@ import org.hibernate.envers.query.criteria.AuditCriterion;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.DistributionTree;
 import eu.etaxonomy.cdm.api.service.IDescriptionService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.dto.FindByIdentifierDTO;
@@ -1106,11 +1107,6 @@ public class TransientDescriptionService implements IDescriptionService {
                return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
        }
 
-       @Override
-       public UUID deleteDescription(DescriptionBase description) {
-               return defaultService.deleteDescription(description);
-       }
-
        /* (non-Javadoc)
         * @see eu.etaxonomy.cdm.api.service.IDescriptionService#pageNamedAreasInUse(boolean, java.lang.Integer, java.lang.Integer)
         */
@@ -1118,4 +1114,52 @@ public class TransientDescriptionService implements IDescriptionService {
        public Pager<TermDto> pageNamedAreasInUse(boolean includeAllParents, Integer pageSize, Integer pageNumber) {
            return defaultService.pageNamedAreasInUse(includeAllParents, pageSize, pageNumber);
        }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult deleteDescription(DescriptionBase arg0) {
+        return defaultService.deleteDescription(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult deleteDescription(UUID arg0) {
+        return defaultService.deleteDescription(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public UUID deleteDescriptionElement(UUID arg0) {
+        return defaultService.deleteDescriptionElement(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public UpdateResult moveTaxonDescriptions(Taxon arg0, Taxon arg1) {
+        return defaultService.moveTaxonDescriptions(arg0, arg1);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public UpdateResult moveTaxonDescriptions(UUID arg0, UUID arg1) {
+        return defaultService.moveTaxonDescriptions(arg0, arg1);
+    }
 }
index 7daa4e43f1a92ff5e3666b1d60bdd32b2f0caf1c..267831d4ad07b0e46d815c3a8ae552688b39c242 100644 (file)
@@ -26,6 +26,7 @@ import org.hibernate.envers.query.criteria.AuditCriterion;
 
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.INameService;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
 import eu.etaxonomy.cdm.api.service.config.NameDeletionConfigurator;
@@ -78,7 +79,7 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientNameService implements INameService {
 
-    private INameService defaultService;
+    private final INameService defaultService;
 
     /**
      *
@@ -1148,25 +1149,41 @@ public class TransientNameService implements INameService {
        public TaxonNameBase findWithoutFlush(UUID uuid) {
                return defaultService.findWithoutFlush(uuid);
        }
-       
-       
+
+
 
        @Override
        public <S extends TaxonNameBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
                return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
        }
 
-       
+
 
        @Override
        public List<HashMap<String, String>> getNameRecords() {
-               
+
                return defaultService.getNameRecords();
        }
-       
-       
 
-       
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public UpdateResult setAsGroupsBasionym(UUID arg0) {
+        return defaultService.setAsGroupsBasionym(arg0);
+    }
+
+
+
+
 
 
 }
index 40a46f02be7eb418a9e4595720f57330cf3f2546..f12b34a94b1c166384922dadf6a1f30b39486eb2 100644 (file)
@@ -1056,4 +1056,12 @@ public class TransientOccurenceService implements IOccurrenceService {
            return defaultService.getAllHierarchyDerivatives(specimen);
        }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
 }
index 1cb2f4869f65e0377fef7b1dd7c81a9226d9280c..c4181efa0e3afda920fa3fd6ee164b065afaa73d 100644 (file)
@@ -55,7 +55,7 @@ import eu.etaxonomy.cdm.strategy.merge.IMergeStrategy;
  */
 public class TransientReferenceService implements IReferenceService {
 
-    private IReferenceService defaultService;
+    private final IReferenceService defaultService;
 
     /**
      * @param defaultReferenceService
@@ -704,10 +704,18 @@ public class TransientReferenceService implements IReferenceService {
        public Reference findWithoutFlush(UUID uuid) {
                return defaultService.findWithoutFlush(uuid);
        }
-       
+
        @Override
        public <S extends Reference>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
                return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
        }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
 }
index b26a6e84f23db90bdb13fbc18c89311c9cd4e0aa..bced71d45ac9f85221d7d7e92dd4da88ee7f6de9 100644 (file)
@@ -27,6 +27,7 @@ import org.hibernate.envers.query.criteria.AuditCriterion;
 import eu.etaxonomy.cdm.api.service.DeleteResult;
 import eu.etaxonomy.cdm.api.service.ITaxonService;
 import eu.etaxonomy.cdm.api.service.TaxaAndNamesSearchMode;
+import eu.etaxonomy.cdm.api.service.UpdateResult;
 import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase;
 import eu.etaxonomy.cdm.api.service.config.IFindTaxaAndNamesConfigurator;
 import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator;
@@ -1418,9 +1419,9 @@ public class TransientTaxonService implements ITaxonService {
            return defaultService.findByIdentifier(clazz, identifier, identifierType, subtreeFilter, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
        }
 
-       
 
-       
+
+
 
 
 
@@ -1431,11 +1432,40 @@ public class TransientTaxonService implements ITaxonService {
                        SynonymRelationshipType newSynonymRelationshipType,
                        Reference reference, String referenceDetail, boolean keepReference)
                        throws HomotypicalGroupChangeException {
-               
+
                return defaultService.moveSynonymToAnotherTaxon(oldSynonymRelation, newTaxonUUID, moveHomotypicGroup, newSynonymRelationshipType, reference, referenceDetail, keepReference);
        }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult deleteSynonym(UUID arg0, UUID arg1, SynonymDeletionConfigurator arg2) {
+        return defaultService.deleteSynonym(arg0, arg1, arg2);
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult deleteTaxon(UUID arg0, TaxonDeletionConfigurator arg1, UUID arg2) {
+        return defaultService.deleteTaxon(arg0, arg1, arg2);
+    }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public UpdateResult swapSynonymAndAcceptedTaxon(UUID arg0, UUID arg1) {
+        return defaultService.swapSynonymAndAcceptedTaxon(arg0, arg1);
+    }
 
 }
index 4ade2430575cc4461698e941fb55970045e80384..552d205fe31df869cb6e810c121ef70704550f68 100644 (file)
@@ -865,11 +865,19 @@ public class TransientTermService implements ITermService {
        public DefinedTermBase findWithoutFlush(UUID uuid) {
                return defaultService.findWithoutFlush(uuid);
        }
-       
+
 
        @Override
        public <S extends DefinedTermBase>  Pager<FindByIdentifierDTO<S>> findByIdentifier(Class<S> clazz, String identifier, DefinedTerm identifierType, MatchMode matchmode, boolean includeEntity, Integer pageSize, Integer pageNumber, List<String> propertyPaths){
                return defaultService.findByIdentifier(clazz, identifier, identifierType, matchmode, includeEntity, pageSize, pageNumber, propertyPaths);
        }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public DeleteResult delete(UUID arg0) {
+        return defaultService.delete(arg0);
+    }
+
 }
index e5148ff67db0b187cbdd377c87d89f87205265e8..55b2f77520e58795c8e91288fd7a4c61e482d366 100644 (file)
@@ -13,6 +13,8 @@ import org.eclipse.core.runtime.Status;
 import org.eclipse.jface.util.LocalSelectionTransfer;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.jface.viewers.ViewerDropAdapter;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTargetEvent;
 import org.eclipse.swt.dnd.TransferData;
 
 import eu.etaxonomy.taxeditor.editor.EditorUtil;
@@ -64,4 +66,13 @@ public class DerivateDropListener extends ViewerDropAdapter {
         return LocalSelectionTransfer.getTransfer().isSupportedType(transferType) && target instanceof TreeNode;
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void dragOver(DropTargetEvent event) {
+        super.dragOver(event);
+        event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
+    }
+
 }
index 12b1f1376a8b6d5865472a865a6fb9183bbce29e..66a7f8d7355e2c5961b6bee5aef6d9d4b5179cef 100644 (file)
@@ -25,7 +25,7 @@ command.label.fixClassificationHierarchy = Erzeuge Taxon-Hierarchie
 \r
 menu.label.0 = Aktualisieren\r
 command.label.17 = Liste\r
-command.label.18 = Schlsselknoten\r
+command.label.18 = Schl\u00fcsselknoten\r
 command.label.19 = L\u00F6schen\r
 command.name = Neuer Taxonknoten\r
 command.name.0 = Neue Klassifikation\r
@@ -34,10 +34,10 @@ command.name.2 = Verschiebe Taxon
 command.name.3 = Aktualisieren\r
 command.name.4 = Kopieren\r
 command.name.5 = Verschiebe akzeptiertes Taxon in Synonymie\r
-command.name.6 = Neuer Polytomer Schlssel\r
-command.name.7 = Bearbeite Schlssel-Knoten\r
-command.name.8 = Aktualisiere Schlssel-Liste\r
-command.name.9 = Aktualisiere Schlssel-Knoten\r
+command.name.6 = Neuer Polytomer Schl\u00fcssel\r
+command.name.7 = Bearbeite Schl\u00fcssel-Knoten\r
+command.name.8 = Aktualisiere Schl\u00fcssel-Liste\r
+command.name.9 = Aktualisiere Schl\u00fcssel-Knoten\r
 command.name.10 = Erzeuge Taxon-Hierarchie\r
 view.name.2 = Taxonomiebaum\r
 navigatorContent.name = Klassifikation\r
index a11e8e43bb55e870e4f6de962e502564edeabd07..5896a5e2ad9d73282f229fca8a8dbc4f6c1d3e7d 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.
 */
@@ -42,7 +42,7 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
  */
 public class ProtologueElement extends AbstractEntityCollectionElement<DescriptionElementBase> implements ISelectableElement, IOpenUrlEnabled{
 
-       private SelectionArbitrator selectionArbitrator;
+       private final SelectionArbitrator selectionArbitrator;
 
        private TextWithLabelElement protologueUriText;
        private MediaRepresentationPart mediaRepresentationPart;
@@ -64,9 +64,6 @@ public class ProtologueElement extends AbstractEntityCollectionElement<Descripti
                selectionArbitrator = cdmFormFactory.createSelectionArbitrator(this);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
-        */
        /** {@inheritDoc} */
        @Override
        public void createControls(ICdmFormElement element, int style) {
@@ -75,93 +72,75 @@ public class ProtologueElement extends AbstractEntityCollectionElement<Descripti
                formFactory.createOpenUrlSelectorElement(element, "Query BHL for Reference Image", this, style);
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#setElement(eu.etaxonomy.cdm.model.common.VersionableEntity)
-        */
        /** {@inheritDoc} */
        @Override
        public void setEntity(DescriptionElementBase element) {
                this.entity = element;
-                               
+
                if(element.getMedia().size() == 0){
                        element.addMedia(Media.NewInstance());
                }
                media = element.getMedia().iterator().next();
-               
+
                if(media.getRepresentations().size() == 0){
                        media.addRepresentation(MediaRepresentation.NewInstance());
-               }               
+               }
                mediaRepresentation = media.getRepresentations().iterator().next();
-               
+
                if(mediaRepresentation.getParts().size() == 0){
                        mediaRepresentation.addRepresentationPart(MediaRepresentationPart.NewInstance(null, null));
                }
-               
+
                mediaRepresentationPart = mediaRepresentation.getParts().iterator().next();
-               
+
                if(mediaRepresentationPart.getUri() != null){
                        protologueUriText.setText(mediaRepresentationPart.getUri().toString());
                }
        }
-       
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.section.cdmdetail.ISelectableElement#getSelectionArbitrator()
-        */
+
        /**
         * <p>Getter for the field <code>selectionArbitrator</code>.</p>
         *
         * @return a {@link eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator} object.
         */
-       public SelectionArbitrator getSelectionArbitrator() {
+       @Override
+    public SelectionArbitrator getSelectionArbitrator() {
                return selectionArbitrator;
        }
-       
-       /*
-        * (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
-        */
+
        /** {@inheritDoc} */
        @Override
        public void handleEvent(Object eventSource) {
-               if(eventSource == protologueUriText){
+               if(eventSource == protologueUriText && protologueUriText.getText()!=null){
                        try {
                                mediaRepresentationPart.setUri(new URI(protologueUriText.getText()));
                        } catch (URISyntaxException e) {
                                MessagingUtils.warningDialog("Could not parse URI", getClass(), e.getMessage());
                        }
-               }       
+               }
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.openurl.IOpenUrlEnabled#setOpenUrl(java.net.URI)
-        */
        @Override
        public void setOpenUrl(URI uri) {
                protologueUriText.setText(uri.toString());
                firePropertyChangeEvent(new CdmPropertyChangeEvent(protologueUriText, null));
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.openurl.IOpenUrlEnabled#getReference()
-        */
        @Override
        public Reference getReference() {
                return (Reference) getName().getNomenclaturalReference();
        }
 
-       /* (non-Javadoc)
-        * @see eu.etaxonomy.taxeditor.forms.openurl.IOpenUrlEnabled#getDetail()
-        */
        @Override
        public String getDetail() {
                return getName().getNomenclaturalMicroReference();
        }
-       
+
        private TaxonNameBase getName(){
                TaxonNameDescription description = (TaxonNameDescription) entity.getInDescription();
-               
+
                TaxonNameBase taxonName = description.getTaxonName();
-               
+
                return taxonName;
        }
 }
index 99e0951c3d3fe292dac00e8d7baae5c7bfb26328..1e8d0f10ff3f686e7a6e057d47954d2ff5331e7e 100644 (file)
@@ -9,8 +9,8 @@
 */
 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
 
+import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashSet;
 
 import org.eclipse.jface.action.Action;
 import org.eclipse.jface.action.IAction;
@@ -67,7 +67,7 @@ public abstract class AbstractUnboundEntityCollectionSection<ENTITY, ELEMENT> ex
         Collection<ELEMENT> elements = getEntityCollection(entity);
         if(addUnboundElement){
             //cloning to avoid saving the dummy element
-            Collection<ELEMENT> clonedElements = new HashSet<ELEMENT>();
+            Collection<ELEMENT> clonedElements = new ArrayList<ELEMENT>();
             clonedElements.addAll(elements);
             clonedElements.add(createNewElement()); //add dummy element which is not bound to entity
             return clonedElements;