fix #6658: add mediaCreated date field
[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"):"");
46 addControl(textDate);
47 textDate.addModifyListener(this);
48 }
49
50 // public DateElementController(DateElementFormElement dateTimeElement, CdmFormFactory formFactory, DateTime initialDateTime) {
51 // super(formFactory, dateTimeElement);
52 // this.textDate = dateTimeElement.getTextDate();
53 // this.textDate.setText(initialDateTime!=null?initialDateTime.toString("yyyy-MM-dd"):"");
54 // addControl(textDate);
55 // textDate.addModifyListener(this);
56 // }
57
58 /* (non-Javadoc)
59 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
60 */
61 @Override
62 public void modifyText(ModifyEvent e) {
63 try {
64 String text = textDate.getText();
65 DateTime parsedDateTime = DateTime.parse(text);
66 this.dateTime = parsedDateTime;
67 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e));
68 } catch (IllegalArgumentException iae) {
69 System.err.println(iae.getMessage());
70 }
71 }
72
73 public DateTime getDateTime(){
74 return dateTime;
75 }
76
77 /* (non-Javadoc)
78 * @see eu.etaxonomy.taxeditor.ui.element.IRelevantFormElement#setIrrelevant(boolean)
79 */
80 @Override
81 public void setIrrelevant(boolean irrelevant) {
82 // TODO Auto-generated method stub
83
84 }
85
86 /* (non-Javadoc)
87 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#setEnabled(boolean)
88 */
89 @Override
90 public void setEnabled(boolean enabled) {
91 textDate.setEnabled(enabled);
92 }
93
94 /* (non-Javadoc)
95 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
96 */
97 @Override
98 public boolean isEnabled() {
99 return textDate.isEnabled();
100 }
101
102 }