2ad606b5858d2d66ebce7f0a4684a53b6b134eec
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / forms / TimePeriodElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 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
11 package eu.etaxonomy.taxeditor.ui.forms;
12
13 import org.eclipse.jface.util.PropertyChangeEvent;
14 import org.eclipse.swt.graphics.Color;
15 import org.eclipse.swt.widgets.Label;
16 import org.eclipse.ui.forms.widgets.Section;
17
18 import eu.etaxonomy.cdm.model.common.TimePeriod;
19
20 /**
21 * <p>TimePeriodElement class.</p>
22 *
23 * @author n.hoffmann
24 * @created Nov 17, 2009
25 * @version 1.0
26 */
27 public class TimePeriodElement extends AbstractCdmFormElement{
28
29 private TimePeriod timePeriod;
30 private Label label;
31 private DateDetailSection section_dateDetails;
32
33 /**
34 * <p>Constructor for TimePeriodElement.</p>
35 *
36 * @param style a int.
37 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
38 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
39 * @param labelString a {@link java.lang.String} object.
40 * @param timePeriod a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
41 */
42 public TimePeriodElement(CdmFormFactory formFactory, ICdmFormElement parentElement, String labelString, TimePeriod timePeriod, final int style) {
43 super(formFactory, parentElement);
44
45 label = formFactory.createLabel(getLayoutComposite(), labelString);
46
47 section_dateDetails = formFactory.createDateDetailSection(this, Section.TWISTIE);
48 addControl(section_dateDetails);
49
50 setTimePeriod(timePeriod);
51
52 formFactory.addPropertyChangeListener(this);
53 }
54
55 /** {@inheritDoc} */
56 public void setSelected(boolean selected) {
57 setBackground(getColor(selected));
58 }
59
60 /**
61 * <p>setEntity</p>
62 *
63 * @param timePeriod a {@link eu.etaxonomy.cdm.model.common.TimePeriod} object.
64 */
65 public void setEntity(TimePeriod timePeriod) {
66 setTimePeriod(timePeriod);
67 }
68
69 /** {@inheritDoc} */
70 @Override
71 public void propertyChange(PropertyChangeEvent event) {
72 if(event == null){
73 return;
74 }
75 Object eventSource = event.getSource();
76
77 if(getElements().contains(eventSource)){
78 handleEvent(eventSource);
79 }
80 }
81
82 private void handleEvent(Object eventSource){
83
84 // if(eventSource == text_freeText){
85 // String freeText = text_freeText.getText();
86 // timePeriod = TimePeriod.parseString(freeText);
87 // section_dateDetails.setEntity(timePeriod);
88 //
89 if(eventSource == section_dateDetails){
90 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
91 }
92
93
94 }
95
96 /**
97 * <p>Setter for the field <code>timePeriod</code>.</p>
98 *
99 * @param timePeriod the timePeriod to set
100 */
101 public void setTimePeriod(TimePeriod timePeriod) {
102 this.timePeriod = timePeriod;
103 if(timePeriod != null){
104 section_dateDetails.setEntity(timePeriod);
105 }
106 }
107
108 /**
109 * <p>Getter for the field <code>timePeriod</code>.</p>
110 *
111 * @return the timePeriod
112 */
113 public TimePeriod getTimePeriod() {
114 return timePeriod;
115 }
116
117 /** {@inheritDoc} */
118 @Override
119 public void setBackground(Color color) {
120 label.setBackground(color);
121 section_dateDetails.setBackground(color);
122 }
123 }