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

import java.awt.Color;
import java.awt.Graphics;

import javax.swing.JComponent;

import org.logical_paradox.testsite.oln.OverlayNetworkConstant;
import org.logical_paradox.testsite.oln.model.TopologyDrawerFactory;
import org.logical_paradox.testsite.oln.object.AppContext;

/**
 * ネットワークビューを表示するキャンバス
 * @author satoshi akabane@logical-paradox.org
 * @version $Revision: 1.3 $
 */
public class NetworkViewCanvas extends JComponent {
	/** トポロジー */
	private final AppContext context_;
	/** トポロジー描画ロジック */
	private final TopologyDrawer drawer = TopologyDrawerFactory.getDrawer();

	/**
	 * コンストラクタ
	 * @param context アプリケーションコンテキスト
	 */
	public NetworkViewCanvas(AppContext context) {
		context_ = context;
	}
	/**
	 * トポロジを描画する
	 * @param g 描画対象オブジェクト
	 */
	public void paint(Graphics g) {
		super.paint(g);

		Color prevColor = g.getColor();
		// 背景色のペイント
		g.setColor(OverlayNetworkConstant.DEFAULT_BG_COLOR);
		g.fillRect(0, 0, getWidth(), getHeight());

		// ネットワークを描画する
		drawer.paint(g, context_.getTopology());
		
		// ブラシの色を元に戻す
		g.setColor(prevColor);
	}
}
