root/www.mail/JavaPopWeb/src/jp/ac/nime/computer/mailsim/QueueStatusDialog.java

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

DEFINITIONS

This source file includes following definitions.
  1. QueueStatusDialog
  2. makeLayout
  3. actionPerformed

package jp.ac.nime.computer.mailsim;

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

/**
 * MAILシミュレータ キュー状態ダイアログクラス
 * 
 * @version 1.00 2003/03/31
 * @author Toshikazu Matsumoto Avion Corp.
 */
public class QueueStatusDialog extends JDialog implements ActionListener
{
        private Frame   m_Root;                 //親フレームクラス
        private Image   m_imMail;               //メール画像
        private boolean m_bStop=false;  //スレッドの停止フラグ
        
        private JButton m_btStop;               //停止ボタン
        private JButton m_btRing;               //リングバッファボタン
        
        private QueueStatusCanvas m_Canvas=null;        //メール状態表示描画クラス
        
        /**
         * クラスコンストラクタ
         * @param root 親フレーム
         * @param applet メインアプレットクラス
         * @param item 呼び出し元サーバーオブジェクトクラス
         * @param imMail メール画像
         */
        public QueueStatusDialog(Frame root,MailSim applet,MailServItem item,Image imMail)
        {
                super(root,"キュー");
                this.m_Root=root;
                this.m_imMail=imMail;
                this.m_btStop=new JButton("一時停止");
                this.m_btRing=new JButton("リングバッファ");
                this.m_Canvas=new QueueStatusCanvas(root,applet,item,imMail);
                
                this.m_btStop.addActionListener(this);
                this.m_btRing.addActionListener(this);
                
                this.setSize(400,300);
                this.makeLayout();
                Toolkit tool=Toolkit.getDefaultToolkit();
                Dimension d=tool.getScreenSize();
                this.setLocation(new Point((d.width-this.getSize().width)/2,(d.height-this.getSize().height)/2));
        }
        /**
         * レイアウトの構築
         */
        private void makeLayout()
        {
                Panel pButton=new Panel();
                pButton.setLayout(new FlowLayout(FlowLayout.CENTER));
                pButton.add(this.m_btStop);
                pButton.add(this.m_btRing);
                
                this.getContentPane().setLayout(new BorderLayout());
                this.getContentPane().add("Center",this.m_Canvas);
                this.getContentPane().add("South",pButton);
        }
        /**
         * 各ボタン押下時のアクション
         */
        public void actionPerformed(ActionEvent evt)
        {
                //一時停止ボタン押下時
                if(evt.getSource()==this.m_btStop)
                {
                        if(!this.m_bStop)
                        {
                                this.m_btStop.setText("再開");
                                this.m_Canvas.suspendThread();
                                this.m_bStop=true;
                        }
                        else
                        {
                                this.m_btStop.setText("一時停止");
                                this.m_Canvas.resumeThread();
                                this.m_bStop=false;
                        }
                }
                //リングバッファボタン押下時
                else if(evt.getSource()==this.m_btRing)
                {
                        new RingBufDialog(this.m_Root,this.m_imMail);
                }
        }
}

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