1 package net.sf.jhylafax;
2
3 import java.awt.AWTException;
4 import java.awt.PopupMenu;
5 import java.awt.SystemTray;
6 import java.awt.TrayIcon;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9
10 import javax.swing.ImageIcon;
11
12 import org.apache.commons.logging.Log;
13 import org.apache.commons.logging.LogFactory;
14 import org.xnap.commons.gui.util.IconHelper;
15
16 public class FaxTray {
17
18 private final static Log logger = LogFactory.getLog(JHylaFAX.class);
19
20 private TrayIcon trayIcon;
21
22 private PopupMenu popup = new PopupMenu();
23
24 private boolean supported = false;
25
26 public FaxTray() {
27 if (!SystemTray.isSupported()) {
28 return;
29 }
30
31 ImageIcon icon = IconHelper.getSystemTrayIcon("kdeprintfax.png");
32 if (icon == null) {
33 logger.warn("Could not find icon for system tray");
34 return;
35 }
36
37 SystemTray tray = SystemTray.getSystemTray();
38 trayIcon = new TrayIcon(icon.getImage(), "JHylaFAX", popup);
39
40 ActionListener actionListener = new ActionListener() {
41 public void actionPerformed(ActionEvent e) {
42 JHylaFAX.getInstance().setVisible(true);
43 }
44 };
45
46 trayIcon.setImageAutoSize(true);
47 trayIcon.addActionListener(actionListener);
48
49 try {
50 tray.add(trayIcon);
51 } catch (AWTException e) {
52 logger.warn("Could not add icon to system tray", e);
53 return;
54 }
55
56 supported = true;
57 }
58
59 public boolean isSupported() {
60 return supported;
61 }
62
63 public PopupMenu getPopupMenu() {
64 return popup;
65 }
66
67 }