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

import org.eclipse.jface.action.IAction;
import org.eclipse.ui.console.IConsoleConstants;
import org.postgresforest.tool.action.ExecDdl;
import org.postgresforest.tool.db.GSCdata;
import org.postgresforest.tool.util.SessionProperty;
import org.postgresforest.tool.view.ViewUtil;
import org.postgresforest.tool.view.ddl.DdlView;
import org.postgresforest.tool.view.menu.AdminMenuView;
import org.postgresforest.tool.view.partitionlist.PartitionListView;
import org.postgresforest.tool.view.tablecolumn.TableColumnView;

/**
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class ExecDdlAction extends ActionBase {

    public static final String ID = "org.postgresforest.tool.view.action.ExecDdlAction";
	/* (non-Javadoc)
	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
	 */
	public void run(IAction action) {
		// TODO Auto-generated method stub
		DdlView view = (DdlView)m_view;
		
		//DDL文の取得
		String ddl = view.getDdl();


		//セッション･プロパティからグローバルシステムカタログを取得
		GSCdata gsc = (GSCdata)SessionProperty.get("gsc");

		String dbName = (String)SessionProperty.get("selectDb");
		
		
		
		ExecDdl execDdl = new ExecDdl(gsc, dbName);
		try {
			execDdl.executeMain(ddl);
		} catch (Exception e) {
			e.printStackTrace();
		}


		//メニュー一覧ビューを表示する
		ViewUtil.updateView(AdminMenuView.ID);
//TODOMASU TableListViewはいらないのでアップデートしない
		//テーブル一覧ビューを表示する
//		ViewUtil.updateView(TableListView.ID);

	    //テーブル項目ビューを表示する
		ViewUtil.updateView(TableColumnView.ID);
		
	    //パーティションビューを表示する
		ViewUtil.updateView(PartitionListView.ID);
	
        ViewUtil.updateView(IConsoleConstants.ID_CONSOLE_VIEW,true,false);

	}

}
