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

📄 exchangelistener.java

📁 JBother是纯Java开发的Jabber(即时消息开源软件)客户端。支持群组聊天
💻 JAVA
字号:
/* * ExchangeListener.java * * Created on October 31, 2005, 7:24 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */package com.valhalla.jbother.jabber.smack;import org.jivesoftware.smackx.*;import org.jivesoftware.smack.*;import com.valhalla.gui.*;import java.util.*;import javax.swing.*;import java.text.*;import com.valhalla.jbother.*;/** * * @author synic */public class ExchangeListener implements RosterExchangeListener {    protected ResourceBundle resources = ResourceBundle.getBundle("JBotherBundle", Locale.getDefault());       private Hashtable choosers = new Hashtable();        public void entriesReceived(final String from, final Iterator entries)    {        SwingUtilities.invokeLater(new Runnable()        {            public void run()            {                UserChooser chooser = (UserChooser)choosers.get(from);                if(chooser != null)                 {                    chooser.addEntries(entries);                    if(!chooser.isVisible()) chooser.setVisible(true);                    return;                }                                String message = MessageFormat.format(resources.getString("entriesReceived"), new String[] {from});                NMOptionDialog d = new NMOptionDialog(BuddyList.getInstance().getContainerFrame(),                        resources.getString("receiveEntries"), message);                                d.addButton("Yes", 2);                                d.addButton("No", 1);                d.addOptionListener(new OptionListener(d, from, entries));                d.setVisible(true);            }        });    }        class OptionListener implements NMOptionListener, UserChooserListener    {        NMOptionDialog d;        Iterator entries;        String from;        public OptionListener(NMOptionDialog d, String from, Iterator entries)        {            this.d = d;            this.from = from;            this.entries = entries;        }                public synchronized void buttonClicked(int num)        {            if(num == 1) return;            d.dispose();                        UserChooser chooser = null;            if(choosers.get(from) == null)            {                chooser = new UserChooser(BuddyList.getInstance().getContainerFrame(),                         resources.getString("receiveEntries"), resources.getString("selectReceiveItems"), false);                chooser.clearEntries();                chooser.addListener(this);                chooser.setEditChooser(true);                choosers.put(from, chooser);            }            else {                chooser = (UserChooser)choosers.get(from);            }            chooser.addEntries(entries);            chooser.setVisible(true);        }                public void usersChosen(UserChooser.Item[] items)        {            choosers.remove(from);            new Thread(new AddUserThread(items)).start();        }    }        class AddUserThread implements Runnable    {        UserChooser.Item[] items;        public AddUserThread(UserChooser.Item[] items)        {            this.items = items;        }        public void run()        {            Roster roster = BuddyList.getInstance().getConnection().getRoster();            for(int i = 0; i < items.length; i++)            {                UserChooser.Item item = items[i];                String name = item.getName();                String group = item.getGroup();                String user = item.getJID();                                try {                    roster.createEntry(user, name, new String[] {group});                }                catch(XMPPException ex) { }            }                        SwingUtilities.invokeLater(new Runnable()            {                public void run()                {                    BuddyList.getInstance().getBuddyListTree().reloadBuddies();                }            });        }    }}

⌨️ 快捷键说明

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