/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- EasyBrowserDialog
- actionPerformed
- EasyBrowserCanvas
- paint
- 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);
}
}