package CITableTest;

/*
 * StringCellEditor.java
 *
 * Created on September 21, 2000, 3:16 PM
 */

import javax.swing.table.TableCellEditor;
import javax.swing.JTextField;
import javax.swing.JTable;
import javax.swing.SwingConstants;
import java.awt.Component;
/**
 *
 * @author  Somchai LIMSIRORATANA, Nuntiya LIMSIRORATANA(Yawai)
 * @version 1.0
 */
public class StringCellEditor extends AbstractCellEditor implements TableCellEditor {

    protected JTextField textField;
    /** Creates new StringCellEditor */
    public StringCellEditor() {
        textField = new JTextField();
        textField.addActionListener(this);
        textField.setEditable(true);
        textField.setHorizontalAlignment(SwingConstants.LEFT);
    }

    /** Sets an initial <I>value</I> for the editor.  This will cause
     * the editor to stopEditing and lose any partially edited value
     * if the editor is editing when this method is called. <p>
     *
     * Returns the component that should be added to the client's
     * Component hierarchy.  Once installed in the client's hierarchy
     * this component will then be able to draw and receive user input.
     *
     * @param   table       the JTable that is asking the editor to edit
     *              This parameter can be null.
     * @param   value       the value of the cell to be edited.  It is
     *              up to the specific editor to interpret
     *              and draw the value.  eg. if value is the
     *              String "true", it could be rendered as a
     *              string or it could be rendered as a check
     *              box that is checked.  null is a valid value.
     * @param   isSelected  true is the cell is to be renderer with
     *              selection highlighting
     * @param   row         the row of the cell being edited
     * @param   column      the column of the cell being edited
     * @return  the component for editing
     */
    public Component getTableCellEditorComponent(JTable table,Object value,boolean isSelected,int row,int column) {
        if (value instanceof String)
            textField.setText((String)value);
        return textField;
    }
    /** Returns the value contained in the editor */
    public Object getCellEditorValue() {
        return textField.getText();
    }
}