📄 buddylistbuddiesmenu.java
字号:
/* Copyright (C) 2003 Adam Olsen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */package com.valhalla.jbother.menus;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.*;import java.util.Locale;import java.util.ResourceBundle;import javax.swing.*;import org.jivesoftware.smack.packet.Presence;import com.valhalla.gui.Standard;import com.valhalla.jbother.*;import com.valhalla.jbother.jabber.BuddyStatus;import com.valhalla.jbother.groupchat.GroupChatBookmarks;import com.valhalla.settings.Settings;/** * Buddies menu - contains all the other menus - excluding the help menu * * @author Adam Olsen * @author Andrey Zakirov * @version 1.0 */public class BuddyListBuddiesMenu extends JPopupMenu { private BuddyList blist; private ResourceBundle resources = ResourceBundle.getBundle( "JBotherBundle", Locale.getDefault()); private JMenuItem addBuddyItem = new JMenuItem(resources .getString("addBuddy")); private JMenuItem signOnItem = new JMenuItem(resources.getString("signOn")); private JMenuItem quitItem = new JMenuItem(resources .getString("quitButton")); private JMenu servicesMenu = new JMenu(resources .getString("jabberServices")); private JMenuItem joinChatItem = new JMenuItem(resources .getString("joinGroupChat")); private JMenuItem discoItem = new JMenuItem(resources .getString("serviceDiscovery")); private JMenuItem blankItem = new JMenuItem(resources .getString("blankMessage")); private JMenuItem registerItem = new JMenuItem(resources .getString("registerForService")); private BuddyListOptionsMenu optionsMenu = new BuddyListOptionsMenu(); private JMenuItem switchItem = new JMenuItem(resources .getString("switchProfile")); private JMenuItem editItem = new JMenuItem(resources .getString("editAccount")); private JMenuItem infoItem = new JMenuItem(resources .getString("editInformation")); private JMenu profileMenu = new JMenu("Profile"); /** * Creates the buddies menu * * @param blist * the buddy list to attach this menu to */ public BuddyListBuddiesMenu(BuddyList blist) { super("JBother"); if (System.getProperty("mrj.version") != null) {// setText(resources.getString("actions"));// setMnemonic(KeyEvent.VK_A); } else {// setMnemonic(KeyEvent.VK_J); } addBuddyItem.setMnemonic(KeyEvent.VK_A); quitItem.setMnemonic(KeyEvent.VK_Q); signOnItem.setMnemonic(KeyEvent.VK_L); servicesMenu.setMnemonic(KeyEvent.VK_J); joinChatItem.setMnemonic(KeyEvent.VK_G); blankItem.setMnemonic(KeyEvent.VK_B); switchItem.setMnemonic(KeyEvent.VK_S); editItem.setMnemonic(KeyEvent.VK_E); optionsMenu.setMnemonic(KeyEvent.VK_O); profileMenu.setMnemonic(KeyEvent.VK_E); discoItem.setMnemonic(KeyEvent.VK_S); registerItem.setMnemonic(KeyEvent.VK_R); this.blist = blist; initComponents(); } public void logOn() { signOnItem.setText(resources.getString("signOff")); } public void logOff() { signOnItem.setText(resources.getString("signOn")); } /** * Sets up the visual components */ private void initComponents() { MenuActionListener listener = new MenuActionListener(); if (!JBother.kiosk_mode) { joinChatItem.addActionListener(new MenuActionListener()); addBuddyItem.addActionListener(listener); blankItem.addActionListener(listener); signOnItem.addActionListener(listener); registerItem.addActionListener(listener); discoItem.addActionListener(listener); infoItem.addActionListener(listener); switchItem.addActionListener(listener); editItem.addActionListener(listener); add(addBuddyItem); addSeparator(); add(blankItem); add(joinChatItem); addSeparator(); servicesMenu.add(discoItem); servicesMenu.add(registerItem); add(servicesMenu); profileMenu.add(switchItem); profileMenu.add(editItem); profileMenu.add(infoItem); add(profileMenu); add(optionsMenu); if (System.getProperty("mrj.version") == null) { add(new BuddyListHelpMenu()); } addSeparator(); add(signOnItem); } quitItem.addActionListener(listener); add(quitItem); } /** * @param var * true if this is OS X */ public void setOSX(boolean var) { if (var) { remove(quitItem); } else {// if (!isMenuComponent(quitItem))// add(quitItem); } optionsMenu.setOSX(var); } /** * Listens for an item to be clicked * * @author Adam Olsen * @version 1.0 */ class MenuActionListener implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getSource() == quitItem) blist.quitHandler(); else if (e.getSource() == switchItem) switchHandler(); else if (e.getSource() == editItem) editHandler(); else if (e.getSource() == signOnItem) signOnHandler(); else { if (!BuddyList.getInstance().checkConnection()) { BuddyList.getInstance().connectionError(); return; } if (e.getSource() == addBuddyItem) new AddBuddyDialog().setVisible(true); else if (e.getSource() == blankItem) { MessagePanel panel = new MessagePanel(); MessageDelegator.getInstance().showPanel(panel); MessageDelegator.getInstance().frontFrame(panel); } else if (e.getSource() == joinChatItem) { GroupChatBookmarks gc = new GroupChatBookmarks(BuddyList.getInstance() .getTabFrame()); gc.load(); gc.setVisible(true); } else if (e.getSource() == registerItem) registrationHandler(); else if (e.getSource() == discoItem) new ServiceDiscoveryDialog(blist.getContainerFrame()) .setVisible(true); else if (e.getSource() == infoItem) new InformationViewerDialog(BuddyList.getInstance() .getConnection().getUser(), true); } } } private void signOnHandler() { if (!BuddyList.getInstance().checkConnection()) { ConnectorThread.getInstance().setCancelled(false); BuddyList.getInstance().setStatus(Presence.Mode.AVAILABLE, resources.getString("available"), false); } else signOffHandler(); } private void signOffHandler() { ConnectorThread.getInstance().setCancelled(true); BuddyList.getInstance().getStatusMenu().signOffHandler(); } private void editHandler() { ProfileEditorDialog dialog = new ProfileEditorDialog(BuddyList.getInstance().getContainerFrame(),null, ProfileManager.getCurrentProfile()); dialog.setIsCurrentProfile(true); dialog.setVisible(true); } private void switchHandler() { if (BuddyList.getInstance().checkConnection()) { Standard.warningMessage(null, resources.getString("error"), resources.getString("stillConnected")); } else { BuddyList.getInstance().getContainerFrame().setVisible(false); new ProfileManager().setVisible(true); } } /** * Registers for a server by displaying a RegistrationForm */ private void registrationHandler() { String result = (String) JOptionPane.showInputDialog(null, resources .getString("pleaseEnterServer"), resources .getString("registerForService"), JOptionPane.QUESTION_MESSAGE, null, null, ""); if (result != null && !result.equals("")) { RegistrationForm form = new RegistrationForm(BuddyList.getInstance().getContainerFrame(),result); form.getRegistrationInfo(); } } public void showMenu( Component tree, int x, int y) { show( tree, x, y ); } public void signOn() { logOn(); } public void signOff() { logOff(); } /** * @param var * true if this is OS X */}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -