- converted Point element (used for coordinates)
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / campanula / FieldObservationGeneralElementController.java
1 // $Id$
2 /**
3 * Copyright (C) 2013 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.campanula;
11
12 import eu.etaxonomy.cdm.api.facade.DerivedUnitFacade;
13 import eu.etaxonomy.cdm.model.agent.AgentBase;
14 import eu.etaxonomy.cdm.model.common.LanguageString;
15 import eu.etaxonomy.cdm.model.location.NamedArea;
16 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
17 import eu.etaxonomy.taxeditor.ui.element.TimePeriodElement;
18 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
19 import eu.etaxonomy.taxeditor.ui.section.campanula.compatibility.ICdmFormElement;
20 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
21
22 /**
23 * @author pplitzner
24 * @date 13.08.2013
25 *
26 */
27 public class FieldObservationGeneralElementController extends AbstractCdmDetailElement<DerivedUnitFacade> {
28
29 private FieldObservationGeneralElement fieldObservationGeneralElement;
30
31 private ToggleableTextFieldController toggleableText_titleCache;
32 private EntitySelectionFieldController<NamedArea> selection_country;
33 private LanguageTextFieldController languageText_locality;
34 private PointFieldController element_point;
35 private NumberFieldController number_elevation;
36 private TimePeriodElement element_date;
37 private EntitySelectionFieldController<AgentBase> selection_collector;
38 private TextFieldController text_collectingNumber;
39
40 /**
41 * @param formFactory
42 * @param formElement
43 */
44 public FieldObservationGeneralElementController(FieldObservationGeneralElement fieldObservationGeneralElement, CdmFormFactory formFactory, ICdmFormElement formElement) {
45 super(formFactory, formElement);
46 this.fieldObservationGeneralElement = fieldObservationGeneralElement;
47 setPropertyChangeListeners(formFactory.getPropertyChangeListeners());
48 formFactory.addPropertyChangeListener(this);
49 }
50
51 /*
52 * (non-Javadoc)
53 *
54 * @see
55 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#createControls
56 * (eu.etaxonomy.taxeditor.forms.ICdmFormElement, java.lang.Object, int)
57 */
58 @Override
59 protected void createControls(ICdmFormElement formElement, DerivedUnitFacade entity, int style) {
60 toggleableText_titleCache = new ToggleableTextFieldController(fieldObservationGeneralElement.getToggleableTextField(), getFormFactory(), formElement, entity.getTitleCache(), entity.isProtectedTitleCache(), style);
61
62 selection_country = new EntitySelectionFieldController<NamedArea>(fieldObservationGeneralElement.getCountrySelectionField(), getFormFactory(), getConversationHolder(), formElement, NamedArea.class, "Country", entity.getCountry(), EntitySelectionElement.NOTHING, style);
63 languageText_locality = new LanguageTextFieldController(fieldObservationGeneralElement.getTextLocality(), getFormFactory(), formElement, entity.getLocality());
64 element_point = new PointFieldController(fieldObservationGeneralElement.getPointField(),getFormFactory(), formElement, entity.getExactLocation(), style);
65 number_elevation = new NumberFieldController(fieldObservationGeneralElement.getTextElevation(), getFormFactory(), formElement, entity.getAbsoluteElevation());
66 // element_date = formFactory.createTimePeriodElement(formElement, "Date", entity.getGatheringPeriod(), style);
67 selection_collector = new EntitySelectionFieldController<AgentBase>(fieldObservationGeneralElement.getCollectorSelectionField(), getFormFactory(), getConversationHolder(), formElement, AgentBase.class, "Collector", entity.getCollector(), EntitySelectionElement.ALL, style);
68 text_collectingNumber = new TextFieldController(fieldObservationGeneralElement.getTextCollectingNumber(), getFormFactory(), formElement, entity.getFieldNumber(), null);
69 }
70
71 /*
72 * (non-Javadoc)
73 *
74 * @see
75 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
76 * .lang.Object)
77 */
78 @Override
79 public void handleEvent(Object eventSource) {
80 if (eventSource == toggleableText_titleCache) {
81 getEntity().setTitleCache(toggleableText_titleCache.getText(), toggleableText_titleCache.getState());
82 } else if (eventSource == selection_country) {
83 getEntity().setCountry(selection_country.getSelection());
84 } else if (eventSource == languageText_locality) {
85 LanguageString locality = languageText_locality.getLanguageString();
86 getEntity().setLocality(locality);
87 } else if (eventSource == element_point) {
88 getEntity().setExactLocation(element_point.getPoint());
89 } else if (eventSource == number_elevation) {
90 getEntity().setAbsoluteElevation(number_elevation.getInteger());
91 } else if (eventSource == element_date) {
92 getEntity().setGatheringPeriod(element_date.getTimePeriod());
93 } else if (eventSource == selection_collector) {
94 getEntity().setCollector(selection_collector.getSelection());
95 } else if (eventSource == text_collectingNumber) {
96 getEntity().setFieldNumber(text_collectingNumber.getText());
97 }
98 if (eventSource != toggleableText_titleCache) {
99 toggleableText_titleCache.setText(getEntity().getTitleCache());
100 }
101 }
102
103 }