Merge branch 'develop' into featureTreeEditor
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / mvc / element / DateElementController.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.mvc.element;
10
11 import org.eclipse.swt.events.ModifyEvent;
12 import org.eclipse.swt.events.ModifyListener;
13 import org.eclipse.swt.widgets.Text;
14 import org.joda.time.DateTime;
15
16 import com.sun.istack.logging.Logger;
17
18 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
19 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
20 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
21 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
22 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
23 import eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmCompositeController;
24
25 /**
26 * @author pplitzner
27 * @date 16.06.2014
28 *
29 */
30 public class DateElementController extends AbstractCdmFormElement implements IEnableableFormElement, CdmCompositeController, ModifyListener{
31
32 private final Text textDate;
33 private DateTime dateTime;
34
35 /**
36 * @param dateTimeElement
37 * @param formFactory
38 * @param parentElement
39 * @param initialDateTime
40 * @param none
41 */
42 public DateElementController(DateElement dateTimeElement, CdmFormFactory formFactory, ICdmFormElement parentElement, DateTime initialDateTime) {
43 super(formFactory, parentElement);
44 this.textDate = dateTimeElement.getTextDate();
45 this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd HH:mm:ss"):"yyyy-mm-dd HH:mm:ss");
46 addControl(textDate);
47 dateTime = initialDateTime;
48 textDate.addModifyListener(this);
49 }
50
51 // public DateElementController(DateElementFormElement dateTimeElement, CdmFormFactory formFactory, DateTime initialDateTime) {
52 // super(formFactory, dateTimeElement);
53 // this.textDate = dateTimeElement.getTextDate();
54 // this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd"):"");
55 // addControl(textDate);
56 // textDate.addModifyListener(this);
57 // }
58
59 /* (non-Javadoc)
60 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
61 */
62 @Override
63 public void modifyText(ModifyEvent e) {
64 try {
65 // String text = textDate.getText();
66 // DateTime parsedDateTime = DateTime.parse(text);
67 // this.dateTime = parsedDateTime;
68 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
69 } catch (IllegalArgumentException iae) {
70 System.err.println(iae.getMessage());
71 }
72 }
73
74 public DateTime getDateTime(){
75 return dateTime;
76 }
77 public void setDateTime(DateTime date){
78 dateTime = date;
79 }
80
81 /* (non-Javadoc)
82 * @see eu.etaxonomy.taxeditor.ui.element.IRelevantFormElement#setIrrelevant(boolean)
83 */
84 @Override
85 public void setIrrelevant(boolean irrelevant) {
86 // TODO Auto-generated method stub
87
88 }
89
90 /* (non-Javadoc)
91 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#setEnabled(boolean)
92 */
93 @Override
94 public void setEnabled(boolean enabled) {
95 textDate.setEnabled(enabled);
96 }
97
98 /* (non-Javadoc)
99 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
100 */
101 @Override
102 public boolean isEnabled() {
103 return textDate.isEnabled();
104 }
105
106 }