2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.ui
.mvc
.element
;
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
;
16 import com
.sun
.istack
.logging
.Logger
;
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
;
30 public class DateElementController
extends AbstractCdmFormElement
implements IEnableableFormElement
, CdmCompositeController
, ModifyListener
{
32 private final Text textDate
;
33 private DateTime dateTime
;
36 * @param dateTimeElement
38 * @param parentElement
39 * @param initialDateTime
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"):"");
47 textDate
.addModifyListener(this);
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);
59 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
62 public void modifyText(ModifyEvent e
) {
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());
73 public DateTime
getDateTime(){
78 * @see eu.etaxonomy.taxeditor.ui.element.IRelevantFormElement#setIrrelevant(boolean)
81 public void setIrrelevant(boolean irrelevant
) {
82 // TODO Auto-generated method stub
87 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#setEnabled(boolean)
90 public void setEnabled(boolean enabled
) {
91 textDate
.setEnabled(enabled
);
95 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
98 public boolean isEnabled() {
99 return textDate
.isEnabled();