-// $Id$
/**
* Copyright (C) 2007 EDIT
-* European Distributed Institute of Taxonomy
+* European Distributed Institute of Taxonomy
* http://www.e-taxonomy.eu
-*
+*
* The contents of this file are subject to the Mozilla Public License Version 1.1
* See LICENSE.TXT at the top of this package for the full license terms.
*/
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.widgets.Label;
+import org.eclipse.ui.forms.widgets.TableWrapLayout;
import org.joda.time.Partial;
import eu.etaxonomy.cdm.model.common.TimePeriod;
*
* @author n.hoffmann
* @created Mar 31, 2010
- * @version 1.0
*/
public class PartialElement extends AbstractCdmFormElement implements ISelectable {
private NumberWithLabelElement number_month;
private NumberWithLabelElement number_year;
private Partial partial;
-
+
/**
* <p>Constructor for PartialElement.</p>
*
public PartialElement(CdmFormFactory formFactory,
ICdmFormElement formElement, String labelString, int style) {
super(formFactory, formElement);
-
- formElement.getLayoutComposite().setLayout(LayoutConstants.LAYOUT(7, false));
-
+
+ TableWrapLayout layout = LayoutConstants.LAYOUT(7, false);
+ layout.horizontalSpacing = 5;
+ formElement.getLayoutComposite().setLayout(layout);
+
label = formFactory.createLabel(getLayoutComposite(), labelString);
addControl(label);
-
+
number_year = formFactory.createNumberTextWithLabelElement(this, "Year", null, style);
number_year.setLimits(4, -9999, 9999);
-
- number_month = formFactory.createNumberTextWithLabelElement(this, "Month", null, style);
+
+ number_month = formFactory.createNumberTextWithLabelElement(this, "Month", null, style);
number_month.setLimits(2, 1, 12);
-
+
number_day = formFactory.createNumberTextWithLabelElement(this, "Day", null, style);
number_day.setLimits(2, 1, 31);
-
-
- formFactory.addPropertyChangeListener(this);
+
+
+ formFactory.addPropertyChangeListener(this);
}
-
+
/**
* <p>Setter for the field <code>partial</code>.</p>
*
*/
public void setPartial(Partial partial){
this.partial = partial;
-
+
if(partial != null){
number_day.setNumber(TimePeriod.getPartialValue(partial, TimePeriod.DAY_TYPE));
number_month.setNumber(TimePeriod.getPartialValue(partial, TimePeriod.MONTH_TYPE));
return partial;
}
- /* (non-Javadoc)
- * @see eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
- */
/** {@inheritDoc} */
@Override
public void propertyChange(PropertyChangeEvent event) {
if(event == null){
return;
}
-
+
Object eventSource = event.getSource();
-
+
if(getElements().contains(eventSource)){
if(event instanceof CdmPropertyChangeEvent){
if(((CdmPropertyChangeEvent) event).hasException()){
}
}
handleEvent(eventSource);
- }
+ }
}
-
+
/**
* @param event
*/
private void handleEvent(Object eventSource){
if(eventSource == number_month){
- if (number_month.getInteger() == 0){
+ if (number_month.getInteger() == null || number_month.getInteger() == 0){
partial = TimePeriod.setPartialField(partial, null, TimePeriod.MONTH_TYPE);
} else{
partial = TimePeriod.setPartialField(partial, number_month.getInteger(), TimePeriod.MONTH_TYPE);
}
-
+
}else if(eventSource == number_day){
- if (number_day.getInteger() == 0){
+ if (number_day.getInteger() == null || number_day.getInteger() == 0){
partial = TimePeriod.setPartialField(partial, null, TimePeriod.DAY_TYPE);
} else{
partial = TimePeriod.setPartialField(partial, number_day.getInteger(), TimePeriod.DAY_TYPE);
}
-
-
+
+
}else if(eventSource == number_year){
- if (number_year.getInteger() == 0){
+ if (number_year.getInteger() == null || number_year.getInteger() == 0){
partial = TimePeriod.setPartialField(partial, null, TimePeriod.YEAR_TYPE);
} else{
partial = TimePeriod.setPartialField(partial, number_year.getInteger(), TimePeriod.YEAR_TYPE);
}
-
+
}
firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
}
-
+
/** {@inheritDoc} */
@Override
public void setBackground(Color color) {