diff --git a/java/src/mimis/Application.java b/java/src/mimis/Application.java index 09330b5..88da586 100644 --- a/java/src/mimis/Application.java +++ b/java/src/mimis/Application.java @@ -4,6 +4,7 @@ import mimis.event.EventHandler; import mimis.event.Task; import mimis.exception.WorkerException; import mimis.exception.worker.DeactivateException; +import mimis.manager.Exitable; import mimis.manager.Titled; import mimis.value.Action; diff --git a/java/src/mimis/Device.java b/java/src/mimis/Device.java index 2d7c23f..affdde9 100644 --- a/java/src/mimis/Device.java +++ b/java/src/mimis/Device.java @@ -8,6 +8,7 @@ import mimis.macro.Sequence; import mimis.macro.SequenceListener; import mimis.macro.State; import mimis.macro.state.Press; +import mimis.manager.Exitable; import mimis.manager.Titled; public abstract class Device extends EventHandler implements Titled, Exitable { diff --git a/java/src/mimis/Manager.java b/java/src/mimis/Manager.java index d4d74a4..0192eb6 100644 --- a/java/src/mimis/Manager.java +++ b/java/src/mimis/Manager.java @@ -6,6 +6,7 @@ import java.util.Map; import javax.swing.JButton; +import mimis.manager.Exitable; import mimis.manager.SelectButton; import mimis.manager.Titled; diff --git a/java/src/mimis/event/EventHandler.java b/java/src/mimis/event/EventHandler.java index b4e1ddf..14ab1bd 100644 --- a/java/src/mimis/event/EventHandler.java +++ b/java/src/mimis/event/EventHandler.java @@ -21,8 +21,18 @@ public abstract class EventHandler extends EventListener { protected void feedback(Feedback feedback) {} protected void task(Task task) { - action(task.getAction()); + Action action = task.getAction(); + switch (task.getSignal()) { + case BEGIN: + begin(action); + break; + case END: + end(action); + break; + } } + protected void begin(Action action) {} + protected void end(Action action) {} protected void action(Action action) {} } \ No newline at end of file diff --git a/java/src/mimis/event/Task.java b/java/src/mimis/event/Task.java index ae5cadd..f4ee9c6 100644 --- a/java/src/mimis/event/Task.java +++ b/java/src/mimis/event/Task.java @@ -2,21 +2,34 @@ package mimis.event; import mimis.Event; import mimis.value.Action; +import mimis.value.Signal; import mimis.value.Target; public class Task extends Event { - protected Action action; + public static Target TARGET = Target.SELF; + public static Signal SIGNAL = Signal.END; - public Task(Target target, Action action) { - super(target); - this.action = action; - } + protected Action action; + protected Signal signal; public Task(Action action) { - this(Target.SELF, action); + this(TARGET, action); + } + + public Task(Target target, Action action) { + this(target, action, SIGNAL); + } + + public Task(Target target, Action action, Signal signal) { + super(target); + this.action = action; } public Action getAction() { return action; } + + public Signal getSignal() { + return signal; + } } diff --git a/java/src/mimis/Exitable.java b/java/src/mimis/manager/Exitable.java similarity index 66% rename from java/src/mimis/Exitable.java rename to java/src/mimis/manager/Exitable.java index 8ead9d4..73ce2a2 100644 --- a/java/src/mimis/Exitable.java +++ b/java/src/mimis/manager/Exitable.java @@ -1,4 +1,4 @@ -package mimis; +package mimis.manager; public interface Exitable { public void stop();