/**
 * LOGICAL-PARADOX.ORG b-tree library
 * Copyright (C)2004 satoshi akabane(akabane@logical-paradox.org)
 *
 * Release 1.0
 * ・初期パージョン
 */
package org.logical_paradox.common.btree.simulation.bts;

import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;

import javax.swing.JFrame;

/**
 * B-treeシミュレータのメインフレーム．
 * このフレームはjava applicationが使用する．
 * @author satoshi akabane@logical-paradox.org
 * @version 1.0
 */
public class BtreeSimulatorMainFrame extends JFrame {
	protected BtreeSimulatorMainPanel mainPanel;

	/**
	 * コンストラクタ
	 * @param framettl フレームのタイトル
	 */
	public BtreeSimulatorMainFrame(String framettl) throws Exception {
		super(framettl);
		init();
	}
	/**
	 * このフレームの初期化処理．
	 * フレームの初期化処理では必要なコンポーネントの配置を実行するが，表示は行わない
	 */
	public void init() throws Exception {
		mainPanel = new BtreeSimulatorMainPanel();
		mainPanel.init();

		// メインパネルの貼り付け
		getContentPane().setLayout(new GridLayout(1,1));
		getContentPane().add(mainPanel);

		validate();
		pack();
		setResizable(true);

		Dimension windowLocation = Toolkit.getDefaultToolkit().getScreenSize();
		setLocation( ((int)windowLocation.getWidth() - getWidth()) /2, ((int)windowLocation.getHeight() - getHeight()) /2 );
	}
	/**
	 * 画面表示/非表示の状態を設定する
	 * ※このフレームに配置されている部品と連動させるため，オーバーライドした
	 * @param b 表示状態(true: 表示させる / false:非表示にする)
	 */
	public void setVisible(boolean b) {
		mainPanel.setVisible(b);
		super.setVisible(b);
	}
}
