From ecb7d3643fabd4602f8a2f59b896053da36074f5 Mon Sep 17 00:00:00 2001 From: Evgeny Gryaznov Date: Sun, 17 Jan 2010 21:32:18 +0000 Subject: [PATCH] menu with visitors list, info git-svn-id: https://webim.svn.sourceforge.net/svnroot/webim/trunk@733 c66351dc-e62f-0410-b875-e3a5c0b9693f --- .../src/org/mibew/notifier/TrayNotifier.java | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/mibewjava/org.mibew.notifier/src/org/mibew/notifier/TrayNotifier.java b/src/mibewjava/org.mibew.notifier/src/org/mibew/notifier/TrayNotifier.java index 85a92368..f8e77827 100644 --- a/src/mibewjava/org.mibew.notifier/src/org/mibew/notifier/TrayNotifier.java +++ b/src/mibewjava/org.mibew.notifier/src/org/mibew/notifier/TrayNotifier.java @@ -8,10 +8,10 @@ import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; +import java.awt.TrayIcon.MessageType; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; -import java.net.URL; import org.mibew.api.MibewAgent; import org.mibew.api.MibewAgentListener; @@ -24,6 +24,7 @@ public class TrayNotifier extends MibewAgentListener { private Image online; private Image offline; + private ActionListener fExit; public TrayNotifier() { } @@ -34,20 +35,20 @@ public class TrayNotifier extends MibewAgentListener { SystemTray tray = SystemTray.getSystemTray(); online = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("tray_on.png")); offline = Toolkit.getDefaultToolkit().getImage(this.getClass().getResource("tray_off.png")); - - PopupMenu popup = new PopupMenu(); - MenuItem exitItem = new MenuItem("Exit", new MenuShortcut(KeyEvent.VK_X)); - exitItem.addActionListener(new ActionListener() { + fExit = new ActionListener() { public void actionPerformed(ActionEvent e) { if(agent != null) { agent.stop(); } System.exit(0); } - }); + }; - popup.add(exitItem); - trayIcon = new TrayIcon(offline, "Mibew Notifier", popup); + PopupMenu pm = new PopupMenu(); + MenuItem exitItem = new MenuItem("Exit", new MenuShortcut(KeyEvent.VK_X)); + exitItem.addActionListener(fExit); + pm.add(exitItem); + trayIcon = new TrayIcon(offline, "Mibew Notifier", pm); trayIcon.setImageAutoSize(true); try { @@ -69,6 +70,24 @@ public class TrayNotifier extends MibewAgentListener { @Override protected void updated(MibewThread[] all, MibewThread[] created) { + PopupMenu pm = new PopupMenu(); + for(MibewThread mt : all) { + MenuItem mi = new MenuItem(mt.fClientName); + pm.add(mi); + } + if(all.length > 0) { + pm.addSeparator(); + } + MenuItem exitItem = new MenuItem("Exit", new MenuShortcut(KeyEvent.VK_X)); + exitItem.addActionListener(fExit); + pm.add(exitItem); + trayIcon.setPopupMenu(pm); + + if(created.length == 1) { + trayIcon.displayMessage("New visitor", created[0].fClientName + "\n" + created[0].fFirstMessage, MessageType.INFO); + } else if(created.length > 1) { + trayIcon.displayMessage("New visitors", "New " + created.length + " visitors", MessageType.INFO); + } } public void setAgent(MibewAgent agent) {