Merge branch 'develop' into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / dna / SequenceReferenceCollectionDetailElement.java
1 /**
2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.ui.section.occurrence.dna;
10
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.events.SelectionListener;
13
14 import eu.etaxonomy.cdm.model.molecular.Sequence;
15 import eu.etaxonomy.cdm.model.reference.Reference;
16 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
17 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
18 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
19 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
20 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
21 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
22
23 /**
24 * @author pplitzner
25 * @date 07.01.2014
26 *
27 */
28 public class SequenceReferenceCollectionDetailElement extends AbstractEntityCollectionElement<Reference>{
29
30 protected EntitySelectionElement<Reference> selection_reference;
31 protected TextWithLabelElement text_referenceDetail;
32
33 public SequenceReferenceCollectionDetailElement(CdmFormFactory formFactory,
34 AbstractFormSection<?> section, Reference entity,
35 SelectionListener removeListener, int style) {
36 super(formFactory, section, entity, removeListener, null, style);
37 }
38
39 /** {@inheritDoc} */
40 @Override
41 public void createControls(ICdmFormElement formElement, int style) {
42 selection_reference = formFactory
43 .createSelectionElement(Reference.class,
44 getConversationHolder(), formElement, "Reference",
45 null, EntitySelectionElement.SELECTABLE|EntitySelectionElement.EDITABLE, style);
46 text_referenceDetail = formFactory.createTextWithLabelElement(
47 formElement, "Reference Detail", null, SWT.NULL);
48 }
49
50 @Override
51 public void setEntity(Reference entity) {
52 this.entity = entity;
53 selection_reference.setEntity(entity);
54 text_referenceDetail.setText(entity.getReferenceAbstract());
55 }
56
57 @Override
58 public void handleEvent(Object eventSource) {
59 if(eventSource==selection_reference){
60 if(getParentElement() instanceof SequenceReferenceCollectionDetailSection){
61 Sequence sequence = ((SequenceReferenceCollectionDetailSection) getParentElement()).getEntity();
62 sequence.removeCitation(entity);
63 Reference newCitation = selection_reference.getSelection();
64 sequence.addCitation(newCitation);
65 entity = newCitation;
66
67 text_referenceDetail.setEnabled(true);
68 }
69 } else if(eventSource==text_referenceDetail){
70 entity.setReferenceAbstract(text_referenceDetail.getText());
71 }
72 }
73
74 }