/*  OpenOlap viewer
 *  パッケージ名：openolap.viewer.controller
 *  ファイル：RenewHtmlActCommand.java
 *  説明：Spreadの表示を行うページを戻します。
 *
 *  作成日: 2004/01/19
 */
package openolap.viewer.controller;

import java.io.IOException;

import javax.servlet.ServletException;

import openolap.viewer.common.CommonSettings;
import openolap.viewer.dao.ColorDAO;
import openolap.viewer.dao.DAOFactory;
import openolap.viewer.dao.ReportDAO;

/**
 *  クラス：RenewHtmlActCommand
 *  説明：Spreadの表示を行うページを戻します。
 */
public class RenewHtmlActCommand implements Command {

	// ********** インスタンス変数 **********

	/** 色情報登録モードをあらわす文字列 */
	private final String registColorSettingsMode = "registColorSetings";

	/**
	 * Spreadの表示を行うページを戻す。<br>
	 * XSLファイルを読み込み、クライアント側で持つXMLに適用してSpreadのHTMLを書き出させるページを戻す。<br>
	 * ダイスによる再表示時には、軸の配置情報更新、色設定情報更新を事前に行う。<br>
	 * レポート新規表示時、セレクタ適用後の新規再表示、ダイスによる再表示時に実行される。<br>
	 * ダイスによる再表示時には"mode"パラメーターが"registColorSetings"の値をとる。
	 * @param helper RequestHelperオブジェクト
	 * @param commonSettings アプリケーションの共通設定オブジェクト
	 * @return dispatch先のJSP/HTMLのパス
	 * @exception ServletException 処理中に例外が発生した
	 * @exception IOException 処理中に例外が発生した
	 */
	public String execute(RequestHelper helper, CommonSettings commonSettings)
		throws ServletException, IOException {

		String mode = (String)helper.getRequest().getParameter("mode");
		if( registColorSettingsMode.equals(mode) ) {

			// 軸の配置情報を更新
			ReportDAO reportDAO = DAOFactory.getDAOFactory().getReportDAO(null);
			reportDAO.registAxisPosition(helper, commonSettings);

			// 色設定情報を更新
			ColorDAO colorDAO = DAOFactory.getDAOFactory().getColorDAO(null);
			colorDAO.registColor(helper, commonSettings);

		}
		return "/spread/spread.html";
	}

}
