/*
 * @(#)CleanupDialog.java
 *
 * Copyright 2001 Nomura Research Institute, LTD. All rights reserved.
 *
 * RID-X ：クリーンアップダイアログ
 *
 * @author  Intelligent Technology Inc.
 * @version 1.01 2001/02/14
 */
package jp.co.nri.rid.environment;

import java.io.*;
import java.util.*;
import java.text.*;
import java.net.URL;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;

import jp.co.iti.fagot.ZApp;
import jp.co.iti.fagot.doc.DocDocument;
import jp.co.iti.fagot.doc.DocManager;
import jp.co.iti.fagot.util.ZDebug;
import jp.co.iti.fagot.util.ZResource;
import jp.co.iti.fagot.util.ZProperties;
import jp.co.iti.fagot.util.ZString;

/**
 * クリーンアップダイアログ
 */

public class CleanupDialog {

    /** cleanup.pageプロパティ  **/
    final static public String CLEANUP_PAGE     = "cleanup.page";
    /** env.firscleanup.resourcetプロパティ  **/
    final static public String CLEANUP_RESOURCE = "cleanup.resource";
    /** cleanup.documentプロパティ  **/
    final static public String CLEANUP_DOCUMENT = "cleanup.document";
    /** msg.cleanup.titleプロパティ  **/
    final static public String MSG_CLEANUP_TITLE    = "msg.cleanup.title";
    /** msg.cleanup.cleanupプロパティ  **/
    final static public String MSG_CLEANUP_CLEANUP  = "msg.cleanup.cleanup";
    /** msg.cleanup.pageプロパティ  **/
    final static public String MSG_CLEANUP_PAGE     = "msg.cleanup.page";
    /** msg.cleanup.resourceプロパティ  **/
    final static public String MSG_CLEANUP_RESOURCE = "msg.cleanup.resource";
    /** msg.cleanup.documentプロパティ  **/
    final static public String MSG_CLEANUP_DOCUMENT = "msg.cleanup.document";

    /** メインパネル              **/
    protected JPanel    mPanel           = null;
    /** JCheckBox (ページ）       **/
    protected JCheckBox mCleanUpPage     = null;
    /** JCheckBox（リソース）     **/
    protected JCheckBox mCleanUpResource = null;
    /** JCheckBox（ドキュメント） **/
    protected JCheckBox mCleanUpDocument = null;

    /**
      * デフォルトコンストラクタ
      */
      public CleanupDialog() {  }

    /**
      * クリーンアップダイアログ生成
      *
      * @return boolean     ボタンの状態true(OK)/false(Cancel)
      */
    public boolean show() {

        ZResource res = ZApp.getTheApp().getResource();

        JFrame frame = (JFrame)ZApp.getTheApp().getFrame();
        EnvDialog gdlg = new EnvDialog(frame, res.getString(MSG_CLEANUP_TITLE));

        //メインコンポーネント
        mPanel = new JPanel();

        // Layoutを「GridBagLayout」にする
        GridBagLayout mLayout = new GridBagLayout();
        mPanel.setLayout(mLayout);

        // Layout制約の作成
        GridBagConstraints gbc = new GridBagConstraints();
        gbc.fill       = GridBagConstraints.BOTH;
        gbc.insets     = new Insets(10,10,10,10) ;

        //ラベル
        gbc.gridy      = 0;
        gbc.gridx      = 0;
        gbc.gridwidth  = 1;
        gbc.gridheight = 1;
        JLabel label = new JLabel(res.getString(MSG_CLEANUP_CLEANUP));
        mLayout.setConstraints(label, gbc);
        mPanel.add( label );

        //サイトチェックボックス生成
        gbc.gridy      = 0;
        gbc.gridx      = 1;
        mCleanUpPage = createCleanUpCheckBox(res.getString(MSG_CLEANUP_PAGE), CLEANUP_PAGE);
        mLayout.setConstraints(mCleanUpPage, gbc);
        mPanel.add( mCleanUpPage );

        //リソースチェックボックス生成
        gbc.gridy      = 0;
        gbc.gridx      = 2;
        mCleanUpResource = createCleanUpCheckBox(res.getString(MSG_CLEANUP_RESOURCE), CLEANUP_RESOURCE);
        mLayout.setConstraints(mCleanUpResource, gbc);
        mPanel.add( mCleanUpResource );

        //ドキュメントチェックボックス生成
        gbc.gridy      = 0;
        gbc.gridx      = 3;
        mCleanUpDocument = createCleanUpCheckBox(res.getString(MSG_CLEANUP_DOCUMENT), CLEANUP_DOCUMENT);
        mLayout.setConstraints(mCleanUpDocument, gbc);
        mPanel.add( mCleanUpDocument );

        // [メインコンポーネント]と[OK][CENCEL]
        gdlg.setControlPanel(mPanel);

        //ダイアログを表示する（モーダル）
        gdlg.doModal();

        // [生成]ボタンが押された場合に変更する
        boolean ret = gdlg.isOK();
        if (ret){
            setCleanUpResource();
        }
        return ret;
    }

    /**
      * クリーンアップのチェックボックス作成
      *
      * @param  String      label         ラベル名
      * @param  String      resource      リソース名
      * @return JCheckBox
      */
    private JCheckBox createCleanUpCheckBox(String label, String resource) {
        ZResource res = ZApp.getTheApp().getResource();
        boolean selected = res.getBoolean(resource);
        JCheckBox chk = new JCheckBox(label);
        chk.setSelected(selected);
        return chk;
    }


    /**
      * クリーンアップのResourceを設定
      *
      * @return void
      */
    private void setCleanUpResource() {

        /* [cleanup.page]を設定 */
        ZResource res = ZApp.getTheApp().getResource();
        res.putBoolean(CLEANUP_PAGE, mCleanUpPage.isSelected());

        /* [cleanup.resource]を設定 */
        res.putBoolean(CLEANUP_RESOURCE, mCleanUpResource.isSelected());

        /* [cleanup.document]を設定 */
        res.putBoolean(CLEANUP_DOCUMENT, mCleanUpDocument.isSelected());

    }

}
