\ru\ifmo\alarm\controlled\LightDiode.java
|
package ru.ifmo.alarm.controlled;
import java.util.Timer;
import java.util.TimerTask;
import ru.ifmo.alarm.gui.AlarmFrame;
import com.evelopers.unimod.runtime.ControlledObject;
import com.evelopers.unimod.runtime.context.StateMachineContext;
public class LightDiode implements ControlledObject {
/**
* This is a flag controling turning on/off light diode blinking
*/
protected static boolean isOn = false;
/**
* This is a timer for controling light diode blinking periode
*/
private Timer timer;
public static boolean isOn() {
return isOn;
}
/**
* @unimod.action.descr start blinking
*/
public void z1(StateMachineContext context) {
TimerTask timerTask = new TimerTask()
{
public void run()
{
isOn = !isOn;
AlarmFrame.alarmFrame.repaint();
}
};
timer = new Timer(true);
// start blinking with 0.5 sec period
timer.schedule(timerTask, 0, 500);
}
/**
* @unimod.action.descr stop blinking
*/
public void z2(StateMachineContext context) {
if (timer != null)
{
timer.cancel();
}
isOn = false;
AlarmFrame.alarmFrame.repaint();
}
}