⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bssimlinkbean.java

📁 一款即时通讯软件
💻 JAVA
字号:
package edu.ou.kmi.buddyspace.plugins.simlink.core;

/*
 * BSSimLinkBean.java
 *
 * Project: BuddySpace
 * (C) Copyright Knowledge Media Institute 2005
 *
 *
 * Created on 12 May 2005
 */

import java.util.*;
import org.jabber.jabberbeans.*;
import org.jabber.jabberbeans.util.*;
import edu.ou.kmi.buddyspace.gui.BSMainFrame;

/**
 * @author  Chris Denham, Knowledge Media Institute, Open University, United Kingdom
 */

public class BSSimLinkBean implements PacketListener {
    protected MessengerBean msgBean = null;
    protected final String name = "SimLink";
    protected Vector simLinkListeners = null;

    /**
     * Constructor
     */
    public BSSimLinkBean() {
        simLinkListeners = new Vector();
    }

    /**
     * Sets existing and connected <code>MessengerBean</code>.
     * Then this is registered as listener for message packets.
     */
    public void setMessengerBean(MessengerBean msgBean) {
        if (this.msgBean != null)
            this.msgBean.delPacketListener(this);
        this.msgBean = msgBean;
        if (msgBean != null)
            msgBean.addPacketListener(this);
    }

    /**
     * Returns currently used <code>MessengerBean</code>.
     */
    public MessengerBean getMessengerBean() {
        return msgBean;
    }

    /**
      * Handles <code>Message</code> packet.
      */
    protected void handleMessage(Message msg) {

        if ((new String("error")).equals(msg.getType()))
            return;

        JID jid = msg.getFromAddress();
        String originID = new String(jid.getUsername() + "@" + jid.getServer());

        if (!originID.equalsIgnoreCase(BSMainFrame.simLinkBotJID))return;


        String body = msg.getBody();
        fireSimLinkMessageReceived(body);
    }

    /**
     * Invoked when a message packet is received.
     */
    public void receivedPacket(PacketEvent event) {
        Packet packet = event.getPacket();
        if (packet instanceof Message) {
            Message msg = (Message) packet;
            handleMessage(msg);
        }
    }
    /**
     * Invoked when a message packet send failes.
     */
    public void sendFailed(PacketEvent event) {
    }

    /**
     * Invoked when a message packet is sent.
     */
    public void sentPacket(PacketEvent event) {
    }

    /**
     * Frees all object bindings to allow object destroy
     */
    protected void prepareToDestroy() {
        removeAllSimLinkListeners();
        if (msgBean != null) {
            msgBean.delPacketListener(this);
            msgBean = null;
        }
    }

    /**
     * Adds <code>SimLinkListener</code> to listeners notified when
     * simlink messages arrive.
     */
    public void addSimLinkListener(BSSimLinkListener listener) {
        if (listener == null) return;
        if (!simLinkListeners.contains(listener)) {
            simLinkListeners.addElement(listener);
        }
    }

    /**
     * Removes <code>BuddyFinderListener</code> from listeners notified when
     * buddyfinder results arrive.
     */
    public void removeSimLinkListener(BSSimLinkListener listener) {
        if (listener == null) return;
        simLinkListeners.removeElement(listener);
    }

    /**
     * Removes all listeners notified when simlink messages arrive.
     * This can be used before to free dependencies and allow dispose of
     * all objects.
     */
    public void removeAllSimLinkListeners() {
        simLinkListeners.clear();
    }

    /**
     * Notifies simlink listeners that a simlink message has arrived.
     */
    protected void fireSimLinkMessageReceived(String message) {
        for (Enumeration e = simLinkListeners.elements(); e.hasMoreElements(); ) {
            BSSimLinkListener listener = (BSSimLinkListener) e.nextElement();
            listener.simLinkMessageReceived(message);
        }
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -