\ru\ifmo\alarm\event\RemoteControl.java
|
package ru.ifmo.alarm.event;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import ru.ifmo.alarm.gui.AlarmFrame;
import com.evelopers.common.exception.CommonException;
import com.evelopers.unimod.core.stateworks.Event;
import com.evelopers.unimod.runtime.EventProvider;
import com.evelopers.unimod.runtime.ModelEngine;
import com.evelopers.unimod.runtime.context.StateMachineContextImpl;
public class RemoteControl implements EventProvider {
private ModelEngine engine; //global so that ActionListener could access it
/**
* @unimod.event.descr button 1 pressed
*/
public static final String E11 = "e11"; //turns alarm on
/**
* @unimod.event.descr button 2 pressed
*/
public static final String E12 = "e12"; //turns alarm off
/**
* @unimod.event.descr button 3 pressed
*/
public static final String E13 = "e13"; //additional button
public void init(ModelEngine engine) throws CommonException {
// for actionPerformed method to access engine
this.engine = engine;
JButton button1 = AlarmFrame.alarmFrame.getRemoteControlPanel().getButton1();
JButton button2 = AlarmFrame.alarmFrame.getRemoteControlPanel().getButton2();
JButton button3 = AlarmFrame.alarmFrame.getRemoteControlPanel().getButton3();
button1.addActionListener(new ActionListener() { //if button1 was pressed then create event E1
public void actionPerformed(ActionEvent e) {
RemoteControl.this.engine.getEventManager().handle(
new Event(E11), StateMachineContextImpl.create());
}
});
button2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
RemoteControl.this.engine.getEventManager().handle(
new Event(E12), StateMachineContextImpl.create());
}
});
button3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
RemoteControl.this.engine.getEventManager().handle(
new Event(E13), StateMachineContextImpl.create());
}
});
}
public void dispose() {
AlarmFrame.alarmFrame.dispose(); //close window when the state machine stops
}
}