/**
 * @(#)TextCEC.java
 * Copyright 2001 Nomura Research Institute, LTD. All rights reserved.
 * RID-3 : Boolean Cell Editor Component
 * @author  Intelligent Technology Inc.
 * @version 1.00 2001/10/01-2002/03/26
 * @see iCellEditorComponent
 */
package	jp.co.nri.rid.table.editor;

import java.awt.Component;
import java.awt.event.*;
import javax.swing.*;

/**
 * テキスト入力セルエディタ/レンダラコンポーネント(テキストフィールド)
 */
public class TextCEC extends JTextField implements iCellEditorComponent{
	
	/**
	 * @param	editable	編集可否。
	 * @param	listener	アクションリスナー。
	 * @since	1.00
	 */
	public TextCEC(boolean editable ,ActionListener listener){
		setBorder(null);
		editable(editable);
		addActionListener(listener);
		if(listener instanceof CECAdapter)	((CECAdapter)listener).editor(this);
	}
	
	/**
	 * セル値(String)を取得する。
	 * @return	セル値。
	 * @since	1.00
	 */
	public String		text(){				return getText();	}
	
	/**
	 * セル値を設定する。
	 * @param	text	セル値。
	 * @since	1.00
	 */
	public void			text(String text){	setText(text);		}
	
	/**
	 * エディタコンポーネントを取得する。
	 * @return	エディタコンポーネント。
	 * @since	1.00
	 */
	public JComponent	component(){		return this;		}
	
	/**
	 * 実装の都合上publicとなっているが、使用しないこと。
	 * @since	1.00
	 */
	public void			focus(boolean hasFocus ,JTable table){
		if(hasFocus){
			setForeground(table.getSelectionForeground());
			setBackground(table.getSelectionBackground());
		}
		else{
			setForeground(table.getForeground());
			setBackground(table.getBackground());
		}
	}
	
	/**
	 * 編集可否を設定する。
	 * @param	editable	true:編集可 false:編集不可。
	 * @since	1.00
	 */
	public void editable(boolean editable){ setEnabled(editable); }
}
