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

📄 bspluginloader.java

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

/*
 * BSPluginLoader.java
 *
 * Project: BuddySpace
 * (C) Copyright Knowledge Media Institute 2002
 *
 *
 * Created on 25 September 2002, 15:36
 */

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

import org.jabber.jabberbeans.util.*;

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

import edu.ou.kmi.buddyspace.plugins.conference.*;
import edu.ou.kmi.buddyspace.plugins.groupchat.*;
import edu.ou.kmi.buddyspace.plugins.maps.*;
import edu.ou.kmi.buddyspace.plugins.webbrowser.*;
import edu.ou.kmi.buddyspace.plugins.browse.*;
import edu.ou.kmi.buddyspace.plugins.applauncher.*;
import edu.ou.kmi.buddyspace.plugins.disco.*;
import edu.ou.kmi.buddyspace.plugins.pubsub.*;
import edu.ou.kmi.buddyspace.plugins.plans.*;
import edu.ou.kmi.buddyspace.plugins.buddyfinder.*;
import edu.ou.kmi.buddyspace.plugins.simlink.*;

/**
 * <code>BSPluginLoader</code> provides access (loading) to plugins.
 *
 * @author  Jiri Komzak, Knowledge Media Institute, Open University, United Kingdom
 */
public class BSPluginLoader {
    private BSMainFrame mainFrame;
    private JTabbedPane tabbedPane;
    private BSCore core;
    private Vector plugins;

    /** Constructor */
    public BSPluginLoader(BSMainFrame mainFrame, JTabbedPane tabbedPane, BSCore core) {
        this.mainFrame = mainFrame;
        this.tabbedPane = tabbedPane;
        this.core = core;
        plugins = new Vector();
    }

    /** Handles change of connection to connected */
    public void connected() {
        Enumeration pe = plugins.elements();
        while (pe.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pe.nextElement();
            p.connected();
        }
    }

    /** Handles change of connection to disconnected */
    public void disconnected() {
        Enumeration pe = plugins.elements();
        while (pe.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pe.nextElement();
            p.disconnected();
        }
    }

    /** Loads conference plugin */
    public void loadConference() {
        BSConfPlugin confPlugin = new BSConfPlugin(mainFrame, tabbedPane, core);
        plugins.add(confPlugin);
    }

    /** Loads groupchat plugin */
    public void loadGroupchat() {
        BSGroupchatPlugin groupchatPlugin = new BSGroupchatPlugin(mainFrame, tabbedPane, core);
        plugins.add(groupchatPlugin);
    }

    /** Loads maps plugin */
    public void loadMaps() {
        BSMapsPlugin mapsPlugin = new BSMapsPlugin(mainFrame, tabbedPane, core);
        plugins.add(mapsPlugin);
    }

    /** Loads web browser plugin */
    public void loadWebBrowser() {
        BSWebBrowserPlugin webPlugin = new BSWebBrowserPlugin(mainFrame, tabbedPane, core);
        plugins.add(webPlugin);
    }

    /** Loads browse plugin */
    public void loadBrowse() {
        BSBrowsePlugin browsePlugin = new BSBrowsePlugin(mainFrame, tabbedPane, core);
        plugins.add(browsePlugin);
    }

    /** Loads application launcher plugin */
    public void loadAppLauncher() {
        BSAppLauncherPlugin appLauncherPlugin = new BSAppLauncherPlugin(mainFrame, tabbedPane, core);
        plugins.add(appLauncherPlugin);
    }

    /** Loads disco plugin */
    public void loadDisco() {
        BSDiscoPlugin discoPlugin = new BSDiscoPlugin(mainFrame, tabbedPane, core);
        plugins.add(discoPlugin);
    }

    /** Loads pubsub plugin */
    public void loadPubsub() {
        BSPubsubPlugin pubsubPlugin = new BSPubsubPlugin(mainFrame, tabbedPane, core);
        plugins.add(pubsubPlugin);
    }

    /** Returns pubsub plugin */
    public BSPubsubPlugin getPubsubPlugin() {
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            if (p instanceof BSPubsubPlugin)
                return (BSPubsubPlugin) p;
        }
        return null;
    }

    /** Loads plans plugin */
    public void loadPlans() {
        BSPlansPlugin plansPlugin = new BSPlansPlugin(mainFrame, tabbedPane, core);
        plugins.add(plansPlugin);
    }

    /** Loads buddyfinder plugin */
    public void loadBuddyFinder() {
        BSPlugin buddyFinderPlugin = new BSBuddyFinderPlugin(mainFrame, tabbedPane, core);
        plugins.add(buddyFinderPlugin);
    }

    /** Loads simlink plugin */
    public void loadSimLink() {
        BSPlugin simLinkPlugin = new BSSimLinkPlugin(mainFrame, tabbedPane, core);
        plugins.add(simLinkPlugin);
    }

    /** Performs action within given namespace for given JID */
    public boolean performAction(JID jid, String namespace) {
        boolean result = false;
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            result = result || p.performAction(jid, namespace);
        }

        return result;
    }


    /** Gets supported namespaces and their human-readable names */
    public void getSupportedNamespaces(Vector namespaces, Vector names) {
        namespaces.clear();
        names.clear();

        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            p.getSupportedNamespaces(namespaces, names);
        }
    }


    /** Gets tabs for preferences and their names */
    public void getPrefTabs(Vector components, Vector names) {
        components.clear();
        names.clear();

        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            p.getPreferencesTab(components, names);
        }
    }

    /** Stores preferences */
    public boolean storePrefs() {
        boolean validated = true;
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            validated = validated && p.storePreferences();
        }
        return validated;
    }


    /** Updates LAF of all plug-ins */
    public void updateLAF() {
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            p.updateLAF();
        }
    }


    /** Returns if there are some new messages (alerts) */
    public boolean isNewMessage() {
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            if (p.isNewMessage()) return true;
        }
        return false;
    }


    /** Starts corba server for plugin. Returns if successful. */
    public boolean startCorbaServer(String namespace) {
        boolean result = true;
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            result = result && p.startCorbaServer(namespace);
        }
        return result;
    }


    /** Shuts down corba server for plugin. */
    public void shutdownCorbaServer(String namespace) {
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            p.shutdownCorbaServer(namespace);
        }
    }


    /** Calls open windows for all plugins. */
    public void openTheWindows(Vector openWindows, boolean connected) {
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            p.openTheWindows(openWindows, connected);
        }
    }


    /** Calls add open windows for all plugins.
     * The plugins add their open windows for opening when starting next time. */
    public void addOpenWindows(Vector openWindows, boolean connected) {
        Enumeration pluginEnum = plugins.elements();
        while (pluginEnum.hasMoreElements()) {
            BSPlugin p = (BSPlugin) pluginEnum.nextElement();
            p.addOpenWindows(openWindows, connected);
        }
    }

}

⌨️ 快捷键说明

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