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;
|
}
|
|
}
|
|