Merge branch 'release/4.1.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SequenceReferenceCollectionDetailElement.java
index 5ada8bdf984980b7095177d32456950b9a5022d5..5561170f29ed5f48a3ee2da7545936275fe7d7e7 100644 (file)
@@ -14,9 +14,9 @@ import org.eclipse.swt.events.SelectionListener;
 
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.reference.Reference;
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
+import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
@@ -30,44 +30,13 @@ public class SequenceReferenceCollectionDetailElement extends AbstractEntityColl
 
     protected EntitySelectionElement<Reference> selection_reference;
     protected TextWithLabelElement text_referenceDetail;
-    private Sequence sequence;
 
-    /**
-     * <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);
-        if(section instanceof SequenceReferenceCollectionDetailSection){
-            sequence = (Sequence) section.getEntity();
-        }
     }
 
-    /*
-     * (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) {
@@ -79,34 +48,28 @@ public class SequenceReferenceCollectionDetailElement extends AbstractEntityColl
                 formElement, "Reference Detail", null, SWT.NULL);
     }
 
-    /**
-     * <p>
-     * setEntity
-     * </p>
-     *
-     * @param entity
-     *            a T object.
-     */
     @Override
     public void setEntity(Reference entity) {
         this.entity = entity;
-
         selection_reference.setEntity(entity);
-//        text_referenceDetail.setText(entity.getCitationMicroReference());
-    };
+        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){
-            sequence.removeCitation(entity);
-            Reference newCitation = selection_reference.getSelection();
-            sequence.addCitation(newCitation);
-            entity = newCitation;
-        }
+            if(getParentElement() instanceof SequenceReferenceCollectionDetailSection){
+                Sequence sequence = ((SequenceReferenceCollectionDetailSection) getParentElement()).getEntity();
+                sequence.removeCitation(entity);
+                Reference newCitation = selection_reference.getSelection();
+                sequence.addCitation(newCitation);
+                entity = newCitation;
 
+                text_referenceDetail.setEnabled(true);
+            }
+        } else if(eventSource==text_referenceDetail){
+            entity.setReferenceAbstract(text_referenceDetail.getText());
+        }
     }
 
 }