/*
 * LOGICAL-PARADOX.ORG
 * Copyright (C)2005 satoshi akabane(akabane@logical-paradox.org)
 * $Id: AdditionNewNodeBtnListener.java,v 1.3 2005/03/18 13:55:26 rampil Exp $
 */
package org.logical_paradox.testsite.oln.model.handler;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import org.logical_paradox.testsite.oln.OverlayNetworkConstant;
import org.logical_paradox.testsite.oln.object.AppContext;
import org.logical_paradox.testsite.oln.object.RequestContext;

/**
 * 新規ノードを追加ボタンのイベントハンドラ
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.3 $
 */
public class AdditionNewNodeBtnListener extends AbstractOlnListenerAdapter implements ActionListener {
	/**
	 * コンストラクタ
	 * @param context アプリケーションコンテキスト
	 * @param request リクエストコンテキスト
	 */
	public AdditionNewNodeBtnListener(AppContext context, RequestContext request) {
		super(context, request);
	}

	/**
	 * イベントハンドラ
	 * @param e イベントオブジェクト
	 */
	public void actionPerformed(ActionEvent e) {
		// マウスカーソルの存在する位置に対して，新しくノードを追加する
		Integer x = (Integer)getRequestContext().getAttribute(OverlayNetworkConstant.RKEY_MOUSE_CLICKED_POS_X);
		Integer y = (Integer)getRequestContext().getAttribute(OverlayNetworkConstant.RKEY_MOUSE_CLICKED_POS_Y);

		getAppContext().getTopology().deployNewNode(x.intValue(), y.intValue());
		getAppContext().getFrame().repaint();
	}
}
