diff --git a/java/src/pm/Main.java b/java/src/pm/Main.java index 91e8a46..1d2538c 100644 --- a/java/src/pm/Main.java +++ b/java/src/pm/Main.java @@ -9,12 +9,17 @@ import pm.application.Application; import pm.device.Device; import pm.device.example.Example; import pm.event.Event; +import pm.event.ApplicationEvent; public class Main { + public static final int SLEEP = 100; + ArrayList applicationList; ArrayList deviceList; Queue eventQueue; + Application currentApplication; + public Main() { applicationList = new ArrayList(); deviceList = new ArrayList(); @@ -39,7 +44,28 @@ public class Main { public void start() { addDevice(new Example(eventQueue)); - addApplication(new Voorbeeld()); + Application application = new Voorbeeld(); + addApplication(application); + currentApplication = application; + } + + public void run() { + while (true) { + if (eventQueue.isEmpty()) { + try { + Thread.sleep(SLEEP); + } catch (InterruptedException e) {} + } else { + Event event = eventQueue.poll(); + if (event instanceof ApplicationEvent) { + try { + currentApplication.invoke(event.getAction()); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } } public static void main(String[] args) { diff --git a/java/src/pm/device/example/Example.java b/java/src/pm/device/example/Example.java index 00574d6..b407a8c 100644 --- a/java/src/pm/device/example/Example.java +++ b/java/src/pm/device/example/Example.java @@ -4,6 +4,7 @@ import java.util.Queue; import pm.action.Action; import pm.device.Device; +import pm.event.ApplicationEvent; import pm.event.Event; public class Example extends Device { @@ -12,7 +13,7 @@ public class Example extends Device { } public void initialise() { - Event event = new Event(Action.START); + Event event = new ApplicationEvent(Action.START); eventQueue.add(event); } } diff --git a/java/src/pm/event/ApplicationEvent.java b/java/src/pm/event/ApplicationEvent.java new file mode 100644 index 0000000..39665cc --- /dev/null +++ b/java/src/pm/event/ApplicationEvent.java @@ -0,0 +1,9 @@ +package pm.event; + +import pm.action.Action; + +public class ApplicationEvent extends Event { + public ApplicationEvent(Action action) { + super(action); + } +} diff --git a/java/src/pm/event/Event.java b/java/src/pm/event/Event.java index d153005..260fd6f 100644 --- a/java/src/pm/event/Event.java +++ b/java/src/pm/event/Event.java @@ -2,10 +2,14 @@ package pm.event; import pm.action.Action; -public class Event { +public abstract class Event { protected Action action; - + public Event(Action action) { this.action = action; } + + public Action getAction() { + return action; + } }