📄 bsstatuswin.java
字号:
package edu.ou.kmi.buddyspace.gui;
/*
* BSStatusWin.java
*
* Project: BuddySpace
* (C) Copyright Knowledge Media Institute 2002
*
*
* Created on 26 November 2002, 17:56
*/
/*
import org.jabber.jabberbeans.util.*;
*/
import java.util.*;
import org.jabber.jabberbeans.*;
import org.jabber.jabberbeans.Extension.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.border.*;
import edu.ou.kmi.buddyspace.core.*;
import edu.ou.kmi.buddyspace.utils.*;
/**
* Window for displaying status information.
* Uses <code>BSMsgWinManager</code> as the manager.
*
* @author Jiri Komzak, Knowledge Media Institute, Open University, United Kingdom
*/
public class BSStatusWin extends DockableWindow
implements ActionListener, BSLogListener {
//RosterListener {
BSCore core = null;
//BSRosterBean rosterBean = null;
JPanel mainPanel;
BSAutoScrollTextPane statusTextPane;
BSAutoScrollTextPane msgsTextPane;
//BSAutoScrollTextPane rosterTextPane;
JButton closeButton;
JButton dockButton;
/** Constructor */
BSStatusWin(Frame parent, BSMsgWinManager winMan, String ID, String title,
Image icon, BSCore core, boolean docked) {
super(ID, title, icon, docked, winMan);
this.core = core;
if (core != null) {
core.addLogListener(this);
/*rosterBean = core.getRosterBean();
if (rosterBean != null)
rosterBean.addRosterListener(this);*/
}
initComponents();
}
/** Inits components */
private void initComponents() {
mainPanel = new JPanel(new BorderLayout());
statusTextPane = new BSAutoScrollTextPane(true);
JScrollPane statusScrollPane = new JScrollPane(statusTextPane);
//statusScrollPane.setPreferredSize(new Dimension(10, 200));
statusScrollPane.setBorder(new TitledBorder("Events & Connection"));
msgsTextPane = new BSAutoScrollTextPane(true);
JScrollPane msgsScrollPane = new JScrollPane(msgsTextPane);
msgsScrollPane.setBorder(new TitledBorder("Messages"));
//msgsScrollPane.setPreferredSize(new Dimension(100, 10));
/*rosterTextPane = new BSAutoScrollTextPane(true);
JScrollPane rosterScrollPane = new JScrollPane(rosterTextPane);
rosterScrollPane.setBorder(new TitledBorder("Roster"));
JSplitPane bottomSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,
msgsScrollPane, rosterScrollPane);
bottomSplitPane.setDividerLocation(100);
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
statusScrollPane, bottomSplitPane);*/
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
statusScrollPane, msgsScrollPane);
mainSplitPane.setDividerLocation(200);
JPanel buttonsPanel = new JPanel();
closeButton = new JButton("Close");
closeButton.addActionListener(this);
buttonsPanel.add(closeButton);
JPanel checkBoxesPanel = new JPanel();
Icon icon = new ImageIcon(ClassLoader.getSystemResource(!docked?
"images/dock.gif" : "images/float.gif"));
dockButton = new JButton(icon);
dockButton.setToolTipText(docked? "Float" : "Dock");
dockButton.addActionListener(this);
checkBoxesPanel.add(dockButton);
if (!OSVersion.isJava1Point4orHigher())
dockButton.setEnabled(false);
mainPanel.add(mainSplitPane, BorderLayout.CENTER);
mainPanel.add(checkBoxesPanel, BorderLayout.NORTH);
mainPanel.add(buttonsPanel, BorderLayout.SOUTH);
setLayout(new BorderLayout());
add(mainPanel, BorderLayout.CENTER);
}
/** Handles actions from buttons */
public void actionPerformed(ActionEvent evt) {
if (evt.getSource() == closeButton) {
close();
}
else if (evt.getSource() == dockButton) {
if (winMan != null) {
winMan.setWindowDocked(this, !docked, true);
Icon icon = new ImageIcon(ClassLoader.getSystemResource(!docked?
"images/dock.gif" : "images/float.gif"));
dockButton.setIcon(icon);
dockButton.setToolTipText(docked? "Float" : "Dock");
winMan.selectWindow(this);
}
}
}
public void close() {
if (winMan != null)
((BSMsgWinManager)winMan).showStatusWindow(false, false, null, false);
}
public void cancelListening() {
if (core != null)
core.removeLogListener(this);
/*if (rosterBean != null)
rosterBean.removeRosterListener(this);*/
}
/** Called to log status change or event */
public void logStatus(String source, String message) {
statusTextPane.append("[" + source + "] ",
BSAutoScrollTextPane.BUDDY_NICK_STYLE);
statusTextPane.append(message + "\n",
BSAutoScrollTextPane.REGULAR_STYLE);
}
/** Called to log received message */
public void logMessage(String from, String subject, String body) {
msgsTextPane.append("<" + from + "> ",
BSAutoScrollTextPane.MY_NICK_STYLE);
msgsTextPane.append("[" + subject + "] ",
BSAutoScrollTextPane.BUDDY_NICK_STYLE);
msgsTextPane.append(body + "\n",
BSAutoScrollTextPane.REGULAR_STYLE);
}
/** <code>RosterListener</code> function.
* Refreshes roster in status window
*/
/*public void changedRoster(Roster roster) {
showRoster(roster.items());
}*/
/** <code>RosterListener</code> function.
* Refreshes roster in status window
*/
/*public void replacedRoster(Roster roster) {
showRoster(roster.items());
}*/
/**
* Displayes roster items in status window.
*/
/*public void showRoster(Enumeration items) {
rosterTextPane.clear();
//Enumeration items = rosterBean.items();
while (items != null && items.hasMoreElements()) {
RosterItem ri = (RosterItem) items.nextElement();
Enumeration groups = ri.enumerateGroups();
// if no group
if (groups == null || !groups.hasMoreElements()) {
rosterTextPane.append("<top level> ", BSAutoScrollTextPane.MY_NICK_STYLE);
rosterTextPane.append(rosterBean.getFriendlyName(ri.getJID()) +
" (" + ri.getJID().toString() + ")\n",
BSAutoScrollTextPane.REGULAR_STYLE);
}
// for all groups of roster element
while (groups != null && groups.hasMoreElements()) {
String gr = (String) groups.nextElement();
rosterTextPane.append("<" + gr + "> ", BSAutoScrollTextPane.MY_NICK_STYLE);
rosterTextPane.append(rosterBean.getFriendlyName(ri.getJID()) +
" (" + ri.getJID().toString() + ")\n",
BSAutoScrollTextPane.REGULAR_STYLE);
}
}
}*/
/** Called to log received packet */
public void logReceivedXML(String message) { }
/** Called to log packet sent failure */
public void logSendFailedXML(String message) { }
/** Called to log sent packet */
public void logSentXML(String message) { }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -