⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 grouppopupmenu.java

📁 网站即时通讯系统
💻 JAVA
字号:
/* author: Lukasz Wiechec */package com.valhalla.jbother.menus;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.Locale;import java.util.ResourceBundle;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPopupMenu;import javax.swing.JTree;import javax.swing.SwingUtilities;import org.jivesoftware.smack.RosterGroup;import com.valhalla.gui.Standard;import com.valhalla.jbother.*;import com.valhalla.jbother.jabber.BuddyGroup;/** * The menu that pops up when you right click on a group in roster * * @author Lukasz Wiechec * @created March 2, 2005 * @version 1.0 */public class GroupPopupMenu extends JPopupMenu {    private ResourceBundle resources = ResourceBundle.getBundle(            "JBotherBundle", Locale.getDefault());    private JMenuItem sendMessageToGroupItem = new JMenuItem(resources            .getString("sendMessageToGroup"));    private JMenuItem rename = new JMenuItem(resources.getString("renameGroup"));    private String userList;    private JTree tree;    private BuddyGroup group;    /**     * Creates the menu     */    public GroupPopupMenu() {        MenuActionListener listener = new MenuActionListener();        sendMessageToGroupItem.addActionListener(listener);        rename.addActionListener(listener);        add(sendMessageToGroupItem);        add(rename);    }    /**     * Requests sending message to a group     */    private void sendMessageToGroupHandler() {        // question: how to handle users that not belong to any group?        // they are displayed in BuddyListTree in group "Contacts"        // 1) get it from the tree!        com.valhalla.Logger.debug("message to group handler called!");        MessagePanel groupMessageWindow = new MessagePanel();        groupMessageWindow.setTo(userList.substring(0, userList.length() - 2));        // trim the last "; "        groupMessageWindow.setVisible(true);        MessageDelegator.getInstance().showPanel(groupMessageWindow);        MessageDelegator.getInstance().frontFrame(groupMessageWindow);        groupMessageWindow.getSubjectField().grabFocus();    }    private void renameHandler() {        RosterGroup g = ConnectorThread.getInstance().getRoster()                .getGroup(group.getGroupName());        if (g == null) {            Standard.warningMessage(                    BuddyList.getInstance().getContainerFrame(), resources                            .getString("renameGroup"), resources                            .getString("cannotRenameGroup"));            return;        }        final String result = (String) JOptionPane.showInputDialog(BuddyList                .getInstance().getContainerFrame(), resources                .getString("newGroupName"), resources.getString("renameGroup"),                JOptionPane.QUESTION_MESSAGE, null, null, "");        if (result == null || result.equals(""))            return;        new Thread(new RenameThread(result)).start();    }    class RenameThread implements Runnable {        private String newName;        public RenameThread(String name) {            this.newName = name;        }        public void run() {            if (!BuddyList.getInstance().checkConnection())                return;            RosterGroup g = ConnectorThread.getInstance().getRoster()                    .getGroup(group.getGroupName());            if (g == null)                return;            String error = null;            try {                g.setName(newName);            } catch (Exception ex) {                error = ex.getMessage();            }            final String er = error;            try {                Thread.sleep(1000);            } catch (Exception yo) {            }            SwingUtilities.invokeLater(new Runnable() {                public void run() {                    if (er != null) {                        Standard.warningMessage(BuddyList.getInstance()                                .getContainerFrame(), resources                                .getString("renameGroup"), er);                    }                    BuddyList.getInstance().getBuddyListTree().reloadBuddies();                }            });        }    }    /**     * Listens for different items to get clicked on in the popup menu     *     * @author Adam Olsen     * @created March 2, 2005     * @version 1.0     */    class MenuActionListener implements ActionListener {        /**         * Description of the Method         *         * @param e         *            Description of the Parameter         */        public void actionPerformed(ActionEvent e) {            if (e.getSource() == sendMessageToGroupItem) {                sendMessageToGroupHandler();            } else if (e.getSource() == rename) {                renameHandler();            }        }    }    /**     * Shows the popup menu     *     * @param tree     *            the tree to show the menu on     * @param x     *            the x coordinate     * @param y     *            the y coordinate     * @param aUserList     *            the list of users (separated by '; ') to send the message to     */    public void showMenu(Component tree, int x, int y, String aUserList,            BuddyGroup group) {        this.userList = aUserList;        this.tree = (JTree) tree;        this.group = group;        validate();        show(tree, x, y);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -