aboutsummaryrefslogtreecommitdiff
path: root/subsonic-booter/src/main/java/net/sourceforge/subsonic/booter/agent/TrayController.java
diff options
context:
space:
mode:
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.java125
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.
- }
-}