/**
 * @(#)GOperationCreate.java
 *
 * Copyright 2001 by Intelligent Technology Inc. All rights reserved.
 */
package jp.co.iti.fagot.gob;

import jp.co.iti.fagot.geom.ZPoint;
import jp.co.iti.fagot.geom.ZRectangle;

import jp.co.iti.fagot.doc.DocDocument;
import jp.co.iti.fagot.doc.DocManager;
import jp.co.iti.fagot.doc.DocGridControler;

import jp.co.iti.fagot.util.ZDebug;

/**
 * 新規作成オペレーション
 *
 * @author  福島康治
 * @version 1.01 2001/01/07
 */
public class GOperationCreate extends GRectangle {

	/**
	 * コンストラクタ
	 * @param doc       ドキュメント
	 * @param szElement 作成するエレメント
	 */
	public GOperationCreate(DocDocument doc,String szElement) {
		super();
		//{{FAGOT_ATTR
		//}}FAGOT_ATTR

//	IGobContainer container = (IGobContainer)DocManager.createElement(doc,null,szElement);
	IGobContainer container = (IGobContainer)doc.createElementNS(null,szElement);
	setContainer( container );
	setGobId("new");
	}

	//## 値 ###########################################################

	//## 位置##########################################################

	//## 移動##########################################################
	/**
	 * 操作前の移動モード
	 * @param pt 論理座標
	 */
	public byte getHitModeGob(ZPoint pt) {
	return GOperation.NEW;
	}

	/**
	 * 操作時の移動モード
	 * @param pt 論理座標
	 */
	public byte getPreMoveModeGob(ZPoint pt) {
	return GOperation.NEW;
	}

	/**
	 * 移動中Pathの取得
	 * @param grid グリッドコントローラー
	 */
	public ZRectangle getMovingRectGob(DocGridControler grid) {
	ZRectangle rect = new ZRectangle( grid.getStartGrid(), grid.getMoveGrid() );
	if ( rect.getWidth()  == 0 ) {	rect.setWidth(100);		}
	if ( rect.getHeight() == 0 ) {	rect.setHeight(100);	}
	return rect;
	}

	/**
	 * 移動の完了が必要か？
	 */
	public boolean needsMoveEnd() {
	return true;
	}

	//## 移動##########################################################

	//## 描画##########################################################

	//## FAGOT ########################################################

	//## アトリビュート################################################
}
