package jp.co.cybec.laxide.model.commands;

import jp.co.cybec.laxide.model.base.AbstractModel;
import jp.co.cybec.laxide.model.base.I_LetsAjaxLayoutModel;
import jp.co.cybec.laxide.model.base.LetsAjaxBodyModel;

import org.eclipse.gef.commands.Command;

/**
 * モデル削除の時に呼ばれるコマンドクラス ファイル名：DeleteCommand.java
 * 
 * @author nakamura 作成時刻：15:27:14
 * 
 */
public class DeleteCommand extends Command {
	private LetsAjaxBodyModel contentsModel;// 削除対象を持っている親モデル

	private AbstractModel targetModel;// 削除対象のモデル

	// オーバーライド
	public void execute() {
		// モデルを削除する
		contentsModel.removeChild(targetModel);
	}

	public void setContentsModel(Object model) {
		if (model instanceof LetsAjaxBodyModel) {
			// 
			contentsModel = (LetsAjaxBodyModel) model;
		}
	}

	public void setLaxModel(Object model) {
		targetModel = (AbstractModel) model;
	}

	// オーバーライド
	public void undo() {
		if (!(targetModel instanceof I_LetsAjaxLayoutModel)) {
			// 削除をやめて、元に戻す
			contentsModel.addChild(targetModel);
		}
	}
}
