import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
import com.lavantech.gui.comp.*;

public class DateTimeCellEditor extends AbstractCellEditor
                         implements TableCellEditor, PickerEditorListener, AncestorListener
{
    DateTimePicker picker;

    public DateTimeCellEditor(String formatString)
    {
        picker = new DateTimePicker(new Date(), formatString );;
		picker.setDisplayClearButton(true);
        picker.addEditorListener(this);
		picker.addAncestorListener(this);
    }

    public Object getCellEditorValue()
    {
        return picker.getDate();
    }

    public Component getTableCellEditorComponent(JTable table,
                 Object value, boolean isSelected,
                 int row, int column)
    {
        picker.setDate((Date) value);
        return picker;
    }

    public void editingStarted(ChangeEvent evt)
    {
    }

    public void editingStopped(ChangeEvent evt)
    {
        fireEditingStopped();
    }

    public void editingCanceled(ChangeEvent evt)
    {
        fireEditingCanceled();
    }

	public void ancestorAdded(AncestorEvent evt)
	{
	}

	public void ancestorMoved(AncestorEvent evt)
	{
		picker.togglePopup();
	}

	public void ancestorRemoved(AncestorEvent evt)
	{
	}
}
