package com.egantt.swing.cell.editor.adapter;
import java.awt.Component;
import java.util.EventObject;
import javax.swing.AbstractCellEditor;
import javax.swing.JTable;
import javax.swing.table.TableCellEditor;
import com.egantt.swing.cell.CellEditor;
import com.egantt.swing.cell.renderer.adapter.JTableRendererAdapter;
public class JTableEditorAdapter extends AbstractCellEditor
implements TableCellEditor {
private static final long serialVersionUID = 5181381787657020316L;
protected final JTableRendererAdapter rendererAdapter;
protected final CellEditor editor;
public JTableEditorAdapter(CellEditor editor)
{
this.editor = editor;
this.rendererAdapter = new JTableRendererAdapter(editor, true, false);
}
// ________________________________________________________________________
public boolean isCellEditable(EventObject e) {
return editor.isCellEditable(e);
}
// ________________________________________________________________________
public Component getTableCellEditorComponent(JTable source, Object value,
boolean isSelected, int row, int column)
{
Component component = rendererAdapter.getTableCellRendererComponent(source, value, isSelected, source.hasFocus(), row, column);
return component;
}
public Object getCellEditorValue() {
return editor.getValue();
}
@Override
public void cancelCellEditing() {
editor.cancelEditing();
super.cancelCellEditing();
}
@Override
public boolean stopCellEditing() {
editor.stopEditing();
return super.stopCellEditing();
}
}