/**
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2004 satoshi akabane(akabane@logical-paradox.org)
 *
 */
package org.logical_paradox.console.event;

import java.awt.event.KeyEvent;
import java.util.EventObject;

/**
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.5 $
 */
public class ConsoleEventObject extends EventObject {
	// キープレスイベント
	public static final int E_KEY_PRESS = 1;
	// コピーイベント
	public static final int E_COPY = 2;
	// ペーストイベント
	public static final int E_PASTE = 3;

	private int keyCode;
	private char keyChar;
	private String clipboard;
	private int eventType;

	/**
	 * コンストラクタ
	 * @param source イベントソース
	 * @param type イベントタイプ
	 */
	public ConsoleEventObject(Object source, int type) {
		super(source);
		switch(type) {
			case E_KEY_PRESS:
			case E_COPY:
			case E_PASTE:
				break;
			default:
				// ヘンなイベントタイプが指定された場合
				throw new IllegalArgumentException();
		}
	}
	/**
	 * 押下されたキーを設定する
	 * @param c 押されたキー
	 */
	public void setKeyCode(int c) {
		keyCode = c;
	}
	/**
	 * 押下されたキーを返す
	 * @return 押されたキー
	 */
	public int getKeyCode() {
		return keyCode;
	}
	public void setKeyChar(char c) {
		keyChar = c;
	}
	public char getKeyChar() {
		return keyChar;
	}
	/**
	 * キー入力イベントを返す
	 * @return キー入力イベントオブジェクト
	 */
	public KeyEvent getKeyEvent() {
		return (KeyEvent)source;
	}
	/**
	 * クリップボードへコピーする
	 * @param str コピーする文字列
	 */
	public void setClipBoard(String str) {
		clipboard = str;
	}
	/**
	 * クリップボードに設定されている文字列を返す
	 * @return クリップボードの文字列
	 */
	public String getClipBoard() {
		return clipboard;
	}
}
