Merge branch 'release/5.19.0'
[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 eu.etaxonomy.taxeditor.ui.element.AbstractRelevanceFormElement;
17 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
18 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
19 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
20 import eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement;
21 import eu.etaxonomy.taxeditor.ui.mvc.interfaces.CdmCompositeController;
22
23 /**
24 * @author pplitzner
25 * @date 16.06.2014
26 */
27 public class DateElementController
28 extends AbstractRelevanceFormElement
29 implements IEnableableFormElement, CdmCompositeController, ModifyListener {
30
31 private final Text textDate;
32 private DateTime dateTime;
33
34 public DateElementController(DateElement dateTimeElement, CdmFormFactory formFactory,
35 ICdmFormElement parentElement, DateTime initialDateTime) {
36 super(formFactory, parentElement);
37 this.textDate = dateTimeElement.getTextDate();
38 // if (initialDateTime != null){
39 // this.textDate.setText(initialDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")));
40 // }
41 this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd HH:mm"):"");
42 addControl(textDate);
43 dateTime = initialDateTime;
44 textDate.addModifyListener(this);
45 }
46
47 // public DateElementController(DateElementFormElement dateTimeElement, CdmFormFactory formFactory, DateTime initialDateTime) {
48 // super(formFactory, dateTimeElement);
49 // this.textDate = dateTimeElement.getTextDate();
50 // this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd"):"");
51 // addControl(textDate);
52 // textDate.addModifyListener(this);
53 // }
54
55
56 @Override
57 public void modifyText(ModifyEvent e) {
58 try {
59 // String text = textDate.getText();
60 // DateTime parsedDateTime = DateTime.parse(text);
61 // this.dateTime = parsedDateTime;
62 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
63 } catch (IllegalArgumentException iae) {
64 System.err.println(iae.getMessage());
65 }
66 }
67
68 public DateTime getDateTime(){
69 return dateTime;
70 }
71 public void setDateTime(DateTime date){
72 dateTime = date;
73 }
74
75 @Override
76 public void setEnabled(boolean enabled) {
77 textDate.setEnabled(enabled);
78 }
79
80 @Override
81 public boolean isEnabled() {
82 return textDate.isEnabled();
83 }
84
85 @Override
86 public void updateCacheRelevance() {
87 System.out.println("updateCacheRelevance not yet implemented for " + this.getClass().getName());
88 }
89 }