package com.topsun.posclient.finance.ui.cell; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import org.eclipse.jface.viewers.CellEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Table; import com.topsun.widget.calendar.CalendarCombo; import com.topsun.widget.calendar.DefaultSettings; public class DateCellEditor extends CellEditor { public Table table; public CalendarCombo calendarCombo ; public DateCellEditor(Composite parent){ super(parent); this.table = (Table)parent; } @Override protected Control createControl(Composite parent) { CalendarCombo date = new CalendarCombo(parent, SWT.READ_ONLY, new Settings(), null); date.setDate(Calendar.getInstance()); // calendarCombo.setEnabled(false); GridData data = new GridData(GridData.FILL_HORIZONTAL); date.setLayoutData(data); calendarCombo = date; return date; } @Override protected Object doGetValue() { // TODO Auto-generated method stub return calendarCombo.getDateAsString(); } @Override protected void doSetFocus() { // TODO Auto-generated method stub } @Override protected void doSetValue(Object value) { SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd"); Date date; try { if("".equals(value.toString())){ return; } date = sdf.parse(value.toString()); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendarCombo.setDate(calendar); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } // value = calendarCombo.getDateAsString(); // value.toString(); // TODO Auto-generated method stub } } class Settings extends DefaultSettings { /* public Locale getLocale() { //return Locale.GERMAN; } */ public boolean keyboardNavigatesCalendar() { return false; } }