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

import jp.co.cybec.laxide.model.base.I_LetsAjaxLayoutModel;
import jp.co.cybec.laxide.model.base.LetsAjaxLabelModel;

import org.eclipse.gef.commands.Command;

/**
 * モデルの属性を直接編集するときに呼ばれるコマンドクラス ファイル名：DirectEditCommand.java
 * 
 * @author nakamura 作成時刻：15:28:47
 * 
 */
public class DirectEditCommand extends Command {
	private String oldText, newText;

	private LetsAjaxLabelModel targetModel;

	// オーバーライド
	public void execute() {
		// 以前のテキストの記録
		oldText = targetModel.getValue();
		// テキストの変更
		targetModel.setValue(newText);
	}

	public void setModel(Object model) {
		targetModel = (LetsAjaxLabelModel) model;
	}

	public void setText(String text) {
		newText = text;
	}

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