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

📄 bspubsubplugin.java

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

/*
 * BSPubsubPlugin.java
 *
 * Project: BuddySpace
 * (C) Copyright Knowledge Media Institute 2003
 *
 *
 * Created on 3 October 2003, 11:20
 */

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 org.xml.sax.helpers.AttributeListImpl;

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

import edu.ou.kmi.buddyspace.plugins.*;
import edu.ou.kmi.buddyspace.plugins.pubsub.core.*;
import edu.ou.kmi.buddyspace.plugins.pubsub.xml.*;
import edu.ou.kmi.buddyspace.plugins.pubsub.gui.*;

/**
 * <code>BSPubsubPlugin</code> is main class of PubSub plugin to BuddySpace.
 * It provides methods for plugin loading and user interaction.
 *
 * @author  Jiri Komzak, Knowledge Media Institute, Open University, United Kingdom
 */
public class BSPubsubPlugin extends BSPlugin
                            implements ActionListener {
    
    private BSPubsubBean pubsubBean;
    private BSPubsubWinManager pubsubWinMan;
    private JMenuItem pubsubMenu;
    
    private int testOpsCount = 0;
    private PacketID servedID = new PacketID(null);
    private String instantNodeName = null;
    
    /** Constructor */
    public BSPubsubPlugin(BSMainFrame mainFrame, JTabbedPane tabbedPane, BSCore core) {
        super(mainFrame, tabbedPane, core);
    }
    
    /** Inits the plugin core */
    protected void initCore() {
        pubsubBean = new BSPubsubBean();
    }
    
    /** Inits plugin GUI */
    protected void initGUI() {
        pubsubWinMan = new BSPubsubWinManager(mainFrame, tabbedPane);
    }
    
    /** Adds GUI controls into main window */
    protected void addGUIControls() {
        pubsubMenu = new JMenuItem("Publish/subscribe");
        pubsubMenu.addActionListener(this);
        pubsubMenu.setEnabled(false);
        //mainFrame.addPluginJabberMenuItem(pubsubMenu);
    }
    
    /** Connects BuddySpace beans */
    protected void connectBeans() {
        if (core != null) {
            pubsubWinMan.setPubsubBean(pubsubBean);
        }
    }
    
    /** Handles connection change to connected */
    public void connected() {
        super.connected();
        
        //initMenu();
        pubsubMenu.setEnabled(true);
        
        BSConnectionBean connBean = core.getConnectionBean();
        if (connBean != null)
            pubsubBean.setConnection(connBean.getConnection());
    }
    
    /** Handles connection change to disconnected */
    public void disconnected() {
        pubsubWinMan.closeAllWindows();
        pubsubBean.disconnected();
        pubsubMenu.setEnabled(false);
    }
    
    /** Handles action from GUI controls in main window */
    public void actionPerformed(ActionEvent evt) {
        if (evt.getSource() == pubsubMenu) {
            pubsubWinMan.openNewWindow(null, null);
        }
    }
    
    /** 
     * If namespace is <code>http://jabber.org/protocol/pubsub or #event</code>
     * pubsub's given JID and returns true otherwise returns false.
     */
    public boolean performAction(JID jid, String namespace) {
        if (namespace != null && namespace.equals("http://jabber.org/protocol/pubsub")) {
            /*if (!mainFrame.isConnected()) {
                JOptionPane.showMessageDialog(mainFrame, 
                                      "Cannot browse - not connected.",
                                      "Error", 
                                      JOptionPane.ERROR_MESSAGE);
                return false;
            }
            browseWinMan.openNewWindow((jid != null)? jid.toString() : null);*/
            return true;
        }
        else if (namespace != null && namespace.equals("http://jabber.org/protocol/pubsub#event")) {
            return true;
        }
        else
            return false;
    }
    
    /** Adds supported namespaces and their names */
    public void getSupportedNamespaces(Vector namespaces, Vector names) {
        namespaces.addElement(new String("http://jabber.org/protocol/pubsub"));
        names.addElement(new String("Jabber pubsub"));
        namespaces.addElement(new String("http://jabber.org/protocol/pubsub#event"));
        names.addElement(new String("Jabber pubsub event"));
        namespaces.addElement(new String("http://jabber.org/protocol/pubsub#owner"));
        names.addElement(new String("Jabber pubsub owner actions"));
    }
    
    
    /** 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() {
        pubsubWinMan.updateLAF();
    }
    
    
    /** Returns the pubsub bean */
    public BSPubsubBean getPubsubBean() {
        return pubsubBean;
    }
    
}

⌨️ 快捷键说明

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