📄 bsmainframe.java
字号:
}
/**
* Inits menu
*/
private void initMenu() {
mainMenuBar = new JMenuBar();
mainMenu = new JMenu("Menus");
// jabber menu
jabberMenu = new JMenu("Jabber");
jabberMenu.setMnemonic('j');
connectMenuItem = new JMenuItem("Connect");
jabberMenu.add(connectMenuItem);
disconnectMenuItem = new JMenuItem("Disconnect");
jabberMenu.add(disconnectMenuItem);
chatMenuItem = new JMenuItem("Open chat");
jabberMenu.add(chatMenuItem);
messageMenuItem = new JMenuItem("Send/broadcast message");
jabberMenu.add(messageMenuItem);
prefsMenuItem = new JMenuItem("Preferences");
jabberMenu.add(prefsMenuItem);
exitMenuItem = new JMenuItem("Exit");
jabberMenu.add(exitMenuItem);
//mainMenuBar.add(jabberMenu);
mainMenu.add(jabberMenu);
// icons for presence indication in menu
onlineIcon = new ImageIcon(ClassLoader.getSystemResource("images/green_light.gif"));
offlineIcon = new ImageIcon(ClassLoader.getSystemResource("images/red_light.gif"));
awayIcon = new ImageIcon(ClassLoader.getSystemResource("images/yellow_light.gif"));
xaIcon = new ImageIcon(ClassLoader.getSystemResource("images/xa_light.gif"));
dndIcon = new ImageIcon(ClassLoader.getSystemResource("images/dnd_light.gif"));
chatIcon = new ImageIcon(ClassLoader.getSystemResource("images/chat_light.gif"));
busyIcon = new ImageIcon(ClassLoader.getSystemResource("images/busy.gif"));
elseIcon = new ImageIcon(ClassLoader.getSystemResource("images/swoosh.gif"));
customIcon = new ImageIcon(ClassLoader.getSystemResource("images/custom.gif"));
// presence menu
presenceMenu = new JMenu("Presence");
presenceMenu.setMnemonic('p');
onlinePresenceMenuItem = new JMenuItem(presenceStrs[0], onlineIcon);
presenceMenu.add(onlinePresenceMenuItem);
chatPresenceMenuItem = new JMenuItem(presenceStrs[1], chatIcon);
presenceMenu.add(chatPresenceMenuItem);
busyPresenceMenuItem = new JMenuItem(presenceStrs[2], busyIcon);
presenceMenu.add(busyPresenceMenuItem);
elsePresenceMenuItem = new JMenuItem(presenceStrs[3], elseIcon);
presenceMenu.add(elsePresenceMenuItem);
awayPresenceMenuItem = new JMenuItem(presenceStrs[4], awayIcon);
presenceMenu.add(awayPresenceMenuItem);
xaPresenceMenuItem = new JMenuItem(presenceStrs[5], xaIcon);
presenceMenu.add(xaPresenceMenuItem);
dndPresenceMenuItem = new JMenuItem(presenceStrs[6], dndIcon);
presenceMenu.add(dndPresenceMenuItem);
customPresenceMenuItem = new JMenuItem(presenceStrs[7], customIcon);
presenceMenu.add(customPresenceMenuItem);
//mainMenuBar.add(presenceMenu);
mainMenu.add(presenceMenu);
// roster menu
rosterMenu = new JMenu("Roster");
rosterMenu.setMnemonic('r');
refreshRosterMenuItem = new JMenuItem("Refresh");
rosterMenu.add(refreshRosterMenuItem);
addContactMenuItem = new JMenuItem("Add contact");
rosterMenu.add(addContactMenuItem);
changeContactMenuItem = new JMenuItem("Change contact");
rosterMenu.add(changeContactMenuItem);
deleteContactMenuItem = new JMenuItem("Delete contact");
rosterMenu.add(deleteContactMenuItem);
//mainMenuBar.add(rosterMenu);
mainMenu.add(rosterMenu);
// view / plugins menu
pluginsMenu = new JMenu("View");
pluginsMenu.setMnemonic('v');
showMsgsMenuItem = new JCheckBoxMenuItem("Messages window");
pluginsMenu.add(showMsgsMenuItem);
showStatusMenuItem = new JCheckBoxMenuItem("Status window");
pluginsMenu.add(showStatusMenuItem);
showDebugMenuItem = new JCheckBoxMenuItem("Debug window");
pluginsMenu.add(showDebugMenuItem);
pluginsMenu.add(new JSeparator());
onlyOnlineMenuItem = new JCheckBoxMenuItem("Only online contacts");
pluginsMenu.add(onlyOnlineMenuItem);
forceMsgsIntoChatMenuItem = new JCheckBoxMenuItem("Force messages into chat window");
pluginsMenu.add(forceMsgsIntoChatMenuItem);
autoPopupMenuItem = new JCheckBoxMenuItem("Auto-popup new messages");
//pluginsMenu.add(autoPopupMenuItem);
compactViewMenuItem = new JCheckBoxMenuItem("Compact view");
pluginsMenu.add(compactViewMenuItem);
dockWindowsMenuItem = new JCheckBoxMenuItem("Dock windows");
pluginsMenu.add(dockWindowsMenuItem);
scrollTabsMenuItem = new JCheckBoxMenuItem("Scroll tabs");
pluginsMenu.add(scrollTabsMenuItem);
lookAndFeelMenu = new JMenu("Look and Feel");
pluginsMenu.add(lookAndFeelMenu);
pluginsMenu.add(new JSeparator());
//mainMenuBar.add(pluginsMenu);
mainMenu.add(pluginsMenu);
onlyOnlineMenuItem.setSelected(onlyOnline);
autoPopupMenuItem.setSelected(autoSelectChat);
compactViewMenuItem.setSelected(compactView);
dockWindowsMenuItem.setSelected(dockWindows);
showMsgsMenuItem.setSelected(showMsgs);
forceMsgsIntoChatMenuItem.setSelected(forceMsgsIntoChat);
showStatusMenuItem.setSelected(showStatus);
showDebugMenuItem.setSelected(showDebug);
scrollTabsMenuItem.setSelected(scrollTabs);
// disables scrolling of tabs in java lower than 1.4
if (!OSVersion.isJava1Point4orHigher()) {
//scrollTabsMenuItem.disable();
scrollTabsMenuItem.setEnabled(false);
}
else
scrollTabsMenuItem.addActionListener(this);
// bookmarks menu
bookmarks = new BSBookmarks(this);
bookmarkMenu = new JMenu("Bookmarks");
bookmarkMenu.setMnemonic('b');
mainMenu.add(bookmarkMenu);
bookmarks.addBookmarkMenuItems(bookmarkMenu);
// help menu
helpMenu = new JMenu("Help");
helpMenu.setMnemonic('h');
updatesMenuItem = new JMenuItem("Check for updates...");
helpMenu.add(updatesMenuItem);
aboutMenuItem = new JMenuItem("About...");
helpMenu.add(aboutMenuItem);
//mainMenuBar.add(helpMenu);
mainMenu.add(helpMenu);
enableMenus(false);
addLookAndFeelMenu();
mainMenuBar.add(mainMenu);
setJMenuBar(mainMenuBar);
}
/**
* Inits tool bar.
*/
private void initToolBar() {
toolBar = new JToolBar("BuddySpace tool bar");
toolBar.setFloatable(false);
Icon icon = new ImageIcon(ClassLoader.getSystemResource("images/disconnect.gif"));
connectButton = new JToggleButton(icon);
setConnectButton(false);
connectButton.setMargin(new Insets(1,1,1,1));
connectButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
toolBar.add(connectButton);
//icon = new ImageIcon(ClassLoader.getSystemResource("images/onlyOnline.gif"));
icon = new ImageIcon(ClassLoader.getSystemResource(onlyOnline?
"images/online_users.gif": "images/all_users.gif"));
onlyOnlineButton = new JToggleButton(icon);
onlyOnlineButton.setSelected(onlyOnline);
onlyOnlineButton.setToolTipText(onlyOnline?
"Show all users" : "Show only online");
onlyOnlineButton.setMargin(new Insets(1,1,1,1));
onlyOnlineButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
toolBar.add(onlyOnlineButton);
icon = new ImageIcon(ClassLoader.getSystemResource("images/expand3.gif"));
expandGroupsButton = new JToggleButton(icon);
setExpendGroupsButton(expandGroups);
expandGroupsButton.setEnabled(false);
expandGroupsButton.setMargin(new Insets(1,1,1,1));
expandGroupsButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
toolBar.add(expandGroupsButton);
//icon = new ImageIcon(ClassLoader.getSystemResource("images/addContact.gif"));
icon = new ImageIcon(ClassLoader.getSystemResource("images/add_user.gif"));
addContactButton = new JButton(icon);
addContactButton.setToolTipText("Add contact");
addContactButton.setEnabled(false);
addContactButton.setMargin(new Insets(1,1,1,1));
addContactButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
toolBar.add(addContactButton);
icon = new ImageIcon(ClassLoader.getSystemResource("images/delete_user.gif"));
delContactButton = new JButton(icon);
delContactButton.setToolTipText("Delete contact");
delContactButton.setEnabled(false);
delContactButton.setMargin(new Insets(1,1,1,1));
delContactButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
//toolBar.add(delContactButton);
presenceIcons = new ImageIcon[presenceStrs.length];
presenceIcons[0] = onlineIcon;
presenceIcons[1] = chatIcon;
presenceIcons[2] = busyIcon;
presenceIcons[3] = elseIcon;
presenceIcons[4] = awayIcon;
presenceIcons[5] = xaIcon;
presenceIcons[6] = dndIcon;
presenceIcons[7] = customIcon;
presenceIcons[8] = offlineIcon;
for (int i=0; i<presenceIcons.length; i++)
presenceIcons[i].setDescription(presenceStrs[i]);
showComboBox = new JComboBox(presenceIcons);
//ImgIconListCellRenderer renderer = new ImgIconListCellRenderer();
BSShowComboRenderer renderer = new BSShowComboRenderer();
showComboBox.setRenderer(renderer);
showComboBox.setMaximumRowCount(presenceIcons.length);
showComboBox.setEnabled(false);
showComboBox.addItemListener(this);
showComboBox.setToolTipText("Change presence");
/*showComboBox.setPreferredSize(new Dimension(
showComboBox.getPreferredSize().width,
addContactButton.getPreferredSize().height));*/
showComboBox.setMaximumSize(showComboBox.getPreferredSize());
showComboBox.setAlignmentX(JButton.CENTER_ALIGNMENT);
/*JPanel tmpPanel = new JPanel(new BorderLayout());
tmpPanel.add(showComboBox, BorderLayout.WEST);
toolBar.add(tmpPanel);*/
toolBar.add(showComboBox);
icon = new ImageIcon(ClassLoader.getSystemResource(compactView?
"images/compactview.gif" : "images/fullview.gif"));
compactButton = new JToggleButton(icon);
compactButton.setToolTipText(compactView? "Full view" : "Compact view");
compactButton.setSelected(compactView);
compactButton.setMargin(new Insets(1,1,1,1));
compactButton.setAlignmentX(JButton.CENTER_ALIGNMENT);
toolBar.add(compactButton);
toolBar.setMinimumSize(toolBar.getPreferredSize());
getContentPane().add(toolBar, BorderLayout.NORTH);
/*JToolBar testBar = new JToolBar("heh");
testBar.add(new JButton("hu"));
getContentPane().add(testBar, BorderLayout.SOUTH);*/
}
/**
* Inits main tab.
*/
private void initMainTab() {
GridBagConstraints gridBagConstraints;
mainPanel = new JPanel(new BorderLayout());
rosterTree = new BSRosterTreeView(this, core);
rosterTree.setOnlyOnline(onlyOnline);
mainPanel.add(rosterTree.getScrollPane(), BorderLayout.CENTER);
mainTabbedPane.addTab("Roster", mainPanel);
}
/** Adds the menu for live changing of look and feel */
private void addLookAndFeelMenu() {
UIManager.LookAndFeelInfo[] looks = UIManager.getInstalledLookAndFeels();
for (int i=0; i< looks.length; i++) {
JMenuItem item = new JMenuItem(looks[i].getName());
final String look = looks[i].getClassName();
item.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
currentLookAndFeel = look;
initLAF();
} //actionPerformed
});
lookAndFeelMenu.add(item);
} //for
// AQUA
JMenuItem aqua = new JMenuItem("Aqua");
aqua.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent evt) {
currentLookAndFeel = "aqua";
initLAF();
} //actionPerformed
});
lookAndFeelMenu.add(aqua);
}
/**
* Adds listeners to components handling user interactivity.
*/
private void addComponentListeners() {
// buttons
connectButton.addActionListener(this);
//rosterButton.addActionListener(this);
expandGroupsButton.addActionListener(this);
onlyOnlineButton.addActionListener(this);
addContactButton.addActionListener(this);
delContactButton.addActionListener(this);
compactButton.addActionListener(this);
// menu
connectMenuItem.addActionListener(this);
disconnectMenuItem.addActionListener(this);
chatMenuItem.addActionListener(this);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -