Merge branch 'release/5.11.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / description / DescriptionElementSourceSection.java
index f5749ee8212d4fc413137bbd791888c7461b987c..bf6aba60d43984a1f7126784cbcf63d0dc140e8b 100644 (file)
@@ -7,9 +7,10 @@ import java.util.Collection;
 import java.util.Comparator;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
-import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
+import eu.etaxonomy.cdm.model.reference.OriginalSourceType;
+import eu.etaxonomy.cdm.model.reference.Reference;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
@@ -26,6 +27,8 @@ import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
 public class DescriptionElementSourceSection extends
         AbstractEntityCollectionSection<DescriptionElementBase, DescriptionElementSource> {
 
+    private Reference defaultSource;
+
     /**
      * <p>
      * Constructor for DescriptionElementSourceSection.
@@ -48,10 +51,39 @@ public class DescriptionElementSourceSection extends
         super(cdmFormFactory, conversation, parentElement, "Sources", style);
     }
 
+    /**
+     * <p>
+     * Constructor for DescriptionElementSourceSection.
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     * @param style
+     *            a int.
+     * @param cdmFormFactory
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
+     *            object.
+     * @param defaultSource
+     *            a default reference for new sources.
+     * @param conversation
+     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
+     *            object.
+     */
+    public DescriptionElementSourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
+            ICdmFormElement parentElement, Reference defaultSource, int style) {
+        super(cdmFormFactory, conversation, parentElement, "Sources", style);
+        this.defaultSource = defaultSource;
+    }
+
     /** {@inheritDoc} */
     @Override
     public DescriptionElementSource createNewElement() {
-        return DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
+        DescriptionElementSource source =  DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
+        if (defaultSource != null){
+            source.setCitation(defaultSource);
+        }
+        return source;
     }
 
     /** {@inheritDoc} */