ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / occurrence / DeterminationEventDetailElement.java
1 /**
2 * Copyright (C) 2007 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
10 package eu.etaxonomy.taxeditor.ui.section.occurrence;
11
12 import org.eclipse.swt.events.SelectionListener;
13
14 import eu.etaxonomy.cdm.model.common.DefinedTerm;
15 import eu.etaxonomy.cdm.model.common.TermType;
16 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
17 import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
18 import eu.etaxonomy.cdm.model.taxon.TaxonBase;
19 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
20 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
21 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22 import eu.etaxonomy.taxeditor.ui.element.CheckboxElement;
23 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
25
26 /**
27 * <p>
28 * DeterminationEventDetailElement class.
29 * </p>
30 *
31 * @author n.hoffmann
32 * @created Oct 13, 2010
33 * @version 1.0
34 */
35 public class DeterminationEventDetailElement extends
36 AbstractEventDetailElement<DeterminationEvent> {
37
38 private TermComboElement<DefinedTerm> combo_determinationModifier;
39 private CheckboxElement checkbox_preferredFlag;
40 private EntitySelectionElement<TaxonBase> selection_taxonBase;
41 private EntitySelectionElement<TaxonNameBase> selectionTaxonNameBase;
42
43 // private TODO a set of references
44
45 /**
46 * <p>
47 * Constructor for DeterminationEventDetailElement.
48 * </p>
49 *
50 * @param formFactory
51 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
52 * object.
53 * @param section
54 * a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
55 * object.
56 * @param entity
57 * a {@link eu.etaxonomy.cdm.model.occurrence.DeterminationEvent}
58 * object.
59 * @param removeListener
60 * a {@link org.eclipse.swt.events.SelectionListener} object.
61 * @param style
62 * a int.
63 */
64 public DeterminationEventDetailElement(CdmFormFactory formFactory,
65 AbstractFormSection section, DeterminationEvent entity,
66 SelectionListener removeListener, int style) {
67 super(formFactory, section, entity, removeListener, style);
68 }
69
70 /*
71 * (non-Javadoc)
72 *
73 * @see
74 * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#setEntity
75 * (eu.etaxonomy.cdm.model.common.IVersionableEntity)
76 */
77 /** {@inheritDoc} */
78 @Override
79 public void setEntity(DeterminationEvent entity) {
80 this.entity = entity;
81 combo_determinationModifier.setSelection(entity.getModifier());
82 selection_taxonBase.setEntity(entity.getTaxon());
83 selectionTaxonNameBase.setEntity(entity.getTaxonName());
84 super.setEntity(entity);
85 }
86
87 /*
88 * (non-Javadoc)
89 *
90 * @see
91 * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#createControls
92 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, int)
93 */
94 /** {@inheritDoc} */
95 @Override
96 public void createControls(ICdmFormElement element, int style) {
97 selectionTaxonNameBase = formFactory
98 .createSelectionElement(TaxonNameBase.class,
99 getConversationHolder(), element, "Taxon Name", null,
100 EntitySelectionElement.NOTHING, style);
101 selection_taxonBase = formFactory
102 .createSelectionElement(TaxonBase.class,
103 getConversationHolder(), element, "Taxon", null,
104 EntitySelectionElement.NOTHING, style);
105
106
107 // TODO set of references
108
109 super.createControls(element, style);
110
111 element_timePeriod.setLabel("Determined When");
112 selection_agent.setLabel("Determined by");
113
114
115 combo_determinationModifier = formFactory.createDefinedTermComboElement(TermType.DeterminationModifier,
116 element, "Modifier", null, style);
117 }
118
119 /*
120 * (non-Javadoc)
121 *
122 * @see
123 * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent
124 * (java.lang.Object)
125 */
126 /** {@inheritDoc} */
127 @Override
128 public void handleEvent(Object eventSource) {
129 if (eventSource == combo_determinationModifier) {
130 getEntity().setModifier(combo_determinationModifier.getSelection());
131 } else if (eventSource == checkbox_preferredFlag) {
132 getEntity().setPreferredFlag(checkbox_preferredFlag.getSelection());
133 } else if (eventSource == selectionTaxonNameBase) {
134 getEntity().setTaxonName(selectionTaxonNameBase.getSelection());
135 //empty taxon field if name does not belong the taxon
136 TaxonBase taxonBase = selection_taxonBase.getEntity();
137 if(taxonBase!=null && taxonBase.getName()!=null
138 && !taxonBase.getName().equals(selectionTaxonNameBase.getSelection())){
139 selection_taxonBase.setEntity(null);
140 }
141 } else if (eventSource == selection_taxonBase) {
142 TaxonBase taxon = selection_taxonBase.getSelection();
143 getEntity().setTaxon(taxon);
144 getEntity().setTaxonName(taxon.getName());
145 selectionTaxonNameBase.setEntity(taxon.getName());
146 }
147 // else if(eventSource == TODO set of references){
148 //
149 // }
150 else if (eventSource == selection_agent) {
151 getEntity().setDeterminer(selection_agent.getSelection());
152 } else if (eventSource == text_description) {
153 getEntity().setDescription(text_description.getText());
154 } else if (eventSource == element_timePeriod) {
155 getEntity().setTimeperiod(element_timePeriod.getTimePeriod());
156 }
157 }
158
159 }