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

import org.eclipse.jface.action.IAction;
import org.eclipse.jface.window.Window;
import org.eclipse.ui.IViewPart;
import org.postgresforest.tool.action.ConfigAction;
import org.postgresforest.tool.bean.ConfigInfo;
import org.postgresforest.tool.db.GSCdata;
import org.postgresforest.tool.dialog.config.ConfigDialog;
import org.postgresforest.tool.util.ErrorLog;
import org.postgresforest.tool.util.MsgDialogUtil;
import org.postgresforest.tool.util.SessionProperty;
import org.postgresforest.tool.view.config.ConfigView;

/**
 * TODO この生成された型コメントのテンプレートを変更するには次へジャンプ:
 * ウィンドウ - 設定 - Java - コード・スタイル - コード・テンプレート
 */
public class ModConfigAction extends ActionBase {

	private ConfigDialog m_dialog;

	public static final String ID = "org.postgresforest.tool.view.action.ModConfigAction";
	
	public void init(IViewPart view) {
		super.init(view);
		m_dialog = new ConfigDialog(true);

	}

	/*
	 * (非 Javadoc)
	 * 
	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
	 */
	public void run(IAction action) {
		ConfigView view = (ConfigView)m_view;
		String id = view.getSelectId();


		ConfigAction configAction = new ConfigAction((GSCdata)SessionProperty.get("gsc"));
		try {
			m_dialog.setConfigInfo(configAction.get(id));
		} catch (Exception e1) {
			ErrorLog.log("", e1);
		    MsgDialogUtil.err(e1.getLocalizedMessage());
		}

		

		//ダイアログを表示する
		if (m_dialog.open() == Window.OK) {
			ConfigInfo configInfo = m_dialog.getConfigInfo();
			//MASUCOMMENT 古いIDから古いIDのコンフィグ値を削除し、新しいコンフィグ値をセットする 
			configAction.mod(id, configInfo);
	
		}
		m_view.update();
	}

}
