mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-01 03:29:05 +01:00
76 lines
2.1 KiB
Java
Executable File
76 lines
2.1 KiB
Java
Executable File
/**
|
|
* EGroupware - Notifications Java Desktop App
|
|
*
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
* @package notifications
|
|
* @subpackage jdesk
|
|
* @link http://www.egroupware.org
|
|
* @author Stefan Werfling <stefan.werfling@hw-softwareentwicklung.de>
|
|
* @author Maik Hüttner <maik.huettner@hw-softwareentwicklung.de>
|
|
*/
|
|
|
|
package egroupwaretray;
|
|
|
|
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
|
|
import java.util.TimerTask;
|
|
import javax.swing.event.EventListenerList;
|
|
|
|
/**
|
|
* jegwTaskCoundownViewer
|
|
*
|
|
* @author Stefan Werfling <stefan.werfling@hw-softwareentwicklung.de>
|
|
*/
|
|
public class jegwTaskCoundownViewer extends TimerTask
|
|
{
|
|
protected EventListenerList listenerList = new EventListenerList();
|
|
|
|
//verbleibende Millisekunden
|
|
private int timeInMs = 0;
|
|
//countdown Zeit in Millisekunden
|
|
private int countDownMs = 10000;
|
|
|
|
public void addActionListener(ActionListener l)
|
|
{
|
|
listenerList.add(ActionListener.class, l);
|
|
}
|
|
|
|
protected void action(Object o, String command)
|
|
{
|
|
Object[] listeners = listenerList.getListenerList();
|
|
|
|
ActionEvent e = new ActionEvent(o, ActionEvent.ACTION_PERFORMED, command);
|
|
|
|
// Process the listeners last to first, notifying
|
|
// those that are interested in this event
|
|
for (int i = listeners.length-2; i>=0; i-=2) {
|
|
if (listeners[i]==ActionListener.class) {
|
|
((ActionListener)listeners[i+1]).actionPerformed(e);
|
|
}
|
|
}
|
|
}
|
|
|
|
public void setCounDown(int ms)
|
|
{
|
|
this.countDownMs = ms;
|
|
}
|
|
|
|
@Override
|
|
public void run()
|
|
{
|
|
//Falls Gesamtzeit - vergangener Zeit > 0
|
|
if( this.countDownMs - this.timeInMs > 0 )
|
|
{
|
|
//erhöhe Zeitcounter um 1000 ms
|
|
this.timeInMs += 1000;
|
|
//Zeit in Sekunden Updaten
|
|
|
|
this.action(this, " " + ( (countDownMs - timeInMs) / 1000 ) );
|
|
}
|
|
else
|
|
{
|
|
//Falls Gesamtzeit - vergangener Zeit <= 0
|
|
this.cancel();
|
|
}
|
|
}
|
|
} |