📄 contactpanelpopupmenu.java
字号:
package openicq.gui;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;import openicq.Start;import openicq.data.Default;import openicq.data.Resource;import openicq.net.VisibilityBroadcast;import org.javalib.util.MessageBuffer;import JOscarLib.Management.Contact;import JOscarLib.Management.ContactList;/** * The <code>ContactListPopupMenu</code> class contains the popup menu of the * contact panel. * @author Hansgeorg Schwibbe * @copyright 2004 */public class ContactPanelPopupMenu extends JPopupMenu{ private MainFrame mainFrame; private ContactPanel contactPanel; protected JMenuItem jMenuItemMessage; protected JMenuItem jMenuItemDetails; protected JMenuItem jMenuItemAdd; protected JMenuItem jMenuItemRename; protected JMenuItem jMenuItemDelete; /** * Initializes a new instance of the class <code>ContactListPopupMenu</code>. * @param parent the parent panel */ public ContactPanelPopupMenu(JPanel parent) { super(); contactPanel = (ContactPanel) parent; mainFrame = contactPanel.mainFrame; String text; ImageIcon imgIcon; text = ((String[]) mainFrame.localized.get("contactPanel"))[2]; jMenuItemMessage = new JMenuItem(text); imgIcon = new ImageIcon(Resource.ICON_SOURCE_POPUPMENU_ITEMS[0]); jMenuItemMessage.setIcon(imgIcon); jMenuItemMessage.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action_openChat(); } }); text = ((String[]) mainFrame.localized.get("contactPanel"))[4]; jMenuItemAdd = new JMenuItem(text); imgIcon = new ImageIcon(Resource.ICON_SOURCE_POPUPMENU_ITEMS[2]); jMenuItemAdd.setIcon(imgIcon); jMenuItemAdd.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action_addContact(); } }); text = ((String[]) mainFrame.localized.get("contactPanel"))[3]; jMenuItemDetails = new JMenuItem(text); imgIcon = new ImageIcon(Resource.ICON_SOURCE_POPUPMENU_ITEMS[1]); jMenuItemDetails.setIcon(imgIcon); jMenuItemDetails.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action_showDetails(); } }); text = ((String[]) mainFrame.localized.get("contactPanel"))[5]; jMenuItemRename = new JMenuItem(text); imgIcon = new ImageIcon(Resource.ICON_SOURCE_POPUPMENU_ITEMS[3]); jMenuItemRename.setIcon(imgIcon); jMenuItemRename.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action_renameContact(); } }); text = ((String[]) mainFrame.localized.get("contactPanel"))[6]; jMenuItemDelete = new JMenuItem(text); imgIcon = new ImageIcon(Resource.ICON_SOURCE_POPUPMENU_ITEMS[4]); jMenuItemDelete.setIcon(imgIcon); jMenuItemDelete.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { action_deleteContact(); } }); this.add(jMenuItemMessage); this.addSeparator(); this.add(jMenuItemDetails); this.add(jMenuItemRename); this.add(jMenuItemAdd); this.addSeparator(); this.add(jMenuItemDelete); } /** * Opens the message window of the chosen contact. */ protected void action_openChat() { contactPanel.action_openChat(); } /** * Shows the details of the chosen contact. */ protected void action_showDetails() { String title = ((String[]) mainFrame.localized.get("contactPanel"))[3]; if (mainFrame.showPasswordDialog(title) == false) { return; } Contact contact; int index, size; synchronized (Start.env) { size = Start.env.getKnownList().getContactListSize(); for (index = 0; index < size; index++) { contact = Start.env.getKnownList().get(index); if (Start.env.getDisplayName(contact) .equals(contactPanel.jListContacts.getSelectedValue())) { mainFrame.userDetailsDialog.setContact(contact); mainFrame.userDetailsDialog.setVisible(true); return; } } size = Start.env.getUnknownList().getContactListSize(); for (index = 0; index < size; index++) { contact = Start.env.getUnknownList().get(index); if (Start.env.getDisplayName(contact) .equals(contactPanel.jListContacts.getSelectedValue())) { mainFrame.userDetailsDialog.setContact(contact); mainFrame.userDetailsDialog.setVisible(true); return; } } } } /** * Sets the chosen unknown contact to the contact list of known contacts. */ protected void action_addContact() { String title = ((String[]) mainFrame.localized.get("contactPanel"))[4]; if (mainFrame.showPasswordDialog(title) == false) { return; } Contact contact; String dialogId; synchronized (Start.env) { int size = Start.env.getUnknownList().getContactListSize(); for (int index = 0; index < size; index++) { contact = Start.env.getUnknownList().get(index); if (Start.env.getDisplayName(contact) .equals(contactPanel.jListContacts.getSelectedValue())) { Start.env.addKnownContact(contact); Start.env.setKnownList(Start.env.sortContactList(Start.env.getKnownList())); size = Start.env.getKnownList().getContactListSize(); for (index = 0; index < size; index++) { contact = Start.env.getKnownList().get(index); if (mainFrame.userDetailsDialog.contact != null) { dialogId = mainFrame.userDetailsDialog.contact.getContactId(); if (dialogId.equals(contact.getContactId())) { mainFrame.userDetailsDialog.setContact(contact); break; } } } contactPanel.initContacts(); Start.env.sendKnownList(); int ownId = Integer.parseInt(Start.env.getOwnContact().getContactId()); ContactList updateList = new ContactList(); updateList.addToContactList(contact); contact.setIsInInvisibleList(true); new VisibilityBroadcast(Start.env.getConnection(), ownId, updateList); try { Thread.sleep(100); } catch (InterruptedException ie) { System.err.println(this.getClass().getName() + ": " + ie.toString()); } contact.setIsInInvisibleList(false); new VisibilityBroadcast(Start.env.getConnection(), ownId, updateList); MessageBuffer errorBuffer = new MessageBuffer(true); try { Start.env.saveContactList(Default.FOLDER_NAME_HOME + "/" + Start.env.getOwnContact() .getContactId() + "/" + Default.FILE_NAME_KNOWN_LIST, Start.env.getKnownList()); } catch (Exception ex) { String msg = ((String[]) mainFrame.localized.get("errorMessages"))[9]; errorBuffer.append(msg); } try {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -