/*
 * @(#)RidViewAction.java
 *
 * Copyright 2001 Nomura Research Institute, LTD. All rights reserved.
 *
 * RID-X : rid view action
 *
 * @author  Intelligent Technology Inc.
 * @version 1.01 2002/01/21
 */
package jp.co.nri.rid.action;

import java.awt.event.ActionEvent;

import jp.co.iti.fagot.IZApp;
import jp.co.iti.fagot.action.ZAction;

import jp.co.iti.fagot.util.ZResource;
import jp.co.iti.fagot.util.ZDebug;

import jp.co.nri.rid.RUpdateManager;
/**
 * Rid View Option系アクションを定義する
 */
public class RidViewAction extends ZAction {
	/**
	 * 唯一のコンストラクタです。
	 * @param app アプリケーション
	 * @param szAction アクション名
	 */
	public RidViewAction(IZApp app,String szAction) {
    super(app,szAction);
	}

	/**
	 * アクション実行
	 */
	public void doAction(ActionEvent e) {
	ZResource res = getApp().getResource();

	// Link
	if ( getActionName().equals( LINK_VIRTUAL ) ) {
		boolean bValue = res.getBoolean("view.Link.Virtual");
		res.putBoolean("view.Link.Virtual",!bValue);
	} else if ( getActionName().equals( LINK_REAL ) ) {
		boolean bValue = res.getBoolean("view.Link.Real");
		res.putBoolean("view.Link.Real",!bValue);
	} else if ( getActionName().equals( LINK_SELECT ) ) {
		boolean bValue = res.getBoolean("view.Link.Select");
		res.putBoolean("view.Link.Select",!bValue);

	// ZoneUnit
	} else if ( getActionName().equals( ZONE_NAM ) ) {
		res.putString("viewtext.Zone.ZoneUnit","Name");
	} else if ( getActionName().equals( ZONE_CMT ) ) {
		res.putString("viewtext.Zone.ZoneUnit","Comment");
	} else if ( getActionName().equals( ZONE_FIL ) ) {
		res.putString("viewtext.Zone.ZoneUnit","File");

	// PageUnit
	} else if ( getActionName().equals( PAGE_NAM ) ) {
		res.putString("viewtext.Zone.PageUnit","Name");
	} else if ( getActionName().equals( PAGE_TTL ) ) {
		res.putString("viewtext.Zone.PageUnit","Title");
	} else if ( getActionName().equals( PAGE_CMT ) ) {
		res.putString("viewtext.Zone.PageUnit","Comment");
	} else if ( getActionName().equals( PAGE_FIL ) ) {
		res.putString("viewtext.Zone.PageUnit","File");

	// PageUnit
	} else if ( getActionName().equals( URL_NAM ) ) {
		res.putString("viewtext.Zone.UrlUnit","Name");
	} else if ( getActionName().equals( URL_CMT ) ) {
		res.putString("viewtext.Zone.UrlUnit","Comment");

	// Access Count
	} else if ( getActionName().equals( PAGE_ACCESS ) ) {
		boolean bValue = res.getBoolean("view.Page.AccessCount");
		res.putBoolean("view.Page.AccessCount",!bValue);
	}

	RUpdateManager.update(RUpdateManager.PANEL_ACTIVE);
	}

	/**
	 * UI更新
	 */
	public void update() {
	ZResource res = getApp().getResource();
	boolean bValue = true;

//	ZDebug.trace("Action:"+getActionName());

	// Link
	if ( getActionName().equals( LINK_VIRTUAL ) ) {
		bValue = res.getBoolean("view.Link.Virtual");
	} else if ( getActionName().equals( LINK_REAL ) ) {
		bValue = res.getBoolean("view.Link.Real");
	} else if ( getActionName().equals( LINK_SELECT ) ) {
		bValue = res.getBoolean("view.Link.Select");

	// ZoneUnit
	} else if ( getActionName().equals( ZONE_NAM ) ) {
		bValue = res.getString("viewtext.Zone.ZoneUnit").equals("Name");
	} else if ( getActionName().equals( ZONE_CMT ) ) {
		bValue = res.getString("viewtext.Zone.ZoneUnit").equals("Comment");
	} else if ( getActionName().equals( ZONE_FIL ) ) {
		bValue = res.getString("viewtext.Zone.ZoneUnit").equals("File");

	// PageUnit
	} else if ( getActionName().equals( PAGE_NAM ) ) {
		bValue = res.getString("viewtext.Zone.PageUnit").equals("Name");
	} else if ( getActionName().equals( PAGE_TTL ) ) {
		bValue = res.getString("viewtext.Zone.PageUnit").equals("Title");
	} else if ( getActionName().equals( PAGE_CMT ) ) {
		bValue = res.getString("viewtext.Zone.PageUnit").equals("Comment");
	} else if ( getActionName().equals( PAGE_FIL ) ) {
		bValue = res.getString("viewtext.Zone.PageUnit").equals("File");

	// URLUnit
	} else if ( getActionName().equals( URL_NAM ) ) {
		bValue = res.getString("viewtext.Zone.UrlUnit").equals("Name");
	} else if ( getActionName().equals( URL_CMT ) ) {
		bValue = res.getString("viewtext.Zone.UrlUnit").equals("Comment");

	// Access Count
	} else if ( getActionName().equals( PAGE_ACCESS ) ) {
		bValue = res.getBoolean("view.Page.AccessCount");
	}

	firePropertyChange(ZAction.CHECKED,null,new Boolean(bValue));
	}

	//## アトリビュート ###############################################
    /**
     * アクション名：リンクの表示：virtual
     */
	final static public String LINK_VIRTUAL		= "link_virtual" ;

    /**
     * アクション名：リンクの表示：real
     */
	final static public String LINK_REAL		= "link_real" ;

    /**
     * アクション名：リンクの表示：選択
     */
	final static public String LINK_SELECT		= "link_select" ;

    /**
     * アクション名：ゾーンの表示：Name
     */
	final static public String ZONE_NAM			= "zone_nam" ;

    /**
     * アクション名：ゾーンの表示：Comment
     */
	final static public String ZONE_CMT			= "zone_cmt" ;

    /**
     * アクション名：ゾーンの表示：File
     */
	final static public String ZONE_FIL			= "zone_fil" ;

    /**
     * アクション名：ページの表示：Name
     */
	final static public String PAGE_NAM			= "page_nam" ;

    /**
     * アクション名：ページの表示：Title
     */
	final static public String PAGE_TTL			= "page_ttl" ;

    /**
     * アクション名：ページの表示：Comment
     */
	final static public String PAGE_CMT			= "page_cmt" ;

    /**
     * アクション名：ページの表示：File
     */
	final static public String PAGE_FIL			= "page_fil" ;

    /**
     * アクション名：URLの表示：Name
     */
	final static public String URL_NAM			= "url_nam" ;

    /**
     * アクション名：URLの表示：Comment
     */
	final static public String URL_CMT			= "url_cmt" ;

    /**
     * アクション名：アクセスログの表示
     */
	final static public String PAGE_ACCESS		= "page_access" ;
}
