/*
 * @(#)IZApp.java
 *
 * Copyright 2001 by Intelligent Technology Inc. All rights reserved.
 */
package jp.co.iti.fagot;

import java.awt.Frame;

import javax.swing.Action;

import jp.co.iti.fagot.ui.UIFactory;

import jp.co.iti.fagot.util.ZResource;
/**
 * IZAppクラスはアプリケーションのインターフェイスです。
 *
 * @author  福島康治
 * @version 1.01 2001/01/21
 */
public interface IZApp {

	//## アプリケーション #############################################
	/**
	 * リソースの取得
	 */
	public ZResource getResource() ;

	/**
	 * アクションの取得
	 */
	public Action getAction(String szAct) ;

	/**
	 * UIファクトリーの取得
	 */
	public UIFactory getUIFactory() ;

	/**
	 * フレームの取得
	 * 子ダイアログを出す場合などに利用する
	 */
	public Frame getFrame() ;

	/**
     * 最近開いたファイルメニューの更新
     *
	 * 履歴は更新されないが、dlg.setCurrentDirectoryを行ってディレクトリが
	 * 変更になるとメニュー表示でエラーがでるため、ここでファイル履歴を更新する
	 *
     * @param szFile ファイル名（メニューの更新のみの場合null）
	 */
	public void updateRecent(String szFile) ;

	/**
	 * 終了前処理
	 * メニューから呼ばれるときと、×から呼ばれるときがある
	 * @param bForce 強制？
	 *
	 * 強制終了の場合は、アプリケーションデータを保護して終了する
	 * 通常終了の場合は、コンテンツに変更があったかどうかをチェックし
	 * 変更があれば保存するか問い合わせてから終了する
	 * このとき、キャンセルが選択されたら終了しない。
	 */
	public boolean preExit( boolean bForce ) ;

	/**
	 * アプリケーションの終了
	 */
	public void exit() ;

}
