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 eu
.etaxonomy
.taxeditor
.ui
.element
.AbstractCdmFormElement
;
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
;
28 public class DateElementController
extends AbstractCdmFormElement
implements IEnableableFormElement
, CdmCompositeController
, ModifyListener
{
30 private final Text textDate
;
31 private DateTime dateTime
;
34 * @param dateTimeElement
36 * @param parentElement
37 * @param initialDateTime
40 public DateElementController(DateElement dateTimeElement
, CdmFormFactory formFactory
, ICdmFormElement parentElement
, DateTime initialDateTime
, int none
) {
41 super(formFactory
, parentElement
);
42 this.textDate
= dateTimeElement
.getTextDate();
43 this.textDate
.setText(initialDateTime
!=null?initialDateTime
.toString("yyyy-MM-dd"):"");
45 textDate
.addModifyListener(this);
49 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
52 public void modifyText(ModifyEvent e
) {
54 String text
= textDate
.getText();
55 DateTime parsedDateTime
= DateTime
.parse(text
);
56 this.dateTime
= parsedDateTime
;
57 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, e
));
58 } catch (IllegalArgumentException iae
) {
63 public DateTime
getDateTime(){
68 * @see eu.etaxonomy.taxeditor.ui.element.IRelevantFormElement#setIrrelevant(boolean)
71 public void setIrrelevant(boolean irrelevant
) {
72 // TODO Auto-generated method stub
77 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#setEnabled(boolean)
80 public void setEnabled(boolean enabled
) {
81 textDate
.setEnabled(enabled
);
85 * @see eu.etaxonomy.taxeditor.ui.element.IEnableableFormElement#isEnabled()
88 public boolean isEnabled() {
89 return textDate
.isEnabled();