package pbl2011.mvc;
import java.awt.event.ActionListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import pbl2011.common.CommonConst;

/**
 * <p>
 * コントローラクラス
 * <p>
 * MVCモデルのCを担当するクラス。
 *
 * @author 10745104 Y.Ishii
 */
public abstract class Controller extends WindowAdapter
		implements Observer, ActionListener,
		MouseMotionListener,CommonConst{

	protected View myView;
	protected Model myModel;
	protected CurrentManager cuMgr;

	/**
	 * <p>
	 * コンストラクタ
	 *
	 * @param v ビュークラス
	 */
	public Controller(View v) {
		myView = v;

		myModel = v.getModel();
		myModel.attach(this);
		cuMgr = myModel.getCurrentManager();
	}

	@Override
	public void windowClosed(WindowEvent e) { // 閉じた
		myModel.detach(myView);
		myModel.detach(this);
	}

}
