root/www.mail/JavaPopWeb/src/jp/ac/nime/computer/websim/EasyBrowserDialog.java

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. EasyBrowserDialog
  2. actionPerformed
  3. EasyBrowserCanvas
  4. paint
  5. update

package jp.ac.nime.computer.websim;

import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;

/**
 * WWWシミュレータ 簡易ブラウザーダイアログ
 * 
 * @version 1.00 2003/03/31
 * @author Toshikazu Matsumoto Avion Corp.
 */
public class EasyBrowserDialog extends JDialog implements ActionListener
{
        private BrowserItem m_Item;             //呼出元ブラウザオブジェクトクラス
        private String  m_sHtml;                //表示HTML
        private JTextField      m_tfURL;        //URLテキストフィールド
        private JTextField      m_tfPass;       //パスワードテキストフィールド
        private JButton         m_btSend;       //送信ボタン
        
        /**
         * クラスコンストラクタ
         * @param parent 親フレームクラス
         * @param item 呼出元ブラウザオブジェクトクラス
         * @param sURL URL文字列
         * @param sTitle 表示するタイトル
         * @param sHtml 表示HTML
         * @param imSample 表示する画像
         * @param  bFrom フォーム表示かどうかのフラグ
         */
        public EasyBrowserDialog(Frame parent,BrowserItem item,String sURL,String sTitle,String sHtml,Image imSample,boolean bForm)
        {
                super(parent,"ブラウザ");
                this.m_Item=item;
                this.m_sHtml=sHtml;
                this.m_tfURL=new JTextField(sURL);
                this.m_tfURL.setEnabled(false);
                
                this.m_tfPass=new JTextField(20);
                this.m_btSend=new JButton("送信");
                this.m_btSend.addActionListener(this);
                                
                this.getContentPane().setLayout(new BorderLayout());
                this.getContentPane().add("North",this.m_tfURL);
                
                if(bForm==true)
                {
                        Panel pForm=new Panel();
                        pForm.setLayout(new FlowLayout(FlowLayout.CENTER));
                        pForm.add(new JLabel("Cookieのテストページ、パスワードを入力してください"));
                        pForm.add(this.m_tfPass);
                        pForm.add(this.m_btSend);
                        
                        this.getContentPane().add("Center",pForm);
                        this.getContentPane().setBackground(Color.white);
                }
                else
                {
                        this.getContentPane().add("Center",new EasyBrowserCanvas(sTitle,sHtml,imSample));
                }
                
                this.setSize(400,400);
                Toolkit tool=Toolkit.getDefaultToolkit();
                Dimension d=tool.getScreenSize();
                this.setLocation(new Point((d.width-this.getSize().width)/2,(d.height-this.getSize().height)/2));
                this.show();
        }
        /**
         * 各種ボタン押下時のアクション
         */
        public void actionPerformed(ActionEvent evt)
        {
                //送信ボタン押下時
                if(evt.getSource() == this.m_btSend)
                {
                        if(this.m_tfPass.getText().compareTo("")==0)
                        {
                                return;
                        }
                        this.m_Item.setCookie(this.m_tfPass.getText());
                        this.dispose();
                }
        }
}

/**
 * WWWシミュレータ 簡易ブラウザ描画クラス
 * 
 * @version 1.00 2003/03/31
 * @author Toshikazu Matsumoto Avion Corp.
 */
class EasyBrowserCanvas extends Canvas
{
        private String  m_sTitle;               //タイトル
        private String  m_sText;                //表示テキスト
        private Image   m_imSample=null;        //表示画像
        
        /**
         * クラスコンストラクタ
         * @param sTitle 表示するタイトル
         * @param sText 表示するテキスト
         * @param imSample 表示する画像
         */
        public EasyBrowserCanvas(String sTitle,String sText,Image imSample)
        {
                this.m_sText=sText;
                this.m_sTitle=sTitle;
                this.m_imSample=imSample;
        }
        /**
         * グラフィックの描画
         * @param g 描画グラフィック領域
         */
        public void paint(Graphics g)
        {
                int nHeight=0;
                g.setColor(Color.white);
                g.fillRect(0,0,this.getSize().width,this.getSize().height);
                g.setColor(Color.black);
                g.setFont(new Font("SansSerif",Font.BOLD,16));
                FontMetrics fontMet=g.getFontMetrics();
                g.drawString
                        (
                                this.m_sTitle,
                                (this.getSize().width-fontMet.stringWidth(this.m_sTitle))/2,
                                40
                        );
                if(this.m_imSample!=null)
                {
                        g.drawImage(this.m_imSample,(this.getSize().width-this.m_imSample.getWidth(this))/2,60,this);
                        nHeight+=this.m_imSample.getHeight(this);
                }
                g.setFont(new Font("SansSerif",Font.PLAIN,12));
                fontMet=g.getFontMetrics();
                g.drawString
                        (
                                this.m_sText,
                                (this.getSize().width-fontMet.stringWidth(this.m_sText))/2,
                                40+nHeight+20
                        );
                
        }
        /**
         * グラフィックの再描画
         * @param g 描画グラフィック領域
         */
        public void update(Graphics g)
        {
                this.paint(g);
        }
}

/* [<][>][^][v][top][bottom][index][help] */