blob: e46baa7a9791b822d6599df4d5dd37ccc5eabb25 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
/*
* SIP Communicator, the OpenSource Java VoIP and Instant Messaging client.
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package net.java.sip.communicator.impl.systray.jdic;
import java.awt.event.*;
import javax.swing.*;
import net.java.sip.communicator.impl.systray.*;
import net.java.sip.communicator.service.gui.*;
import net.java.sip.communicator.util.*;
import org.osgi.framework.*;
/**
* The <tt>TrayMenu</tt> is the menu that appears when the user right-click
* on the Systray icon.
*
* @author Nicolas Chamouard
*/
public class TrayMenu
extends JPopupMenu
implements ActionListener
{
/**
* The logger for this class.
*/
private Logger logger = Logger.getLogger(TrayMenu.class.getName());
/**
* A reference of <tt>Systray</tt>
*/
private SystrayServiceJdicImpl parentSystray;
private JMenuItem settingsItem = new JMenuItem(
Resources.getString("settings"),
new ImageIcon(Resources.getImage("settingsMenuIcon")));
private JMenuItem closeItem = new JMenuItem(
Resources.getString("close"),
new ImageIcon(Resources.getImage("closeMenuIcon")));
private JMenuItem addContactMenuItem = new JMenuItem(
Resources.getString("addContact"),
new ImageIcon(Resources.getImage("addContactIcon")));
private StatusSubMenu statusMenu;
/**
* The configuration window called by the menu item "settings"
*/
private ConfigurationWindow configDialog;
/**
* Creates an instance of <tt>TrayMenu</tt>.
* @param tray a reference of the parent <tt>Systray</tt>
*/
public TrayMenu(SystrayServiceJdicImpl tray)
{
parentSystray = tray;
statusMenu = new StatusSubMenu(tray);
this.add(settingsItem);
this.add(addContactMenuItem);
this.addSeparator();
this.add(statusMenu);
this.addSeparator();
this.add(closeItem);
this.settingsItem.setName("settings");
this.closeItem.setName("close");
this.addContactMenuItem.setName("addContact");
this.settingsItem.addActionListener(this);
this.closeItem.addActionListener(this);
this.addContactMenuItem.addActionListener(this);
}
/**
* Handles the <tt>ActionEvent</tt> when one of the menu items is selected.
* @param evt the event containing the menu item name
*/
public void actionPerformed(ActionEvent evt)
{
JMenuItem menuItem = (JMenuItem) evt.getSource();
String itemName = menuItem.getName();
if(itemName.equals("settings"))
{
configDialog
= SystrayActivator.getUIService().getConfigurationWindow();
configDialog.setVisible(true);
}
else if(itemName.equals("close"))
{
try
{
SystrayActivator.bundleContext.getBundle(0).stop();
} catch (BundleException ex)
{
logger.error("Failed to gently shutdown Felix", ex);
System.exit(0);
}
}
else if(itemName.equals("addContact"))
{
ExportedWindow dialog
= SystrayActivator.getUIService().getExportedWindow(
ExportedWindow.ADD_CONTACT_WINDOW);
if(dialog != null)
dialog.setVisible(true);
else
SystrayActivator.getUIService().getPopupDialog()
.showMessagePopupDialog(
Resources.getString("failedToLoadAddContactDialog"));
}
}
}
|