diff options
Diffstat (limited to 'subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java')
-rw-r--r-- | subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java b/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java deleted file mode 100644 index 2be918e8..00000000 --- a/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java +++ /dev/null @@ -1,125 +0,0 @@ -package net.sourceforge.subsonic.booter.agent; - -import java.awt.Image; -import java.awt.MenuItem; -import java.awt.PopupMenu; -import java.awt.SystemTray; -import java.awt.Toolkit; -import java.awt.TrayIcon; -import java.awt.event.ActionEvent; -import java.net.URL; - -import javax.swing.AbstractAction; -import javax.swing.Action; - -import net.sourceforge.subsonic.booter.deployer.DeploymentStatus; - -/** - * Controls the Subsonic tray icon. - * - * @author Sindre Mehus - */ -public class TrayController implements SubsonicListener { - - private final SubsonicAgent subsonicAgent; - private TrayIcon trayIcon; - - private Action openAction; - private Action controlPanelAction; - private Action hideAction; - private Image startedImage; - private Image stoppedImage; - - public TrayController(SubsonicAgent subsonicAgent) { - this.subsonicAgent = subsonicAgent; - try { - createActions(); - createComponents(); - addBehaviour(); - installComponents(); - subsonicAgent.addListener(this); - } catch (Throwable x) { - System.err.println("Disabling tray support."); - } - } - - public void showMessage() { - trayIcon.displayMessage("Subsonic", "Subsonic is now running. Click this balloon to get started.", - TrayIcon.MessageType.INFO); - } - - private void createActions() { - openAction = new AbstractAction("Open Subsonic in Browser") { - public void actionPerformed(ActionEvent e) { - subsonicAgent.openBrowser(); - } - }; - - controlPanelAction = new AbstractAction("Subsonic Control Panel") { - public void actionPerformed(ActionEvent e) { - subsonicAgent.showStatusPanel(); - } - }; - - - hideAction = new AbstractAction("Hide Tray Icon") { - public void actionPerformed(ActionEvent e) { - subsonicAgent.exit(); - } - }; - } - - private void createComponents() { - startedImage = createImage("/images/subsonic-started-16.png"); - stoppedImage = createImage("/images/subsonic-stopped-16.png"); - - PopupMenu menu = new PopupMenu(); - menu.add(createMenuItem(openAction)); - menu.add(createMenuItem(controlPanelAction)); - menu.addSeparator(); - menu.add(createMenuItem(hideAction)); - - trayIcon = new TrayIcon(stoppedImage, "Subsonic Music Streamer", menu); - } - - private Image createImage(String resourceName) { - URL url = getClass().getResource(resourceName); - return Toolkit.getDefaultToolkit().createImage(url); - } - - private MenuItem createMenuItem(Action action) { - MenuItem menuItem = new MenuItem((String) action.getValue(Action.NAME)); - menuItem.addActionListener(action); - return menuItem; - } - - private void addBehaviour() { - trayIcon.addActionListener(controlPanelAction); - } - - private void installComponents() throws Throwable { - SystemTray.getSystemTray().add(trayIcon); - } - - public void uninstallComponents() { - try { - SystemTray.getSystemTray().remove(trayIcon); - } catch (Throwable x) { - System.err.println("Disabling tray support."); - } - } - - private void setTrayImage(Image image) { - if (trayIcon.getImage() != image) { - trayIcon.setImage(image); - } - } - - public void notifyDeploymentStatus(DeploymentStatus deploymentStatus) { - setTrayImage(deploymentStatus == null ? stoppedImage : startedImage); - } - - public void notifyServiceStatus(String serviceStatus) { - // Nothing here, but could potentially change tray icon and menu. - } -} |