Project

General

Profile

Download (3.85 KB) Statistics
| Branch: | Tag: | Revision:
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.element.AbstractFormSection;
18
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
19
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
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
        selection_reference.setEntity(entity);
94
        text_referenceDetail.setText(entity.getReferenceAbstract());
95
    }
96

    
97
    /* (non-Javadoc)
98
     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
99
     */
100
    @Override
101
    public void handleEvent(Object eventSource) {
102
        if(eventSource==selection_reference){
103
            sequence.removeCitation(entity);
104
            Reference newCitation = selection_reference.getSelection();
105
            sequence.addCitation(newCitation);
106
            entity = newCitation;
107
            text_referenceDetail.setEnabled(true);
108
        } else if(eventSource==text_referenceDetail){
109
            entity.setReferenceAbstract(text_referenceDetail.getText());
110
        }
111
    }
112

    
113
}
(14-14/20)