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

import java.util.Enumeration;

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

import jp.co.iti.fagot.doc.DocPane;
import jp.co.iti.fagot.doc.DocGridControler;

import jp.co.iti.fagot.util.ZDebug;
/**
 * 選択オペレーション
 *
 * @author  福島康治
 * @version 1.01 2001/01/07
 */
public class GOperationSelect extends GRectangle {

	/**
	 * コンストラクタ
	 */
	public GOperationSelect() {
		super();
	}

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

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

	/**
	 * 移動の終了
	 * @param grid グリッドコントローラ
	 */
	public void moveEndGob( DocGridControler grid ) {
	ZRectangle rect = getMovingRectGob( grid ) ;

	// エレメントの取得
	DocPane editor = grid.getEditor();
	Enumeration elm = GobManager.getElement(editor.getPanelId()).elements() ;
	while ( elm.hasMoreElements() ) {
		GElement item = (GElement)elm.nextElement();
		if ( rect.contains( item.getTransformedBounds() ) ) {
			item.setSelect(true);
		}
	}
	}

	/**
	 * 移動中Pathの取得
	 * @param grid グリッドコントローラー
	 */
	public ZRectangle getMovingRectGob(DocGridControler grid) {
	return new ZRectangle( grid.getStartPoint(), grid.getMovePoint() );
	}

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