Author: chatellier
Date: 2009-09-02 07:42:30 +0000 (Wed, 02 Sep 2009)
New Revision: 2562
Modified:
isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java
Log:
Update documentation.
Prepare for multi simulation tray support (not done yet).
Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java
===================================================================
--- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java 2009-09-01 09:55:25 UTC (rev 2561)
+++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisTray.java 2009-09-02 07:42:30 UTC (rev 2562)
@@ -23,6 +23,7 @@
import java.awt.AWTException;
import java.awt.SystemTray;
+import java.awt.TrayIcon;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
@@ -38,7 +39,7 @@
import fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener;
/**
- * IsisTray.java
+ * Isis tray icon implementation.
*
* Created: 6 janv. 07 13:52:25
*
@@ -54,9 +55,13 @@
/** to use log facility, just put in your code: log.info(\"...\"); */
protected static final Log log = LogFactory.getLog(IsisTray.class);
+ /** Non running icon. */
protected static final ImageIcon TRAY_IMAGE_STOP = Resource.getIcon("/images/BulbR.gif");
+
+ /** Running icon. */
protected static final ImageIcon TRAY_IMAGE_START = Resource.getIcon("/images/BulbG.gif");
+ /** Non running simulation tooltip text. */
private static final String NO_SIMULATION_TEXT = n_("isisfish.tray.simulation.no");
/**
@@ -68,12 +73,32 @@
*/
private static final String SIMULATION_TEXT = n_("isisfish.tray.simulation");
+ /** System tray tooltip when multiple simulation are running. */
+ private static final String MULTI_SIMULATION_TEXT = n_("isisfish.tray.simulation.multi");
+
+ /** Tray implementation instance. */
private static IsisTray instance = null;
-
+
+ /**
+ * Change image.
+ *
+ * @param image new image
+ */
public abstract void setImage(ImageIcon image);
+ /**
+ * Change tooltip.
+ *
+ * @param text new tooltip
+ */
public abstract void setToolTip(String text);
+ /**
+ * Factory method to get instance.
+ *
+ * @return tray implementation
+ * @see SystemTray#isSupported()
+ */
public static IsisTray getInstance() {
if (instance == null) {
if (AWTSystemTray.isSupported()) {
@@ -82,7 +107,7 @@
instance = new DummySystemTray();
}
if (log.isInfoEnabled()) {
- log.info("Use System tray: " + instance.getClass().getName());
+ log.info("Use system tray: " + instance.getClass().getName());
}
instance.setToolTip(_(NO_SIMULATION_TEXT));
SimulationService.getService().addSimulationServiceListener(
@@ -91,9 +116,11 @@
return instance;
}
+
/*
- * @see fr.ifremer.isisfish.simulator.SimulationQueueListener#simulationStart(fr.ifremer.isisfish.simulator.SimulationQueueEvent)
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener#simulationStart(fr.ifremer.isisfish.simulator.launcher.SimulationService, fr.ifremer.isisfish.simulator.launcher.SimulationJob)
*/
+ @Override
public void simulationStart(SimulationService simService, SimulationJob job) {
SimulationControl control = job.getItem().getControl();
control.addPropertyChangeListener(this);
@@ -104,8 +131,9 @@
}
/*
- * @see fr.ifremer.isisfish.simulator.SimulationQueueListener#simulationStop(fr.ifremer.isisfish.simulator.SimulationQueueEvent)
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener#simulationStop(fr.ifremer.isisfish.simulator.launcher.SimulationService, fr.ifremer.isisfish.simulator.launcher.SimulationJob)
*/
+ @Override
public void simulationStop(SimulationService simService, SimulationJob job) {
SimulationControl control = job.getItem().getControl();
control.removePropertyChangeListener(this);
@@ -113,6 +141,10 @@
getInstance().setImage(TRAY_IMAGE_STOP);
}
+ /*
+ * @see fr.ifremer.isisfish.simulator.launcher.SimulationServiceListener#clearJobDone(fr.ifremer.isisfish.simulator.launcher.SimulationService)
+ */
+ @Override
public void clearJobDone(SimulationService simService) {
// nothing to do
}
@@ -120,6 +152,7 @@
/*
* @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
*/
+ @Override
public void propertyChange(PropertyChangeEvent evt) {
SimulationControl control = (SimulationControl) evt.getSource();
getInstance().setToolTip(
@@ -127,6 +160,12 @@
control.getProgressMax()));
}
+ /**
+ * Empty system tray implementation.
+ *
+ * All method are empty, do nothing, for system without system
+ * tray implementation.
+ */
static class DummySystemTray extends IsisTray {
/*
@@ -145,10 +184,24 @@
}
+ /**
+ * AWT system tray implementation.
+ *
+ * @see SystemTray
+ */
static class AWTSystemTray extends IsisTray {
- protected java.awt.TrayIcon trayIcon = null;
-
- static public boolean isSupported() {
+
+ /** AWT tray icon. */
+ protected TrayIcon trayIcon = null;
+
+ /**
+ * Is swt system try supported.
+ *
+ * @return {@code true} if awt systray is supported
+ *
+ * @see SystemTray#isSupported()
+ */
+ public static boolean isSupported() {
boolean result = SystemTray.isSupported();
return result;
}
@@ -188,7 +241,7 @@
/// ... add other items
// construct a TrayIcon
trayIcon = new java.awt.TrayIcon(TRAY_IMAGE_STOP.getImage(),
- "Tray Demo", null);
+ _(NO_SIMULATION_TEXT), null);
trayIcon.setImageAutoSize(true);
// set the TrayIcon properties
//trayIcon.addActionListener(trayListener);