/*
 * 作成日： 2004/12/27
 *
 * TODO この生成されたファイルのテンプレートを変更するには次を参照。
 * ウィンドウ ＞ 設定 ＞ Java ＞ コード・スタイル ＞ コード・テンプレート
 */
package jp.riken.brain.ni.samuraigraph.base;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JCheckBox;

/**
 * @author LANDAU
 *
 * TODO この生成された型コメントのテンプレートを変更するには次を参照。
 * ウィンドウ ＞ 設定 ＞ Java ＞ コード・スタイル ＞ コード・テンプレート
 */
public class SGCheckBox extends JCheckBox implements ActionListener
{

	/**
	 * 
	 */
	public SGCheckBox()
	{
		super();
		this.initProperty();
	}

	/**
	 * @param text
	 */
	public SGCheckBox(String text)
	{
		super(text);
		this.initProperty();
	}

	/**
	 * @param text
	 * @param selected
	 */
	public SGCheckBox(String text, boolean selected)
	{
		super(text, selected);
		this.initProperty();
	}

	/**
	 * @param a
	 */
	public SGCheckBox(Action a)
	{
		super(a);
		this.initProperty();
	}

	/**
	 * @param icon
	 */
	public SGCheckBox(Icon icon)
	{
		super(icon);
		this.initProperty();
	}

	/**
	 * @param icon
	 * @param selected
	 */
	public SGCheckBox(Icon icon, boolean selected)
	{
		super(icon, selected);
		this.initProperty();
	}

	/**
	 * @param text
	 * @param icon
	 */
	public SGCheckBox(String text, Icon icon)
	{
		super(text, icon);
		this.initProperty();
	}

	/**
	 * @param text
	 * @param icon
	 * @param selected
	 */
	public SGCheckBox(String text, Icon icon, boolean selected)
	{
		super(text, icon, selected);
		this.initProperty();
	}

	
	/**
	 * 
	 */
	private Color mTempColor = null;
	
	
	/**
	 * 
	 * @return
	 */
	private boolean initProperty()
	{
		this.mTempColor = this.getForeground();
		this.addActionListener(this);
		return true;
	}
	
	
	/**
	 * 
	 */
	private boolean mIndefinite = false;

	
	/**
	 * 
	 * @param b
	 */
	public void setIndefinite( final boolean b )
	{
		this.mIndefinite = b;
/*		Color cl = null;
		if(b)
		{
			Color g = this.mTempColor;
			cl = new Color(
				g.getRed(), g.getGreen(), g.getBlue(), 32 );
		}
		else
		{
			cl = this.mTempColor;
		}
		this.setForeground( cl );
*/
		this.setEnabled(!b);
	}

	
	/**
	 * 
	 * @return
	 */
	public boolean isIndefinite()
	{
		return this.mIndefinite;
	}

	
	/**
	 * 
	 * @param e
	 */
	public void actionPerformed( ActionEvent e )
	{
		this.setIndefinite(false);
	}
	
	
}

