+++ /dev/null
-package tim.prune.gui;
-
-import java.awt.FlowLayout;
-
-import javax.swing.BorderFactory;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import tim.prune.DataSubscriber;
-
-/**
- * Class to act as a status bar for the application
- */
-public class StatusBar extends JPanel implements Runnable, DataSubscriber
-{
- /** Label for displaying the text */
- private JLabel _label = null;
- /** timer for clearing the status */
- private long _timer = 0L;
- /** thread for clearing the status */
- private Thread _thread = null;
-
- /** Number of milliseconds until status text cleared */
- private static final long DEFAULT_CLEAR_INTERVAL = 1000L * 4;
-
-
- /**
- * Constructor
- */
- public StatusBar()
- {
- setLayout(new FlowLayout(FlowLayout.LEFT, 0, 0));
- setBorder(BorderFactory.createLoweredBevelBorder());
- _label = new JLabel(" ");
- _label.setFont(_label.getFont().deriveFont(8));
- add(_label);
- }
-
- /**
- * Run method, to check if text should be deleted
- * @see java.lang.Runnable#run()
- */
- public void run()
- {
- while (System.currentTimeMillis() < _timer) {
- try {
- Thread.sleep(500);
- }
- catch (InterruptedException ie) {} // ignore
- }
- _label.setText(" ");
- }
-
- /**
- * Accept notification that an action has been completed
- * @param inMessage message to display
- */
- public void actionCompleted(String inMessage)
- {
- _label.setText(" " + inMessage);
- _timer = System.currentTimeMillis() + DEFAULT_CLEAR_INTERVAL;
- // If necessary, start a new checker thread
- if (_thread == null || !_thread.isAlive()) {
- _thread = new Thread(this);
- _thread.start();
- }
- }
-
- /**
- * Ignore signals about updated data
- * @param inUpdateType update type
- */
- public void dataUpdated(byte inUpdateType)
- {
- }
-}