📄 bsmainframe.java
字号:
private SoundPlayer soundPlayer = null;
private Image offlineImage = null;
private Image onlineImage = null;
private Image awayImage = null;
private Image offlineMsgImage = null;
private Image onlineMsgImage = null;
private Image awayMsgImage = null;
private ImageIcon offlineIcon = null;
private ImageIcon onlineIcon = null;
private ImageIcon awayIcon = null;
private ImageIcon xaIcon = null;
private ImageIcon dndIcon = null;
private ImageIcon chatIcon = null;
private ImageIcon busyIcon = null;
private ImageIcon elseIcon = null;
private ImageIcon customIcon = null;
private ImageIcon[] presenceIcons;
private boolean newMessage = false;
private boolean dontSendPresence = false;
private BSPresenceInfo presenceBeforeAuto = null;
//private String currentLookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
private String currentLookAndFeel = "";
/** bookmarks */
private BSBookmarks bookmarks = null;
/** open windows */
private BSOpenWindows openWindows = null;
private DesktopIndicatorLink systemTrayInd = null;
/** Creates new form BSMainFrame */
public BSMainFrame() {
/*UIDefaults defaults = UIManager.getDefaults();
defaults.put("Menu.background", Color.yellow);
javax.swing.plaf.metal.MetalLookAndFeel
*/
BSSplashScreenDlg splashDlg = new BSSplashScreenDlg(null);
splashDlg.setLocationRelativeTo(splashDlg.getParent());
splashDlg.setVisible(true);
System.out.println("loading preferences...");
splashDlg.setMessage("loading preferences...");
loadPreferences();
initLAF();
setProxy(proxy, proxyPort);
// initializes the buddySpace core and registers itself as listener
System.out.println("initializing core...");
splashDlg.setMessage("initializing core...");
core = new BSCore();
core.addLoginListener(this);
BSConnectionBean connectionBean = core.getConnectionBean();
if (connectionBean != null)
connectionBean.addConnectionListener(this);
rosterBean = core.getRosterBean();
if (rosterBean != null)
rosterBean.addRosterListener(this);
presenceBean = core.getPresenceBean();
if (presenceBean != null) {
presenceBean.addPresenceListener(this);
presenceBean.getIndividualPresences().setRosterBean(rosterBean);
}
messengerBean = core.getMessengerBean();
if (messengerBean != null)
messengerBean.addMessageListener(this);
infoQueryBean = core.getInfoQueryBean();
if (infoQueryBean != null)
infoQueryBean.addIQListener(this);
regBean = core.getRegisterBean();
if (regBean != null)
regBean.addRegListener(this);
//TestFormXData test = new TestFormXData();
//test.test1(this, rosterBean);
// inits components
System.out.println("loading GUI...");
splashDlg.setMessage("loading GUI...");
initComponents();
//setSize(500, 500);
//setLocation(10,10);
// inits chat window manager
chatWinMan = new BSChatWinManager(mainTabbedPane, this, messengerBean, presenceBean);
chatWinMan.setRosterBean(rosterBean);
// inits message window manager
msgWinMan = new BSMsgWinManager(mainTabbedPane, this, messengerBean, rosterBean);
msgWinMan.setPresenceBean(presenceBean);
// inits sound player
System.out.println("loading sounds...");
splashDlg.setMessage("loading sounds...");
soundPlayer = new SoundPlayer(newMsgSoundFileName);
// inits plugins
System.out.println("initializing plug-ins...");
splashDlg.setMessage("initializing plug-ins...");
plugins = new BSPluginLoader(this, mainTabbedPane, core);
/*System.out.println("loading conferencing...");
splashDlg.setMessage("loading conferencing...");
plugins.loadConference();*/
System.out.println("loading groupchat...");
splashDlg.setMessage("loading groupchat...");
plugins.loadGroupchat();
System.out.println("loading mapping...");
splashDlg.setMessage("loading mapping...");
plugins.loadMaps();
System.out.println("loading html view...");
splashDlg.setMessage("loading html view...");
plugins.loadWebBrowser();
System.out.println("loading browse...");
splashDlg.setMessage("loading browse...");
plugins.loadBrowse();
System.out.println("loading app launcher...");
splashDlg.setMessage("loading app launcher...");
plugins.loadAppLauncher();
/*System.out.println("loading disco...");
splashDlg.setMessage("loading disco...");
plugins.loadDisco();*/
System.out.println("loading pubsub...");
splashDlg.setMessage("loading pubsub...");
plugins.loadPubsub();
System.out.println("loading plans...");
splashDlg.setMessage("loading plans...");
plugins.loadPlans();
if (pluginBuddyFinder)
{
System.out.println("loading BuddyFinder...");
splashDlg.setMessage("loading BuddyFinder...");
plugins.loadBuddyFinder();
}
if (pluginSimLink)
{
System.out.println("loading SimLink...");
splashDlg.setMessage("loading SimLink...");
plugins.loadSimLink();
}
splashDlg.setVisible(false);
msgWinMan.showMessagesWindow(showMsgs, false, dockWindows);
boolean tmp = showDebug;
msgWinMan.showDebugWindow(true, false, core, dockWindows);
showDebug = tmp;
msgWinMan.showDebugWindow(showDebug, false, core, dockWindows);
tmp = showStatus;
msgWinMan.showStatusWindow(true, false, core, dockWindows);
showStatus = tmp;
msgWinMan.showStatusWindow(showStatus, false, core, dockWindows);
statusesBar = new BSStatusesBar(this, presenceBean, rosterBean, loadStatusesBarJIDs(), true);
systemTrayInd = new DesktopIndicatorLink(this);
systemTrayInd.init();
pack();
addWindowListener(new WindowAdapter() {
public void windowOpened(java.awt.event.WindowEvent windowEvent) {
if (autoLogin) {
if (username != null && !username.equals("") &&
password != null && !password.equals("") &&
resource != null && !resource.equals("") &&
server != null && !server.equals(""))
connect(username, password, resource, server, port, false, useSSL);
else
connect(true);
}
}
});
// open windows
openWindows = new BSOpenWindows(this);
openTheWindows(openWindows.getWindows(false), false);
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
// your code here
new BSMainFrame().show();
}
/** Called when close button of the form clicked */
private void exitForm(java.awt.event.WindowEvent evt) {
if (systemTrayInd != null)
setVisible(false);
else
close();
}
/** Closes the application */
public void close() {
if (openWindows != null) {
if (isConnected()) openWindows.saveOpenWindows(true);
openWindows.saveOpenWindows(false);
}
//savePreferences();
systemTrayInd.finish();
System.exit(0);
}
/**
* Inits components.
*/
private void initComponents() {
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
public void windowActivated(WindowEvent evt) {
repaint();
}
});
getContentPane().setLayout(new BorderLayout());
initMenu();
mainTabbedPane = new JTabbedPane();
getContentPane().add(mainTabbedPane, BorderLayout.CENTER);
initToolBar();
initMainTab();
changeViewType(compactView);
// *** TESTING ***
//initTestTab();
// *** end of TESTING ***
// images for presence and message indication in application icon
offlineImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/red_w_bckgrd.gif"));
onlineImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/green_w_bckgrd.gif"));
awayImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/yellow_w_bckgrd.gif"));
/*offlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/red_w_bckgrd-msg.gif"));
onlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/green_w_bckgrd-msg.gif"));
awayMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/yellow_w_bckgrd-msg.gif"));*/
offlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/red_w_bckgrd-msg.gif"));
onlineMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/alert_green_programicon.gif"));
awayMsgImage = Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("images/alert_yellow_programicon.gif"));
setTitle("BuddySpace2 - disconnected");
setPresenceIcons(SHOW_OFFLINE_STR, null);
addComponentListeners();
pack();
}
public void changeViewType(boolean compact) {
if (compact) {
int menuCount = mainMenuBar.getMenuCount();
JMenu menus[] = new JMenu[menuCount];
for (int i=0; i<menuCount; i++)
menus[i] = mainMenuBar.getMenu(i);
for (int i=0; i<menuCount; i++) {
mainMenuBar.remove(menus[i]);
if (menus[i] != mainMenu)
mainMenu.add(menus[i]);
}
jabberMenu.remove(prefsMenuItem);
jabberMenu.remove(exitMenuItem);
mainMenu.add(prefsMenuItem);
mainMenu.add(exitMenuItem);
mainMenuBar.add(mainMenu);
} else {
Component menus[] = mainMenu.getMenuComponents();
for (int i=0; i<menus.length; i++) {
mainMenu.remove(menus[i]);
if (menus[i] != exitMenuItem && menus[i] != prefsMenuItem)
mainMenuBar.add(menus[i]);
}
jabberMenu.add(prefsMenuItem);
jabberMenu.add(exitMenuItem);
mainMenuBar.remove(mainMenu);
}
DefaultComboBoxModel cm = new DefaultComboBoxModel(presenceIcons);
cm.setSelectedItem(showComboBox.getModel().getSelectedItem());
showComboBox.setModel(cm);
showComboBox.setMaximumSize(showComboBox.getPreferredSize());
int height = getSize().height;
pack();
setSize(getSize().width, height);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -