package com.vci.client.uif.engine.client.tableArea.editable.editor; import java.awt.Component; import java.util.List; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JTable; import javax.swing.JTextField; import com.vci.client.ui.swing.components.table.VCIJTableNode; import com.vci.client.uif.engine.client.controls.ControlFactory; import com.vci.client.uif.engine.client.controls.DateControl; import com.vci.client.uif.engine.client.controls.DateTimeControl; import com.vci.client.uif.engine.client.controls.TimeControl; import com.vci.client.uif.engine.common.IDataNode; /** * 时间类型列的编辑器对象 * @author xiongchao * */ public class DateTimeCellEditor extends CustomControlEditor { /** * */ private static final long serialVersionUID = 8345901497753591770L; public DateTimeCellEditor(JTextField textField) { super(textField); } private DateTimeControl dt = null; @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if(dt == null){ Component compt = ControlFactory.createControl(getPrmItem()); if(compt instanceof DateTimeControl){ dt = (DateTimeControl)compt; } else if(compt instanceof DateControl){ dt = (DateControl)compt; } else if(compt instanceof TimeControl){ dt = (TimeControl)compt; } dt.getCalPal().addPropertyChangeListener(this); } if(value != null){ dt.setValue(value.toString()); } Component compt = super.getTableCellEditorComponent(table, value, isSelected, row, column); compt = dt; return compt; } @Override public Object getCellEditorValue() { Object res = null; if(dt != null){ res = dt.getValue(); } return res; } @Override protected boolean checkValueChanged(){ Object newValueObj = getCellEditorValue(); if(newValueObj == null){ return false; } String newValue = newValueObj.toString(); boolean changed = !tablePanel.getOldValue().equals(newValue); tablePanel.setChanged(changed); return changed; } }