From 0e8c2129999df5b454351b52b8edbe2ebe3188a7 Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Mon, 7 Feb 2011 18:42:18 +0000 Subject: [PATCH] Aantal reorganisaties om implementatie van macro's ondubbelzinnig duidelijk te maken. --- java/src/pm/{device/macro => }/Button.java | 2 +- java/src/pm/Macro.java | 15 +++++ java/src/pm/Main.java | 11 ++-- java/src/pm/Target.java | 4 +- .../pm/action/{Action.java => Actions.java} | 11 ++-- java/src/pm/action/Targets.java | 5 ++ java/src/pm/device/Device.java | 10 ++-- java/src/pm/device/MacroListener.java | 10 +++- java/src/pm/device/example/ExampleDevice.java | 4 +- .../javainput/extreme3d/Extreme3DButton.java | 2 +- .../javainput/extreme3d/Extreme3DDevice.java | 7 +-- .../extreme3d/Extreme3DDirection.java | 2 +- java/src/pm/device/macro/Action.java | 5 -- java/src/pm/device/macro/Actions.java | 57 ------------------- java/src/pm/device/macro/Macro.java | 5 -- java/src/pm/device/macro/action/Hold.java | 12 ---- java/src/pm/device/macro/action/Press.java | 12 ---- java/src/pm/device/macro/action/Release.java | 12 ---- java/src/pm/event/Event.java | 21 ------- java/src/pm/event/Target.java | 5 -- java/src/pm/macro/Event.java | 7 +++ java/src/pm/macro/event/Hold.java | 12 ++++ java/src/pm/macro/event/Press.java | 12 ++++ java/src/pm/macro/event/Release.java | 12 ++++ 24 files changed, 95 insertions(+), 160 deletions(-) rename java/src/pm/{device/macro => }/Button.java (50%) create mode 100644 java/src/pm/Macro.java rename java/src/pm/action/{Action.java => Actions.java} (74%) create mode 100644 java/src/pm/action/Targets.java delete mode 100644 java/src/pm/device/macro/Action.java delete mode 100644 java/src/pm/device/macro/Actions.java delete mode 100644 java/src/pm/device/macro/Macro.java delete mode 100644 java/src/pm/device/macro/action/Hold.java delete mode 100644 java/src/pm/device/macro/action/Press.java delete mode 100644 java/src/pm/device/macro/action/Release.java delete mode 100644 java/src/pm/event/Event.java delete mode 100644 java/src/pm/event/Target.java create mode 100644 java/src/pm/macro/Event.java create mode 100644 java/src/pm/macro/event/Hold.java create mode 100644 java/src/pm/macro/event/Press.java create mode 100644 java/src/pm/macro/event/Release.java diff --git a/java/src/pm/device/macro/Button.java b/java/src/pm/Button.java similarity index 50% rename from java/src/pm/device/macro/Button.java rename to java/src/pm/Button.java index e7aff2a..fc69d72 100644 --- a/java/src/pm/device/macro/Button.java +++ b/java/src/pm/Button.java @@ -1,4 +1,4 @@ -package pm.device.macro; +package pm; public interface Button { diff --git a/java/src/pm/Macro.java b/java/src/pm/Macro.java new file mode 100644 index 0000000..0d3acbf --- /dev/null +++ b/java/src/pm/Macro.java @@ -0,0 +1,15 @@ +package pm; + +import pm.macro.Event; + +public class Macro { + protected Event[] eventArray; + + public Macro(Event... eventArray) { + this.eventArray = eventArray; + } + + public int count() { + return eventArray.length; + } +} \ No newline at end of file diff --git a/java/src/pm/Main.java b/java/src/pm/Main.java index a27a94c..0936e99 100644 --- a/java/src/pm/Main.java +++ b/java/src/pm/Main.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; -import pm.action.Action; +import pm.action.Actions; import pm.application.Application; import pm.application.voorbeeld.VoorbeeldApplication; import pm.device.Device; @@ -19,16 +19,16 @@ public class Main extends Target { ArrayList applicationList; ArrayList deviceList; - Queue actionQueue; + Queue actionQueue; boolean run; Application currentApplication; - + public Main() { applicationList = new ArrayList(); //applicationList.iterator(); deviceList = new ArrayList(); - actionQueue = new ConcurrentLinkedQueue(); + actionQueue = new ConcurrentLinkedQueue(); //JavaInputService.initialize(); Device.initialise(actionQueue); } @@ -74,12 +74,11 @@ public class Main extends Target { Thread.sleep(SLEEP); } catch (InterruptedException e) {} } else { - Action action = actionQueue.poll(); + Actions action = actionQueue.poll(); Target target; switch (action.getTarget()) { case MAIN: target = this; - invoke(action); break; case APPLICATION: target = currentApplication; diff --git a/java/src/pm/Target.java b/java/src/pm/Target.java index a496e1d..357e494 100644 --- a/java/src/pm/Target.java +++ b/java/src/pm/Target.java @@ -2,12 +2,12 @@ package pm; import java.lang.reflect.InvocationTargetException; -import pm.action.Action; +import pm.action.Actions; import pm.exception.ActionException; import pm.exception.action.InvokeActionException; public abstract class Target { - public void invoke(Action action) throws ActionException { + public void invoke(Actions action) throws ActionException { try { action.getMethod(this).invoke(this); return; diff --git a/java/src/pm/action/Action.java b/java/src/pm/action/Actions.java similarity index 74% rename from java/src/pm/action/Action.java rename to java/src/pm/action/Actions.java index 20a7914..c3d8f00 100644 --- a/java/src/pm/action/Action.java +++ b/java/src/pm/action/Actions.java @@ -2,26 +2,25 @@ package pm.action; import java.lang.reflect.Method; -import pm.event.Target; import pm.exception.action.NotImplementedActionException; -public enum Action { +public enum Actions { START ("start"), TEST ("test"), EXIT ("exit"); protected String action; - protected Target target; + protected Targets target; - Action(String action) { + Actions(String action) { this.action = action; } - public void setTarget(Target target) { + public void setTarget(Targets target) { this.target = target; } - public Target getTarget() { + public Targets getTarget() { return target; } diff --git a/java/src/pm/action/Targets.java b/java/src/pm/action/Targets.java new file mode 100644 index 0000000..2fd2090 --- /dev/null +++ b/java/src/pm/action/Targets.java @@ -0,0 +1,5 @@ +package pm.action; + +public enum Targets { + MAIN, DEVICE, APPLICATION; +} \ No newline at end of file diff --git a/java/src/pm/device/Device.java b/java/src/pm/device/Device.java index b6e8552..6512022 100644 --- a/java/src/pm/device/Device.java +++ b/java/src/pm/device/Device.java @@ -2,11 +2,11 @@ package pm.device; import java.util.Queue; -import pm.action.Action; -import pm.event.Target; +import pm.action.Actions; +import pm.action.Targets; public abstract class Device { - protected static Queue actionQueue; + protected static Queue actionQueue; protected MacroListener macroListener; public Device() { @@ -14,12 +14,12 @@ public abstract class Device { macroListener.start(); } - public void addAction(Action action, Target target) { + public void addAction(Actions action, Targets target) { action.setTarget(target); actionQueue.add(action); } - public static void initialise(Queue actionQueue) { + public static void initialise(Queue actionQueue) { Device.actionQueue = actionQueue; } diff --git a/java/src/pm/device/MacroListener.java b/java/src/pm/device/MacroListener.java index cebb851..c7f4ecd 100644 --- a/java/src/pm/device/MacroListener.java +++ b/java/src/pm/device/MacroListener.java @@ -1,9 +1,13 @@ package pm.device; -import pm.device.macro.Macro; +import pm.Macro; + +import pm.action.Actions; +import pm.action.Targets; + public class MacroListener extends Thread { - /*public void add(Macro macro, Action action, Target target) { + public void add(Macro macro, Actions action, Targets target) { - }*/ + } } diff --git a/java/src/pm/device/example/ExampleDevice.java b/java/src/pm/device/example/ExampleDevice.java index 5ec11a8..3fb3e2e 100644 --- a/java/src/pm/device/example/ExampleDevice.java +++ b/java/src/pm/device/example/ExampleDevice.java @@ -1,8 +1,8 @@ package pm.device.example; -import pm.action.Action; +import pm.action.Actions; +import pm.action.Targets; import pm.device.Device; -import pm.event.Target; public class ExampleDevice extends Device { public void start() { diff --git a/java/src/pm/device/javainput/extreme3d/Extreme3DButton.java b/java/src/pm/device/javainput/extreme3d/Extreme3DButton.java index 7903e55..2d042e0 100644 --- a/java/src/pm/device/javainput/extreme3d/Extreme3DButton.java +++ b/java/src/pm/device/javainput/extreme3d/Extreme3DButton.java @@ -1,7 +1,7 @@ package pm.device.javainput.extreme3d; import de.hardcode.jxinput.event.JXInputButtonEvent; -import pm.device.macro.Button; +import pm.Button; import pm.exception.event.UnknownButtonException; public enum Extreme3DButton implements Button { diff --git a/java/src/pm/device/javainput/extreme3d/Extreme3DDevice.java b/java/src/pm/device/javainput/extreme3d/Extreme3DDevice.java index 0ad9d1d..b48ea53 100644 --- a/java/src/pm/device/javainput/extreme3d/Extreme3DDevice.java +++ b/java/src/pm/device/javainput/extreme3d/Extreme3DDevice.java @@ -1,11 +1,10 @@ package pm.device.javainput.extreme3d; -import de.hardcode.jxinput.Button; -import de.hardcode.jxinput.Directional; import de.hardcode.jxinput.event.JXInputAxisEvent; import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; +import pm.Macro; import pm.device.javainput.JavaInputDevice; import pm.exception.DeviceException; import pm.exception.EventException; @@ -21,13 +20,13 @@ public class Extreme3DDevice extends JavaInputDevice { public void start() { super.start(); - /*macroListener.addMacro( + macroListener.addMacro( new Macro( new Hold(Button.A), new Press(Button.B), new Press(Button.TWO), new Release(Button.A)), - Action.EXIT, Target.APPLICATION));*/ + Action.EXIT, Target.APPLICATION)); } public void processEvent(JXInputAxisEvent event) { diff --git a/java/src/pm/device/javainput/extreme3d/Extreme3DDirection.java b/java/src/pm/device/javainput/extreme3d/Extreme3DDirection.java index ae33399..6e41e50 100644 --- a/java/src/pm/device/javainput/extreme3d/Extreme3DDirection.java +++ b/java/src/pm/device/javainput/extreme3d/Extreme3DDirection.java @@ -1,7 +1,7 @@ package pm.device.javainput.extreme3d; import de.hardcode.jxinput.event.JXInputDirectionalEvent; -import pm.device.macro.Button; +import pm.Button; import pm.exception.event.UnknownDirectionException; public enum Extreme3DDirection implements Button { diff --git a/java/src/pm/device/macro/Action.java b/java/src/pm/device/macro/Action.java deleted file mode 100644 index 4e84392..0000000 --- a/java/src/pm/device/macro/Action.java +++ /dev/null @@ -1,5 +0,0 @@ -package pm.device.macro; - -public interface Action { - public Button button = null; -} diff --git a/java/src/pm/device/macro/Actions.java b/java/src/pm/device/macro/Actions.java deleted file mode 100644 index f6be293..0000000 --- a/java/src/pm/device/macro/Actions.java +++ /dev/null @@ -1,57 +0,0 @@ -package pm.device.macro; - -import java.util.ArrayList; - -import wiitunes.interaction.macro.Action; -import wiitunes.interaction.macro.Button; -import wiitunes.interaction.macro.Buttons; -import wiitunes.interaction.macro.Combination; -import wiitunes.interaction.macro.action.Hold; -import wiitunes.interaction.macro.action.Press; -import wiitunes.interaction.macro.action.Release; - -public class Actions { - protected Combination[] combinationArray; - - public Actions(Action... actionArray) { - ArrayList combinationList = new ArrayList(); - Buttons heldButtons = new Buttons(); - for (Action action : actionArray) { - if (action instanceof Press) { - Button button = ((Press) action).button; - Buttons buttons = new Buttons(button); - combinationList.add(new Combination(buttons, null, heldButtons)); - combinationList.add(new Combination(null, buttons, heldButtons)); - } else if (action instanceof Release) { - Button button = ((Release) action).button; - Buttons buttons = new Buttons(button); - heldButtons = heldButtons.clone(); - heldButtons.remove(button); - combinationList.add(new Combination(null, buttons, heldButtons)); - } else if (action instanceof Hold) { - Button button = ((Hold) action).button; - Buttons buttons = new Buttons(button); - combinationList.add(new Combination(buttons, null, heldButtons)); - heldButtons = heldButtons.clone(); - heldButtons.add(button); - } - } - combinationArray = (Combination[]) combinationList.toArray(new Combination[0]); - } - - public Combination get(int step) { - return combinationArray[step]; - } - - public int count() { - return combinationArray.length; - } - - public String toString() { - String string = String.format("Gesture contains %d actions:\n", combinationArray.length);; - for (Combination combination : combinationArray) { - string += String.format("> %s\n", combination); - } - return string; - } -} \ No newline at end of file diff --git a/java/src/pm/device/macro/Macro.java b/java/src/pm/device/macro/Macro.java deleted file mode 100644 index 248a6d3..0000000 --- a/java/src/pm/device/macro/Macro.java +++ /dev/null @@ -1,5 +0,0 @@ -package pm.device.macro; - -public class Macro { - -} diff --git a/java/src/pm/device/macro/action/Hold.java b/java/src/pm/device/macro/action/Hold.java deleted file mode 100644 index a3a75f6..0000000 --- a/java/src/pm/device/macro/action/Hold.java +++ /dev/null @@ -1,12 +0,0 @@ -package pm.device.macro.action; - -import pm.device.macro.Action; -import pm.device.macro.Button; - -public class Hold implements Action { - public Button button; - - public Hold(Button button) { - this.button = button; - } -} \ No newline at end of file diff --git a/java/src/pm/device/macro/action/Press.java b/java/src/pm/device/macro/action/Press.java deleted file mode 100644 index 71aa565..0000000 --- a/java/src/pm/device/macro/action/Press.java +++ /dev/null @@ -1,12 +0,0 @@ -package pm.device.macro.action; - -import pm.device.macro.Action; -import pm.device.macro.Button; - -public class Press implements Action { - public Button button; - - public Press(Button button) { - this.button = button; - } -} diff --git a/java/src/pm/device/macro/action/Release.java b/java/src/pm/device/macro/action/Release.java deleted file mode 100644 index c41a74d..0000000 --- a/java/src/pm/device/macro/action/Release.java +++ /dev/null @@ -1,12 +0,0 @@ -package pm.device.macro.action; - -import pm.device.macro.Action; -import pm.device.macro.Button; - -public class Release implements Action { - public Button button; - - public Release(Button button) { - this.button = button; - } -} diff --git a/java/src/pm/event/Event.java b/java/src/pm/event/Event.java deleted file mode 100644 index d14373d..0000000 --- a/java/src/pm/event/Event.java +++ /dev/null @@ -1,21 +0,0 @@ -package pm.event; - -import pm.action.Action; - -public class Event { - protected Target type; - protected Action action; - - public Event(Target type, Action action) { - this.type = type; - this.action = action; - } - - public Target getType() { - return type; - } - - public Action getAction() { - return action; - } -} diff --git a/java/src/pm/event/Target.java b/java/src/pm/event/Target.java deleted file mode 100644 index 2c892cf..0000000 --- a/java/src/pm/event/Target.java +++ /dev/null @@ -1,5 +0,0 @@ -package pm.event; - -public enum Target { - MAIN, DEVICE, APPLICATION; -} diff --git a/java/src/pm/macro/Event.java b/java/src/pm/macro/Event.java new file mode 100644 index 0000000..40d1879 --- /dev/null +++ b/java/src/pm/macro/Event.java @@ -0,0 +1,7 @@ +package pm.macro; + +import pm.Button; + +public interface Event { + public Button button = null; +} diff --git a/java/src/pm/macro/event/Hold.java b/java/src/pm/macro/event/Hold.java new file mode 100644 index 0000000..8e2f4ca --- /dev/null +++ b/java/src/pm/macro/event/Hold.java @@ -0,0 +1,12 @@ +package pm.macro.event; + +import pm.Button; +import pm.macro.Event; + +public class Hold implements Event { + public Button button; + + public Hold(Button button) { + this.button = button; + } +} \ No newline at end of file diff --git a/java/src/pm/macro/event/Press.java b/java/src/pm/macro/event/Press.java new file mode 100644 index 0000000..a564b7d --- /dev/null +++ b/java/src/pm/macro/event/Press.java @@ -0,0 +1,12 @@ +package pm.macro.event; + +import pm.Button; +import pm.macro.Event; + +public class Press implements Event { + public Button button; + + public Press(Button button) { + this.button = button; + } +} diff --git a/java/src/pm/macro/event/Release.java b/java/src/pm/macro/event/Release.java new file mode 100644 index 0000000..fc72062 --- /dev/null +++ b/java/src/pm/macro/event/Release.java @@ -0,0 +1,12 @@ +package pm.macro.event; + +import pm.Button; +import pm.macro.Event; + +public class Release implements Event { + public Button button; + + public Release(Button button) { + this.button = button; + } +}