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

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

DEFINITIONS

This source file includes following definitions.
  1. MachineItem
  2. getImage
  3. getLabel
  4. getIP
  5. getHost
  6. setHost
  7. getParent
  8. getRootFrame
  9. getParentFrame
  10. addTarget
  11. getTarget
  12. getTargetSize
  13. onMousePressed
  14. postMailAction
  15. postPacketAction
  16. postEventAction

package jp.ac.nime.computer;

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

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

/**
 * 各マシンオブジェクト基幹クラス
 * 
 * @version 1.00 2003/03/31
 * @author Toshikazu Matsumoto Avion Corp.
 */
public abstract class MachineItem
{
        public final static int ON_TEXTAREA_DIALOG_CLOSED = 1;  
        public final static int ON_BROWSER_DIALOG_CLOSED = 2;
        
        private Frame           m_Root=null;    //親フレームクラス
        private Component       m_Parent=null;  //親コンポーネントクラス
        private Image           m_imSrc=null;   //表示画像
        private String          m_sLabel;               //表示テキスト
        private String          m_sIP;                  //IPアドレス
        private String          m_sHost;                //ホスト名
        public  int                     m_nPosX=0;              //表示X座標
        public  int                     m_nPosY=0;              //表示Y座標
        private Vector          m_vcTarget=null;        //接続マシンオブジェクト列
                
        /**
         * クラスコンストラクタ
         * @param parent 親コンポーネントクラス
         * @param sLabel 表示テキストラベル
         * @param sIP IPアドレス
         * @param imSrc 表示画像
         * @param nX 表示X座標
         * @param nY 表示Y座標
         */
        public MachineItem(Component parent,String sLabel,String sIP,Image imSrc,int nX,int nY)
        {
                this.m_Parent=parent;
                this.m_imSrc=imSrc;
                this.m_sLabel=sLabel;
                this.m_sIP=sIP;
                this.m_nPosX=nX;
                this.m_nPosY=nY;
                this.m_Root=this.getParentFrame(this.m_Parent);
                this.m_vcTarget=new Vector();
        }
        /**
         * 画像の取得
         * @return 取得した画像
         */
        public Image getImage()
        {
                return this.m_imSrc;
        }
        /**
         * 表示テキストラベルの取得
         * @return 取得したテキストラベル
         */
        public String getLabel()
        {
                return this.m_sLabel;
        }
        /**
         * IPアドレスの取得
         * @return 取得したIPアドレス
         */
        public String getIP()
        {
                return this.m_sIP;
        }
        /**
         * ホスト名の取得
         * @return 取得したホスト名
         */
        public String getHost()
        {
                return this.m_sHost;
        }
        /**
         * ホスト名のセット
         * @param s セットするホスト名
         */
        public void setHost(String s)
        {
                this.m_sHost=s;
        }
        /**
         * 親コンポーネントの取得
         * @return 取得したコンポーネントクラス
         */
        public Component getParent()
        {
                return this.m_Parent;
        }
        /**
         * 親フレームクラスの取得
         * @return 取得したフレームクラス
         */
        public Frame getRootFrame()
        {
                return this.m_Root;
        }
        /**
         * 親フレームの抽出
         * @param comp 抽出する元コンポーネントクラス
         */
        private Frame getParentFrame(Component comp)
        {
                Component current=(Component)comp;
                while(current!=null)
                {
                        if(current instanceof Frame) return (Frame)current;
                        current=current.getParent();
                }
                return null;
        }
        /**
         * 接続マシンの追加
         * @param item 追加するマシンオブジェクト
         */
        public void addTarget(MachineItem item)
        {
                this.m_vcTarget.addElement(item);
        }
        /**
         * 接続されているマシンを取得
         * @param i マシンの番号
         * @return 取得したマシンオブジェクトクラス
         */
        public MachineItem getTarget(int i)
        {
                return (MachineItem)this.m_vcTarget.elementAt(i);
        }
        /**
         * 接続されているマシンの数を取得
         * @return 接続されているマシンの数
         */
        public int getTargetSize()
        {
                return this.m_vcTarget.size();
        }
        
        public abstract boolean onMousePressed();
        public abstract void postMailAction(MailDataObject obj);
        public abstract void postPacketAction(HTTPPacketData obj);
        public abstract void postEventAction(int nEvent);
}

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