/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- PcItem
- getAccount
- onMousePressed
- postMailAction
- postPacketAction
- actionPerformed
- 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)
{
}
}