package eu.etaxonomy.taxeditor.ui.mvc.element;
+import java.awt.FontMetrics;
import java.util.Calendar;
import java.util.ConcurrentModificationException;
import java.util.List;
import org.eclipse.core.runtime.Assert;
import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.viewers.CellEditor.LayoutData;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.DisposeEvent;
import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.ui.forms.widgets.TableWrapLayout;
//import org.joda.time.DateTime;
+import eu.etaxonomy.taxeditor.model.ImageResources;
import eu.etaxonomy.taxeditor.model.MessagingUtils;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
private final FormToolkit toolkit = new FormToolkit(Display.getCurrent());
private org.joda.time.DateTime initialDateTime;
private Text textDate;
- // private final Button openDateDialog;
+ private final Button openDateDialog;
+
+ private static final String pattern = "yyyy-MM-dd HH:mm:ss";
/**
* @param parent
* @param style
*/
- public DateElement(Composite parent, org.joda.time.DateTime initialDateTime, int style) {
+ public DateElement(Composite parent, org.joda.time.DateTime initialDateTime, int style, boolean editableText) {
super(parent, style);
this.initialDateTime = initialDateTime;
addDisposeListener(new DisposeListener() {
tableWrapLayout.bottomMargin = 0;
setLayout(tableWrapLayout);
}
+
+ Composite composite = new Composite (this, SWT.NONE);
+ GridLayout layout = new GridLayout ();
+
+ layout.numColumns = 2;
+
+ composite.setLayout(layout);
+ composite.setSize(400, composite.getSize().y);
+ int width = composite.getSize().x;
+
+ // textDate = new Text(composite, SWT.BORDER|SWT.FILL);
+ textDate = toolkit.createText(composite, "yyyy-mm-dd HH:mm:ss", style);
+ textDate.setEditable(editableText);
+
+ GridData gridData = new GridData();
+ gridData.minimumWidth = 200;
+
+
+ textDate.setLayoutData(gridData);
+ openDateDialog = new Button (composite, SWT.PUSH);
+ Image image = ImageResources.getImage(ImageResources.DATE);
+ // openDateDialog.setText ("Open Date Dialog");
+ openDateDialog.setImage(image);
+
+ openDateDialog.addSelectionListener (new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e){
+ final Shell dialog = new Shell (parent.getShell(), SWT.DIALOG_TRIM);
+
+ dialog.setLayout (new GridLayout (3, false));
+
+ final DateTime calendar = new DateTime (dialog, SWT.CALENDAR | SWT.BORDER);
+ final DateTime time = new DateTime (dialog, SWT.TIME | SWT.SHORT);
- textDate = new Text(this, SWT.BORDER | SWT.WRAP);
- textDate.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB, TableWrapData.TOP, 1, 1));
-
-// openDateDialog = new Button (this, SWT.PUSH);
-// Image image = getDisplay().getSystemImage(SWT.DATE);
-// openDateDialog.setText ("Open Date Dialog");
-// openDateDialog.addSelectionListener (new SelectionAdapter() {
-// @Override
-// public void widgetSelected(SelectionEvent e){
-// final Shell dialog = new Shell (parent.getShell(), SWT.DIALOG_TRIM);
-//
-// dialog.setLayout (new GridLayout (3, false));
-//
-// final DateTime calendar = new DateTime (dialog, SWT.CALENDAR | SWT.BORDER);
-// //final DateTime time = new DateTime (dialog, SWT.TIME | SWT.SHORT);
-//
-// new Label (dialog, SWT.NONE);
-// new Label (dialog, SWT.NONE);
-// Button ok = new Button (dialog, SWT.PUSH);
-// ok.setText ("OK");
-// ok.setLayoutData(new GridData (SWT.FILL, SWT.CENTER, false, false));
-// ok.addSelectionListener (new SelectionAdapter() {
-// @Override
-// public void widgetSelected(SelectionEvent e){
-// setData(makeJodaFromSWT(calendar));
-// setTextDate((calendar.getMonth () + 1) + "/" + calendar.getDay () + "/" + calendar.getYear ());
-// System.out.println ("Calendar date selected (MM/DD/YYYY) = " + (calendar.getMonth () + 1) + "/" + calendar.getDay () + "/" + calendar.getYear ());
-// // System.out.println ("Time selected (HH:MM) = " + time.getHours () + ":" + (time.getMinutes () < 10 ? "0" : "") + time.getMinutes ());
-// dialog.close ();
-// }
-// });
-// dialog.setDefaultButton (ok);
-// dialog.pack ();
-// dialog.open ();
-// }
-// });
+ new Label (dialog, SWT.NONE);
+ new Label (dialog, SWT.NONE);
+ Button ok = new Button (dialog, SWT.PUSH);
+ ok.setText ("OK");
+ ok.setLayoutData(new GridData (SWT.FILL, SWT.CENTER, false, false));
+ ok.addSelectionListener (new SelectionAdapter() {
+ @Override
+ public void widgetSelected(SelectionEvent e){
+ setData(makeJodaFromSWT(calendar, time));
+ dialog.close ();
+ }
+ });
+ dialog.setDefaultButton (ok);
+ dialog.pack ();
+ dialog.open ();
+ }
+ });
toolkit.adapt(textDate, true, true);
}
return textDate;
}
-// public void setTextDate(String text){
-// textDate.setText(text);
-// }
-// /**
-// * <p>
-// * Setter for the field <code>entity</code>.
-// * </p>
-// *
-// * @param selection
-// * a T object.
-// */
-// public void setEntity(org.joda.time.DateTime time) {
-// this.initialDateTime = time;
-//
-// }
-//
-//
-// public static org.joda.time.DateTime makeJodaFromSWT(
-// org.eclipse.swt.widgets.DateTime widget) {
-// return new org.joda.time.DateTime(widget.getYear(),
-// widget.getMonth(),
-// widget.getDay(),
-// widget.getHours(),
-// widget.getMinutes(),
-// widget.getSeconds());
-// }
-//
-// public static void updateSWTwithJoda(
-// org.eclipse.swt.widgets.DateTime widget,
-// org.joda.time.DateTime dateTime) {
-// widget.setYear(dateTime.getYear());
-// widget.setMonth(dateTime.getMonthOfYear());
-// widget.setDay(dateTime.getDayOfMonth());
-// widget.setHours(dateTime.getHourOfDay());
-// widget.setMinutes(dateTime.getMinuteOfHour());
-// widget.setSeconds(dateTime.getSecondOfMinute());
-// }
-//
-// public void setData (org.joda.time.DateTime data) {
-// this.initialDateTime = data;
-//
-// }
+
+
+
+ public static org.joda.time.DateTime makeJodaFromSWT(
+ org.eclipse.swt.widgets.DateTime widget, org.eclipse.swt.widgets.DateTime dateTime) {
+ return new org.joda.time.DateTime(widget.getYear(),
+ widget.getMonth(),
+ widget.getDay(),
+ dateTime.getHours(),
+ dateTime.getMinutes(),
+ dateTime.getSeconds());
+ }
+
+ public static void updateSWTwithJoda(
+ org.eclipse.swt.widgets.DateTime widget,
+ org.joda.time.DateTime dateTime) {
+ widget.setYear(dateTime.getYear());
+ widget.setMonth(dateTime.getMonthOfYear());
+ widget.setDay(dateTime.getDayOfMonth());
+ widget.setHours(dateTime.getHourOfDay());
+ widget.setMinutes(dateTime.getMinuteOfHour());
+ widget.setSeconds(dateTime.getSecondOfMinute());
+ }
+
+ public void setData (org.joda.time.DateTime data) {
+ this.initialDateTime = data;
+ this.controller.setDateTime(data);
+ this.textDate.setText(initialDateTime.toString(pattern));
+
+ }