📄 bspubsubplugin.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 + -