ref #9838: change order of ui element creation and setting entity in collection elements
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SequenceReferenceCollectionDetailElement.java
index a2bd6682895f9d67a23a098204c862a69eaf85f4..55473d44328c0ebc40f76b28cbcf252ad04d85e7 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
 * Copyright (C) 2014 EDIT
 * European Distributed Institute of Taxonomy
@@ -24,82 +23,49 @@ import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
 /**
  * @author pplitzner
  * @date 07.01.2014
- *
  */
-public class SequenceReferenceCollectionDetailElement extends AbstractEntityCollectionElement<Reference<?>>{
+public class SequenceReferenceCollectionDetailElement
+        extends AbstractEntityCollectionElement<Reference>{
 
     protected EntitySelectionElement<Reference> selection_reference;
     protected TextWithLabelElement text_referenceDetail;
 
-    /**
-     * <p>
-     * Constructor for AbstractReferencedEntityElement.
-     * </p>
-     *
-     * @param formFactory
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
-     *            object.
-     * @param section
-     *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
-     *            object.
-     * @param entity
-     *            a T object.
-     * @param removeListener
-     *            a {@link org.eclipse.swt.events.SelectionListener} object.
-     * @param style
-     *            a int.
-     * @param <T>
-     *            a T object.
-     */
     public SequenceReferenceCollectionDetailElement(CdmFormFactory formFactory,
-            AbstractFormSection<?> section, Reference<?> entity,
+            AbstractFormSection<?> section, Reference entity,
             SelectionListener removeListener, int style) {
         super(formFactory, section, entity, removeListener, null, style);
     }
 
-    /*
-     * (non-Javadoc)
-     *
-     * @see
-     * eu.etaxonomy.taxeditor.forms.section.AbstractEntityCollectionElement#
-     * createControls(eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
-     */
-    /** {@inheritDoc} */
     @Override
     public void createControls(ICdmFormElement formElement, int style) {
         selection_reference = formFactory
                 .createSelectionElement(Reference.class,
-                        getConversationHolder(), formElement, "Reference",
+                        formElement, "Reference",
                         null, EntitySelectionElement.SELECTABLE|EntitySelectionElement.EDITABLE, style);
         text_referenceDetail = formFactory.createTextWithLabelElement(
                 formElement, "Reference Detail", null, SWT.NULL);
+        if (entity != null){
+               setEntity(entity);
+        }
     }
 
-    /**
-     * <p>
-     * setEntity
-     * </p>
-     *
-     * @param entity
-     *            a T object.
-     */
     @Override
-    public void setEntity(Reference<?> entity) {
+    public void setEntity(Reference entity) {
         this.entity = entity;
-        selection_reference.setEntity(entity);
-        text_referenceDetail.setText(entity.getReferenceAbstract());
+        if(selection_reference != null){
+               selection_reference.setEntity(entity);
+               text_referenceDetail.setText(entity.getReferenceAbstract());
+        }
+        
     }
 
-    /* (non-Javadoc)
-     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
-     */
     @Override
     public void handleEvent(Object eventSource) {
         if(eventSource==selection_reference){
             if(getParentElement() instanceof SequenceReferenceCollectionDetailSection){
                 Sequence sequence = ((SequenceReferenceCollectionDetailSection) getParentElement()).getEntity();
                 sequence.removeCitation(entity);
-                Reference<?> newCitation = selection_reference.getSelection();
+                Reference newCitation = selection_reference.getSelection();
                 sequence.addCitation(newCitation);
                 entity = newCitation;
 
@@ -109,5 +75,4 @@ public class SequenceReferenceCollectionDetailElement extends AbstractEntityColl
             entity.setReferenceAbstract(text_referenceDetail.getText());
         }
     }
-
-}
+}
\ No newline at end of file