📄 bsopenwindows.java
字号:
package edu.ou.kmi.buddyspace.gui;
/*
* BSOpenWindows.java
*
* Project: BuddySpace
* (C) Copyright Knowledge Media Institute 2003
*
*
* Created on 4 November 2003, 13:13
*/
import javax.swing.*;
import java.awt.event.*;
import java.beans.*; // Property change stuff
import java.util.*;
import java.awt.*;
/*
import org.jabber.jabberbeans.*;
import org.jabber.jabberbeans.Extension.*;
*/
import org.jabber.jabberbeans.util.*;
import edu.ou.kmi.buddyspace.core.*;
//import edu.ou.kmi.buddyspace.utils.*;
/**
* Stores open windows on exit and restores them when starting.
*
* @author Jiri Komzak, Knowledge Media Institute, Open University, United Kingdom
*/
public class BSOpenWindows implements ActionListener {
public static final String PREF_NAME_CONNECTED_PREFIX = "con-";
public static final String PREF_NAME_DISCONNECTED_PREFIX = "discon-";
public static final String PREF_NAME_OPEN_WINDOW_NUM = "openWindowNum";
public static final String PREF_NAME_OPEN_WINDOW_JID = "openWindowJid";
public static final String PREF_NAME_OPEN_WINDOW_NAMESPACE = "openWindowNamespace";
public static final String PREF_NAME_OPEN_WINDOW_WIDTH = "openWindowWidth";
public static final String PREF_NAME_OPEN_WINDOW_HEIGHT = "openWindowHeight";
public static final String PREF_NAME_OPEN_WINDOW_X = "openWindowX";
public static final String PREF_NAME_OPEN_WINDOW_Y = "openWindowY";
public static final String PREF_NAME_OPEN_WINDOW_DOCKED = "openWindowDocked";
private BSMainFrame mainFrame;
private Vector conOpenWindows = null;
private Vector disconOpenWindows = null;
//private JMenuItem deleteMenuItem;
/** Constructor */
BSOpenWindows(BSMainFrame mainFrame) {
this.mainFrame = mainFrame;
loadOpenWindows();
}
/** Loads open windows from properties file */
public void loadOpenWindows() {
conOpenWindows = new Vector();
disconOpenWindows = new Vector();
if (mainFrame == null) return;
Properties props = new Properties();
if (!mainFrame.loadPreferences(props))
return;
for (int connected = 0; connected <= 1; connected++) {
String prefix = ((connected == 0)?
PREF_NAME_DISCONNECTED_PREFIX : PREF_NAME_CONNECTED_PREFIX);
int openWindowsNum = Integer.parseInt(props.getProperty(prefix + PREF_NAME_OPEN_WINDOW_NUM, "0"));
for (int i=0; i < openWindowsNum; i++) {
String prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_NAMESPACE + Integer.toString(i+1));
String namespace = props.getProperty(prefName, "");
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_JID + Integer.toString(i+1));
JID jid = JID.fromString(props.getProperty(prefName, ""));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_WIDTH + Integer.toString(i+1));
int width = Integer.parseInt(props.getProperty(prefName, "0"));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_HEIGHT + Integer.toString(i+1));
int height = Integer.parseInt(props.getProperty(prefName, "0"));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_X + Integer.toString(i+1));
int x = Integer.parseInt(props.getProperty(prefName, "0"));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_Y + Integer.toString(i+1));
int y = Integer.parseInt(props.getProperty(prefName, "0"));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_DOCKED + Integer.toString(i+1));
boolean docked = "true".equals(props.getProperty(prefName, "true"));
BSOpenWindow ow = new BSOpenWindow(jid, namespace, x, y, width, height, docked);
if (connected == 0)
disconOpenWindows.addElement(ow);
else
conOpenWindows.addElement(ow);
}
}
}
/** Saves open windows into properties file */
protected boolean collectOpenWindows(boolean connected) {
if (mainFrame == null) return false;
if (connected) {
conOpenWindows = new Vector();
mainFrame.addOpenWindows(conOpenWindows, connected);
}
else {
disconOpenWindows = new Vector();
mainFrame.addOpenWindows(disconOpenWindows, connected);
}
return true;
}
/** Returns the open windows */
public Vector getWindows(boolean connected) {
return connected? conOpenWindows : disconOpenWindows;
}
/** Saves open windows into properties file */
public boolean saveOpenWindows(boolean connected) {
if (mainFrame == null) return false;
collectOpenWindows(connected);
Properties props = new Properties();
if (!mainFrame.loadPreferences(props))
return false;
String prefix;
Vector tmpOpenWindows;
if (connected) {
prefix = PREF_NAME_CONNECTED_PREFIX;
tmpOpenWindows = conOpenWindows;
}
else {
prefix = PREF_NAME_DISCONNECTED_PREFIX;
tmpOpenWindows = disconOpenWindows;
}
int openWindowsNum = (tmpOpenWindows != null)? tmpOpenWindows.size() : 0;
props.setProperty(prefix + PREF_NAME_OPEN_WINDOW_NUM, Integer.toString(openWindowsNum));
for (int i=0; i < openWindowsNum; i++) {
BSOpenWindow ow = (BSOpenWindow) tmpOpenWindows.elementAt(i);
String prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_NAMESPACE + Integer.toString(i+1));
if (ow.namespace != null)
props.setProperty(prefName, ow.namespace);
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_JID + Integer.toString(i+1));
if (ow.jid != null)
props.setProperty(prefName, ow.jid.toString());
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_WIDTH + Integer.toString(i+1));
props.setProperty(prefName, Integer.toString(ow.width));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_HEIGHT + Integer.toString(i+1));
props.setProperty(prefName, Integer.toString(ow.height));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_X + Integer.toString(i+1));
props.setProperty(prefName, Integer.toString(ow.x));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_Y + Integer.toString(i+1));
props.setProperty(prefName, Integer.toString(ow.y));
prefName = new String (prefix + PREF_NAME_OPEN_WINDOW_DOCKED + Integer.toString(i+1));
props.setProperty(prefName, (ow.docked? "true" : "false"));
}
return mainFrame.saveProperties(props);
}
/** Adds bookmark and saves it into preferences file */
/*public boolean addBookmark(JID jid, String namespace, String name) {
BSBookmark bm = new BSBookmark(jid, namespace, name);
if (!bookmarks.contains(bm)) {
bookmarks.addElement(bm);
return saveBookmarks();
}
return true;
}*/
/** Removes bookmark and saves */
/*public boolean removeBookmark(JID jid, String namespace) {
BSBookmark bm = new BSBookmark(jid, namespace, null);
if (bookmarks.contains(bm)) {
bookmarks.remove(bm);
return saveBookmarks();
}
return false;
}*/
/** Adds bookmarks int given menu */
/*public void addBookmarkMenuItems(JMenu menu) {
addMenuItem = new JMenuItem("Add bookmark...");
addMenuItem.addActionListener(this);
menu.add(addMenuItem);
deleteMenuItem = new JMenuItem("Delete bookmark...");
deleteMenuItem.addActionListener(this);
menu.add(deleteMenuItem);
menu.add(new JSeparator());
if (bookmarks == null) return;
/*Hashtable subMenus = new Hashtable();
for (int i=0; i < bookmarks.size(); i++) {
BSBookmark bm = (BSBookmark) bookmarks.elementAt(i);
String friendlyNamespace = (bm.namespace!=null)? bm.namespace : "Others";
JMenu subMenu = (JMenu) subMenus.get(friendlyNamespace);
if (subMenu == null) {
subMenu = new JMenu(friendlyNamespace);
menu.add(subMenu);
subMenus.put(friendlyNamespace, subMenu);
}
BSJIDActionMenuItem mi = new BSJIDActionMenuItem(bm.name, bm.jid, bm.namespace);
subMenu.add(mi);
mi.addActionListener(this);
}* /
TreeMap bms = new TreeMap();
for (int i=0; i < bookmarks.size(); i++) {
BSBookmark bm = (BSBookmark) bookmarks.elementAt(i);
String name = bm.name + ((bm.namespace!=null)? bm.namespace : "")
+ ((bm.jid!=null)? bm.jid.toString() : "");
bms.put(name, bm);
}
while (!bms.isEmpty()) {
String name = (String) bms.firstKey();
BSBookmark bm = (BSBookmark) bms.get(name);
bms.remove(name);
BSJIDActionMenuItem mi = new BSJIDActionMenuItem(bm.name, bm.jid, bm.namespace);
menu.add(mi);
mi.addActionListener(this);
}
}*/
/** ActionListener implementation */
public void actionPerformed(ActionEvent e) {
/*if (e.getSource() instanceof BSJIDActionMenuItem) {
if (mainFrame == null) return;
BSJIDActionMenuItem mi = (BSJIDActionMenuItem) e.getSource();
mainFrame.performAction(mi.getJID(), mi.getNamespace());
}
else if (e.getSource() == deleteMenuItem) {
BSDeleteBookmarkDialog dlg = new BSDeleteBookmarkDialog(mainFrame, "Delete bookmark", bookmarks.elements());
dlg.setVisible(true);
if (dlg.bookmark != null)
mainFrame.removeBookmark(dlg.bookmark.jid, dlg.bookmark.namespace);
}
else if (e.getSource() == addMenuItem) {
BSAddBookmarkDialog dlg = new BSAddBookmarkDialog(mainFrame, "Add bookmark");
dlg.setVisible(true);
if (dlg.name != null)
mainFrame.addBookmark(dlg.jid, dlg.namespace, dlg.name);
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -