/*
 * Copyright (C) 2005 NTT DATA Corporation
 * 
 */
package org.postgresforest.tool;

import org.eclipse.ui.IFolderLayout;
import org.eclipse.ui.IPageLayout;
import org.eclipse.ui.IPerspectiveFactory;
import org.eclipse.ui.console.IConsoleConstants;
import org.postgresforest.tool.view.brokenlog.BrokenLogView;
import org.postgresforest.tool.view.config.ConfigView;
import org.postgresforest.tool.view.dbinstance.DbInstanceView;
import org.postgresforest.tool.view.ddl.DdlView;
import org.postgresforest.tool.view.hash.HashView;
import org.postgresforest.tool.view.menu.AdminMenuView;
import org.postgresforest.tool.view.partitionlist.PartitionListView;
import org.postgresforest.tool.view.serverstatus.ServerStatusView;
import org.postgresforest.tool.view.tablecolumn.TableColumnView;
import org.postgresforest.tool.view.user.UserView;

/**
 * PostgresForest環境構築ツール用パースペクティブクラス
 *
 * PostgresForest環境構築ツール用のパースペクティブを設定する
 */
public class ForestToolPerspective implements IPerspectiveFactory {

	/**
	 * パースペクティブの初期レイアウト作成処理
	 * 
	 * @see org.eclipse.ui.IPerspectiveFactory#createInitialLayout(org.eclipse.ui.IPageLayout)
	 */
	public void createInitialLayout(IPageLayout layout) {
		
		//管理者ツールのアクションセットを追加
	    layout.addActionSet("ForestTool.AdminActionSet");
	    
	    //エディタ領域を非表示にする
	    layout.setEditorAreaVisible(false);
	    
	    //エディタ領域のIDを取得
	    String editorArea = layout.getEditorArea();
	    //エディタ領域の上部80%を占めるフォルダを作成
	    IFolderLayout top =
	    	layout.createFolder(
	    			"top",
					IPageLayout.TOP,
					(float) 0.7f,
					editorArea);
	    //ID=topのフォルダの左側50%を占めるフォルダの作成
	    IFolderLayout topLeft =
	    	layout.createFolder(
	    			"topLeft",
					IPageLayout.LEFT,
					(float) 1/5f,
	    			"top");

	    //ID=topLeftのフォルダの上側50%を占めるフォルダの作成
	    IFolderLayout topTop =
	    	layout.createFolder(
	    			"topTop",
					IPageLayout.TOP,
					(float) 0.5f,
	    			"top");

	    IFolderLayout topTopLeft =
	    	layout.createFolder(
	    			"topTopLeft",
					IPageLayout.LEFT,
					(float) 1/2f,
	    			"topTop");
	    
	    IFolderLayout topLeft1 =
	    	layout.createFolder(
	    			"topLeft1",
					IPageLayout.LEFT,
					(float) 1/2f,
	    			"top");

	    //TODOMASU テーブルリストはなし
//	    IFolderLayout topLeft2 =
//	    	layout.createFolder(
//	    			"topLeft2",
//					IPageLayout.LEFT,
//					(float) 1/3f,
//	    			"top");

//	    IFolderLayout topLeft3 =
//	    	layout.createFolder(
//	    			"topLeft3",
//					IPageLayout.LEFT,
//					(float) 1/2f,
//	    			"top");

	    
	    //エディタ領域の下部30%を占めるフォルダを作成
	    IFolderLayout bottom =
	    	layout.createFolder(
	    			"bottom",
					IPageLayout.BOTTOM,
					(float) 0.3f,
					editorArea);

	    IFolderLayout bottomLeft =
	    	layout.createFolder(
	    			"bottomLeft",
					IPageLayout.LEFT,
					(float) 0.3f,
					"bottom");

	    
	    //管理者ツールのビューを追加
	    topLeft.addView(AdminMenuView.ID);
	    topTopLeft.addView(ServerStatusView.ID);
//	    topTop.addView(GscView.ID);
	    topTop.addView(UserView.ID);
	    topTop.addView(ConfigView.ID);
	    topTop.addView(HashView.ID);
	   
	    
	    
	    topLeft1.addView(DbInstanceView.ID);
	    topLeft1.addView(TableColumnView.ID);
	    //ユーザーツールのビューを追加
	    //topLeft2.addView(TableListView.ID);
	    
	    //topLeft3.addView(TableColumnView.ID);
	    top.addView(PartitionListView.ID);
	    
	    bottomLeft.addView(DdlView.ID);
	    //コンソールビューの追加
	    bottom.addView(IConsoleConstants.ID_CONSOLE_VIEW);
	    bottom.addView("org.eclipse.pde.runtime.LogView");
	    //MASUCOMMENT ログ一覧VIEWを追加した
	    bottom.addView(BrokenLogView.ID);
	}

}
