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

📄 bsbuddyfinderplugin.java

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

/*
 * BSBuddyFinderPlugin.java
 *
 * Project: BuddySpace
 * (C) Copyright Knowledge Media Institute 2002
 *
 *
 * Created on 25 January 2005
 */

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

import org.jabber.jabberbeans.*;
import org.jabber.jabberbeans.util.*;
import org.jabber.jabberbeans.Extension.*;

import edu.ou.kmi.buddyspace.core.*;
import edu.ou.kmi.buddyspace.gui.*;

import edu.ou.kmi.buddyspace.plugins.*;
import edu.ou.kmi.buddyspace.plugins.buddyfinder.core.*;
import edu.ou.kmi.buddyspace.plugins.buddyfinder.gui.*;

/**
 * <code>BSBuddyFinderPlugin</code> is the main class of the BuddyFinder
 * plugin to BuddySpace.
 * It provides methods for plugin loading and user interaction.
 *
 * @author  Chris Denham, Knowledge Media Institute, Open University, United Kingdom
 */
public class BSBuddyFinderPlugin extends BSPlugin implements ActionListener {

    private BSBuddyFinderBean buddyFinderBean;
    private BSBuddyFinderWinManager buddyFinderWinMan;
    private JMenuItem buddyFinderMenuItem;

    /** Constructor */
    public BSBuddyFinderPlugin(BSMainFrame mainFrame, JTabbedPane tabbedPane, BSCore core) {
        super(mainFrame, tabbedPane, core);
    }

    /** Inits the plugin core */
    protected void initCore() {
    }

    /** Inits plugin GUI */
    protected void initGUI() {
        buddyFinderBean = BSBuddyFinderBean.getInstance();
        buddyFinderWinMan = new BSBuddyFinderWinManager(mainFrame, tabbedPane);
    }

    /** Adds GUI controls into main window */
    protected void addGUIControls() {
        buddyFinderMenuItem = new JMenuItem("BuddyFinder");
        buddyFinderMenuItem.addActionListener(this);
        buddyFinderMenuItem.setEnabled(false);
        mainFrame.addPluginJabberMenuItem(buddyFinderMenuItem);
    }

    /** Connects BuddySpace beans */
    protected void connectBeans() {
        if (core != null) {
            buddyFinderWinMan.setPresenceBean(core.getPresenceBean());
            buddyFinderWinMan.setRosterBean(core.getRosterBean());
            buddyFinderWinMan.setBuddyFinderBean(buddyFinderBean);
            buddyFinderBean.setRosterBean(core.getRosterBean());
            buddyFinderBean.setPresenceBean(core.getPresenceBean());
            BSMessengerBean msgBean = core.getMessengerBean();
            if (msgBean != null)
                 buddyFinderBean.setMessengerBean(msgBean.getMessengerBean());
        }
    }

    /** Handles connection change to connected */
    public void connected() {
        super.connected();

        buddyFinderMenuItem.setEnabled(true);

        BSMessengerBean msgBean = core.getMessengerBean();
         if (msgBean != null)
             buddyFinderBean.setMessengerBean(msgBean.getMessengerBean());
    }

    /** Handles connection change to disconnected */
    public void disconnected() {
        buddyFinderWinMan.closeAllWindows();
        buddyFinderMenuItem.setEnabled(false);
        buddyFinderMenuItem.removeAll();
    }

    /** Handles action from GUI controls in main window */
    public void actionPerformed(ActionEvent evt) {
        if (evt.getSource() == buddyFinderMenuItem)
        {
            buddyFinderWinMan.openNewWindow("BuddyFinder");
        }
    }

    /**
     * If namespace is <code>jabber:iq:buddyfinder</code>
     * browses given JID and returns true otherwise returns false.
     */
    public boolean performAction(JID jid, String namespace) {
        if (namespace != null && namespace.equals("jabber:iq:buddyfinder")) {
            if (!mainFrame.isConnected()) {
                JOptionPane.showMessageDialog(mainFrame,
                                      "BuddyFinder error - not connected.",
                                      "Error",
                                      JOptionPane.ERROR_MESSAGE);
                return false;
            }
            buddyFinderWinMan.openNewWindow((jid != null)? jid.toString() : null);
            return true;
        }
        else
            return false;
    }

    /** Adds supported namespaces and their names */
    public void getSupportedNamespaces(Vector namespaces, Vector names) {
        namespaces.addElement(new String("jabber:iq:buddyfinder"));
        names.addElement(new String("Jabber BuddyFinder"));
    }

    /** Loads preferences. Empty implementation. */
    protected void loadPreferences() {}

    /** Returns components and their names for display in preferences dialog.
     *  Empty implementation - returns null.
     */
    public void getPreferencesTab(Vector components, Vector names) {}

    /** Stores preferences from preferences tab.
     *  Empty implementation.
     */
    public boolean storePreferences() {
        return true;
    }

    /** Updates LAF of all plug-ins  */
    public void updateLAF() {
        buddyFinderWinMan.updateLAF();
    }

}

⌨️ 快捷键说明

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