merged campanula branch to trunk. Main features are: BioCase Query via Imports, Deriv...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SequenceReferenceCollectionDetailElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2014 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
11
12 import org.eclipse.swt.SWT;
13 import org.eclipse.swt.events.SelectionListener;
14
15 import eu.etaxonomy.cdm.model.molecular.Sequence;
16 import eu.etaxonomy.cdm.model.reference.Reference;
17 import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
18 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
21 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
22 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
23
24 /**
25 * @author pplitzner
26 * @date 07.01.2014
27 *
28 */
29 public class SequenceReferenceCollectionDetailElement extends AbstractEntityCollectionElement<Reference>{
30
31 protected EntitySelectionElement<Reference> selection_reference;
32 protected TextWithLabelElement text_referenceDetail;
33 private Sequence sequence;
34
35 /**
36 * <p>
37 * Constructor for AbstractReferencedEntityElement.
38 * </p>
39 *
40 * @param formFactory
41 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
42 * object.
43 * @param section
44 * a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
45 * object.
46 * @param entity
47 * a T object.
48 * @param removeListener
49 * a {@link org.eclipse.swt.events.SelectionListener} object.
50 * @param style
51 * a int.
52 * @param <T>
53 * a T object.
54 */
55 public SequenceReferenceCollectionDetailElement(CdmFormFactory formFactory,
56 AbstractFormSection section, Reference entity,
57 SelectionListener removeListener, int style) {
58 super(formFactory, section, entity, removeListener, null, style);
59 if(section instanceof SequenceReferenceCollectionDetailSection){
60 sequence = (Sequence) section.getEntity();
61 }
62 }
63
64 /*
65 * (non-Javadoc)
66 *
67 * @see
68 * eu.etaxonomy.taxeditor.forms.section.AbstractEntityCollectionElement#
69 * createControls(eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
70 */
71 /** {@inheritDoc} */
72 @Override
73 public void createControls(ICdmFormElement formElement, int style) {
74 selection_reference = formFactory
75 .createSelectionElement(Reference.class,
76 getConversationHolder(), formElement, "Reference",
77 null, EntitySelectionElement.SELECTABLE|EntitySelectionElement.EDITABLE, style);
78 text_referenceDetail = formFactory.createTextWithLabelElement(
79 formElement, "Reference Detail", null, SWT.NULL);
80 }
81
82 /**
83 * <p>
84 * setEntity
85 * </p>
86 *
87 * @param entity
88 * a T object.
89 */
90 @Override
91 public void setEntity(Reference entity) {
92 this.entity = entity;
93
94 selection_reference.setEntity(entity);
95 // text_referenceDetail.setText(entity.getCitationMicroReference());
96 };
97
98 /* (non-Javadoc)
99 * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
100 */
101 @Override
102 public void handleEvent(Object eventSource) {
103 if(eventSource==selection_reference){
104 sequence.removeCitation(entity);
105 Reference newCitation = selection_reference.getSelection();
106 sequence.addCitation(newCitation);
107 entity = newCitation;
108 } else if(eventSource==text_referenceDetail){
109 // entity.set???
110 }
111
112 }
113
114 }