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

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

DEFINITIONS

This source file includes following definitions.
  1. PcItem
  2. getAccount
  3. onMousePressed
  4. postMailAction
  5. postPacketAction
  6. actionPerformed
  7. postEventAction

package jp.ac.nime.computer.mailsim;

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

import jp.ac.nime.computer.*;
import jp.ac.nime.computer.websim.HTTPPacketData;

/**
 * MAILシミュレータ 各PCオブジェクトクラス
 * 
 * @version 1.00 2003/03/31
 * @author Toshikazu Matsumoto Avion Corp.
 */
public class PcItem extends MachineItem implements ActionListener
{
        private MailSim         m_Applet        =null;
        private JPopupMenu m_Pop                =null;
        private JMenuItem m_MenuRec             =null;
        private JMenuItem m_MenuSend    =null;
        private SendMailDialog m_Send   =null;
        private String m_sAccount               =null;
        /**
         * クラスコンストラクタ
         * @param parent メインアプレットクラス
         * @param sIP IPアドレス文字列
         * @param sAccount このPCのメールアカウント
         * @param imSrc PC画像
         * @param nX 表示するX座標
         * @param nY 表示するY座標
         */
        public PcItem(MailSim parent,String sIP,String sAccount,Image imSrc,int nX,int nY)
        {
                super((Component)parent,"PC("+sAccount+")",sIP,imSrc,nX,nY);
                
                this.m_Applet=parent;
                this.m_sAccount=sAccount;
                                        
                this.m_MenuRec  =new JMenuItem("受信");
                this.m_MenuSend =new JMenuItem("送信");
                
                this.m_MenuRec.addActionListener(this);
                this.m_MenuSend.addActionListener(this);
                
                this.m_Pop=new JPopupMenu();
                this.m_Pop.add(this.m_MenuRec);
                this.m_Pop.add(this.m_MenuSend);
        }
        /**
         * アカウント(メールアドレス)を取得する
         * @return メールアドレス
         */
        public String getAccount()
        {
                return this.m_sAccount;
        }
        /**
         * マウス押下時のアクション
         * @return 押下時の結果
         */
        public boolean onMousePressed()
        {
                this.m_Pop.show(super.getParent(),super.m_nPosX+super.getImage().getWidth(super.getParent()),super.m_nPosY+super.getImage().getHeight(super.getParent()));
                return true;
        }
        /**
         * メールオブジェクトが到着した際のアクション
         * @param objMail 到着したメールオブジェクト
         */
        public void postMailAction(MailDataObject objMail)
        {
                SendMailDialog rec=new SendMailDialog(super.getRootFrame(),this.m_Applet,this,SendMailDialog.DIALOG_MODE_VIEW);
                rec.setData(objMail);
                objMail.stopThread();
                rec.show();
        }
        /**
         * HTTPパケットが到達した際のアクション
         * @param objPack 到達したHTTPパケット
         */
        public void postPacketAction(HTTPPacketData objPack)
        {
        }
        /**
         * ポップアップメニュー選択時のアクション
         * @param evt ActionEvent
         */
        public void actionPerformed(ActionEvent evt)
        {
                JMenuItem source=(JMenuItem)evt.getSource();
                if(source == this.m_MenuRec)
                {
                        MailDataObject objMail=new MailDataObject((Component)m_Applet,this.m_Applet.getImageArray(4),"");
                        objMail.setMoveObject(this,this.getTarget(0));
                        objMail.setStatus(MailDataObject.MAIL_STATUS_REACH_PC);
                        this.m_Applet.addPacket(objMail);
                        objMail.start();
                }
                else if(source == this.m_MenuSend)
                {
                        if(this.m_Send!=null)
                        {
                                this.m_Send.dispose();
                                this.m_Send=null;
                        }
                        this.m_Send=new SendMailDialog(super.getRootFrame(),this.m_Applet,this,SendMailDialog.DIALOG_MODE_SEND);
                        this.m_Send.show();
                }
        }
        /**
         * 外部からイベントを通知された場合のアクション
         * @param nEvent イベントの種類
         */
        public void postEventAction(int nEvent)
        {
                
        }
}

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