From 6550062bc1516ea3a11455746447124bb1b660cb Mon Sep 17 00:00:00 2001 From: Rik Veenboer Date: Sat, 12 Feb 2011 16:30:17 +0000 Subject: [PATCH] Action en Target systeem omgepast naar rudimentair Task systeem om Continuous Tasks straks mogelijk te maken. Momenteel zijn de aanpassingen alleen doorgevoerd in de JIntellitypeDevice en ExampleApplication. --- java/src/pm/Action.java | 24 ++------ java/src/pm/Application.java | 10 +++- java/src/pm/{device => }/Device.java | 18 +++--- java/src/pm/Main.java | 58 ++++++++++--------- java/src/pm/Task.java | 19 ++++++ java/src/pm/action/ActionProvider.java | 17 ------ .../example/ExampleApplication.java | 5 -- java/src/pm/device/example/ExampleDevice.java | 2 +- java/src/pm/device/gui/GUIDevice.java | 2 +- java/src/pm/device/gui/GUIDeviceUI.java | 2 +- .../pm/device/javainput/JavaInputDevice.java | 2 +- .../jintellitype/JIntellitypeDevice.java | 9 +-- .../pm/device/textinput/TextinputDevice.java | 2 +- java/src/pm/device/wiimote/WiimoteDevice.java | 2 +- java/src/pm/macro/MacroListener.java | 18 +++--- .../TaskListener.java} | 23 ++++---- java/src/pm/task/TaskProvider.java | 17 ++++++ 17 files changed, 118 insertions(+), 112 deletions(-) rename java/src/pm/{device => }/Device.java (58%) create mode 100644 java/src/pm/Task.java delete mode 100644 java/src/pm/action/ActionProvider.java rename java/src/pm/{action/ActionListener.java => task/TaskListener.java} (53%) create mode 100644 java/src/pm/task/TaskProvider.java diff --git a/java/src/pm/Action.java b/java/src/pm/Action.java index fdebcc7..7b90c65 100644 --- a/java/src/pm/Action.java +++ b/java/src/pm/Action.java @@ -1,7 +1,5 @@ package pm; -import pm.exception.action.TargetNotSetException; - public enum Action { START ("start"), TEST ("test"), @@ -15,25 +13,11 @@ public enum Action { REWIND ("rewind"), MUTE ("mute"), VOLUME_UP ("volumeUp"), - VOLUME_DOWN ("volumeDown"); - - - protected String action; - protected Target target; + VOLUME_DOWN ("volumeDown"); - Action(String action) { + protected String action; + + private Action(String action) { this.action = action; } - - public Action setTarget(Target target) { - this.target = target; - return this; - } - - public Target getTarget() throws TargetNotSetException { - if (target == null) { - throw new TargetNotSetException(); - } - return target; - } } diff --git a/java/src/pm/Application.java b/java/src/pm/Application.java index d938f13..0b8367b 100644 --- a/java/src/pm/Application.java +++ b/java/src/pm/Application.java @@ -1,10 +1,10 @@ package pm; -import pm.action.ActionListener; import pm.exception.application.ApplicationExitException; import pm.exception.application.ApplicationInitialiseException; +import pm.task.TaskListener; -public abstract class Application extends ActionListener { +public abstract class Application extends TaskListener { public void run() { try { initialise(); @@ -19,4 +19,10 @@ public abstract class Application extends ActionListener { public void exit() throws ApplicationExitException { stop(); } + + protected void task(Task task) { + action(task.getAction()); + } + + protected abstract void action(Action action); } \ No newline at end of file diff --git a/java/src/pm/device/Device.java b/java/src/pm/Device.java similarity index 58% rename from java/src/pm/device/Device.java rename to java/src/pm/Device.java index 84d2048..62e0c39 100644 --- a/java/src/pm/device/Device.java +++ b/java/src/pm/Device.java @@ -1,13 +1,11 @@ -package pm.device; +package pm; -import pm.Action; -import pm.Macro; -import pm.action.ActionProvider; import pm.exception.MacroException; import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceInitialiseException; import pm.macro.Event; import pm.macro.MacroListener; +import pm.task.TaskProvider; public abstract class Device { protected MacroListener macroListener; @@ -16,20 +14,20 @@ public abstract class Device { macroListener = new MacroListener(); } - public void add(Macro macro, Action action) { - macroListener.add(macro, action); + public void add(Macro macro, Task task) { + macroListener.add(macro, task); } - public void add(Event event, Action action) throws MacroException { - macroListener.add(event, action); + public void add(Event event, Task task) throws MacroException { + macroListener.add(event, task); } public void add(Event event) { macroListener.add(event); } - public void add(Action action) { - ActionProvider.add(action); + public void add(Task task) { + TaskProvider.add(task); } public void initialise() throws DeviceInitialiseException {} diff --git a/java/src/pm/Main.java b/java/src/pm/Main.java index 8d9b07b..fb82863 100644 --- a/java/src/pm/Main.java +++ b/java/src/pm/Main.java @@ -2,20 +2,19 @@ package pm; import java.util.ArrayList; -import pm.action.ActionListener; -import pm.action.ActionProvider; import pm.application.Winamp.WinampApplication; +import pm.application.example.ExampleApplication; import pm.application.iTunes.iTunesApplication; -import pm.device.Device; import pm.device.gui.GUIDevice; import pm.device.jintellitype.JIntellitypeDevice; import pm.exception.action.TargetNotSetException; import pm.exception.application.ApplicationExitException; import pm.exception.device.DeviceExitException; import pm.exception.device.DeviceInitialiseException; +import pm.task.TaskListener; import pm.util.ArrayCycle; -public class Main extends ActionListener { +public class Main extends TaskListener { //protected String[] deviceClassArray; protected ArrayCycle applicationCycle; protected ArrayList deviceList; @@ -29,20 +28,19 @@ public class Main extends ActionListener { "pm.device.wiimote.WiimoteDevice"};*/ applicationCycle = new ArrayCycle(); deviceList = new ArrayList(); - ActionProvider.initialise(actionQueue); } public void initialise() throws DeviceInitialiseException { add(new JIntellitypeDevice()); //add(new RumblepadDevice()); - add(new GUIDevice()); + //add(new GUIDevice()); for (Device device : deviceList) { device.initialise(); } - //add(new ExampleApplication()); + + add(new ExampleApplication()); //add(new WinampApplication()); - add(new iTunesApplication()); - + //add(new iTunesApplication()); //applicationCycle.next(); for (Application application : applicationCycle) { application.start(); @@ -66,25 +64,29 @@ public class Main extends ActionListener { } protected void action(Action action) { - try { - System.out.println("Action: " + action + " Target: " + action.getTarget()); - switch (action.getTarget()) { - case MAIN: - switch (action) { - case EXIT: - exit(); - break; - default: - break; - } - break; - case APPLICATION: - applicationCycle.current().add(action); - break; - default: - //throw new UnknownTargetException(); - } - } catch (TargetNotSetException e) {} + System.out.println("Main: " + action); + switch (action) { + case EXIT: + exit(); + break; + default: + break; + } + } + + protected void task(Task task) { + Action action = task.getAction(); + Target target = task.getTarget(); + System.out.println("Action: " + action + " Target: " + target); + switch (target) { + case MAIN: + action(action); + break; + case APPLICATION: + applicationCycle.current().add(task); + break; + } + } /*protected void addDevices() throws DeviceInitialiseException { diff --git a/java/src/pm/Task.java b/java/src/pm/Task.java new file mode 100644 index 0000000..6f450dd --- /dev/null +++ b/java/src/pm/Task.java @@ -0,0 +1,19 @@ +package pm; + +public class Task { + Action action; + Target target; + + public Task(Action action, Target target) { + this.action = action; + this.target = target; + } + + public Action getAction() { + return action; + } + + public Target getTarget() { + return target; + } +} diff --git a/java/src/pm/action/ActionProvider.java b/java/src/pm/action/ActionProvider.java deleted file mode 100644 index 0374a2c..0000000 --- a/java/src/pm/action/ActionProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -package pm.action; - -import java.util.Queue; - -import pm.Action; - -public class ActionProvider { - protected static Queue actionQueue; - - public static void initialise(Queue actionQueue) { - ActionProvider.actionQueue = actionQueue; - } - - public static void add(Action action) { - actionQueue.add(action); - } -} diff --git a/java/src/pm/application/example/ExampleApplication.java b/java/src/pm/application/example/ExampleApplication.java index 2c8e426..93f52bb 100644 --- a/java/src/pm/application/example/ExampleApplication.java +++ b/java/src/pm/application/example/ExampleApplication.java @@ -6,10 +6,5 @@ import pm.Application; public class ExampleApplication extends Application { protected void action(Action action) { System.out.println("ExampleApplication: " + action); - switch (action) { - case TEST: - System.out.println("test"); - break; - } } } \ No newline at end of file diff --git a/java/src/pm/device/example/ExampleDevice.java b/java/src/pm/device/example/ExampleDevice.java index a67b45b..140927b 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; +import pm.Device; import pm.Target; -import pm.device.Device; public class ExampleDevice extends Device { public void initialise() { diff --git a/java/src/pm/device/gui/GUIDevice.java b/java/src/pm/device/gui/GUIDevice.java index b306694..ecc299a 100644 --- a/java/src/pm/device/gui/GUIDevice.java +++ b/java/src/pm/device/gui/GUIDevice.java @@ -1,6 +1,6 @@ package pm.device.gui; -import pm.device.Device; +import pm.Device; public class GUIDevice extends Device { diff --git a/java/src/pm/device/gui/GUIDeviceUI.java b/java/src/pm/device/gui/GUIDeviceUI.java index 2b668c6..eb2b572 100644 --- a/java/src/pm/device/gui/GUIDeviceUI.java +++ b/java/src/pm/device/gui/GUIDeviceUI.java @@ -7,7 +7,7 @@ import javax.swing.JButton; import javax.swing.JFrame; import pm.Action; import pm.Target; -import pm.action.ActionProvider; +import pm.task.ActionProvider; import layout.TableLayout; import layout.TableLayoutConstraints; diff --git a/java/src/pm/device/javainput/JavaInputDevice.java b/java/src/pm/device/javainput/JavaInputDevice.java index 31a7c84..d801d79 100644 --- a/java/src/pm/device/javainput/JavaInputDevice.java +++ b/java/src/pm/device/javainput/JavaInputDevice.java @@ -7,7 +7,7 @@ import de.hardcode.jxinput.event.JXInputButtonEvent; import de.hardcode.jxinput.event.JXInputDirectionalEvent; import pm.Button; -import pm.device.Device; +import pm.Device; import pm.exception.EventException; import pm.exception.device.DeviceInitialiseException; import pm.exception.device.DeviceNotFoundException; diff --git a/java/src/pm/device/jintellitype/JIntellitypeDevice.java b/java/src/pm/device/jintellitype/JIntellitypeDevice.java index 3384f0d..d6f902d 100644 --- a/java/src/pm/device/jintellitype/JIntellitypeDevice.java +++ b/java/src/pm/device/jintellitype/JIntellitypeDevice.java @@ -7,8 +7,9 @@ import com.melloware.jintellitype.IntellitypeListener; import com.melloware.jintellitype.JIntellitype; import pm.Action; +import pm.Device; import pm.Target; -import pm.device.Device; +import pm.Task; import pm.exception.EventException; import pm.exception.MacroException; import pm.exception.device.DeviceInitialiseException; @@ -31,10 +32,10 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell try { add( new Hotkey(HotkeyButton.CTRL | HotkeyButton.WIN, 'x'), - Action.EXIT.setTarget(Target.MAIN)); + new Task(Action.EXIT, Target.MAIN)); add( - new Press(CommandButton.VOLUME_UP), - Action.EXIT.setTarget(Target.MAIN)); + new Hotkey(HotkeyButton.CTRL | HotkeyButton.WIN, 't'), + new Task(Action.TEST, Target.MAIN)); } catch (MacroException e) { e.printStackTrace(); } diff --git a/java/src/pm/device/textinput/TextinputDevice.java b/java/src/pm/device/textinput/TextinputDevice.java index b8df548..503d99c 100644 --- a/java/src/pm/device/textinput/TextinputDevice.java +++ b/java/src/pm/device/textinput/TextinputDevice.java @@ -2,7 +2,7 @@ package pm.device.textinput; import java.util.Scanner; -import pm.device.Device; +import pm.Device; public class TextinputDevice extends Device { static final int SLEEP = 50; diff --git a/java/src/pm/device/wiimote/WiimoteDevice.java b/java/src/pm/device/wiimote/WiimoteDevice.java index 7c20d85..1430676 100644 --- a/java/src/pm/device/wiimote/WiimoteDevice.java +++ b/java/src/pm/device/wiimote/WiimoteDevice.java @@ -1,8 +1,8 @@ package pm.device.wiimote; import pm.Action; +import pm.Device; import pm.Target; -import pm.device.Device; import pm.exception.MacroException; import pm.exception.device.DeviceInitialiseException; import pm.macro.event.Press; diff --git a/java/src/pm/macro/MacroListener.java b/java/src/pm/macro/MacroListener.java index 0d72cda..26d9b43 100644 --- a/java/src/pm/macro/MacroListener.java +++ b/java/src/pm/macro/MacroListener.java @@ -3,29 +3,29 @@ package pm.macro; import java.util.ArrayList; import java.util.HashMap; -import pm.Action; import pm.Macro; -import pm.action.ActionProvider; +import pm.Task; import pm.exception.MacroException; +import pm.task.TaskProvider; public class MacroListener { public ArrayList macroList; - public HashMap actionMap; + public HashMap taskMap; public ArrayList activeList; public MacroListener() { macroList = new ArrayList(); - actionMap = new HashMap(); + taskMap = new HashMap(); activeList = new ArrayList(); } - public void add(Macro macro, Action action) { + public void add(Macro macro, Task task) { macroList.add(macro); - actionMap.put(macro, action); + taskMap.put(macro, task); } - public void add(Event event, Action action) throws MacroException { - add(new Macro(event), action); + public void add(Event event, Task task) throws MacroException { + add(new Macro(event), task); } public void add(Event event) { @@ -36,7 +36,7 @@ public class MacroListener { for (Active active : activeList) { if (active.next(event)) { if (active.last()) { - ActionProvider.add(actionMap.get(active.getMacro())); + TaskProvider.add(taskMap.get(active.getMacro())); removeList.add(active); } } else { diff --git a/java/src/pm/action/ActionListener.java b/java/src/pm/task/TaskListener.java similarity index 53% rename from java/src/pm/action/ActionListener.java rename to java/src/pm/task/TaskListener.java index be8a902..5ef4f26 100644 --- a/java/src/pm/action/ActionListener.java +++ b/java/src/pm/task/TaskListener.java @@ -1,18 +1,19 @@ -package pm.action; +package pm.task; import java.util.Queue; import java.util.concurrent.ConcurrentLinkedQueue; -import pm.Action; +import pm.Task; -public abstract class ActionListener implements Runnable { +public abstract class TaskListener implements Runnable { protected static final int SLEEP = 100; - protected Queue actionQueue; + protected Queue taskQueue; protected boolean run; - public ActionListener() { - actionQueue = new ConcurrentLinkedQueue(); + public TaskListener() { + taskQueue = new ConcurrentLinkedQueue(); + TaskProvider.initialise(taskQueue); run = true; } @@ -22,10 +23,10 @@ public abstract class ActionListener implements Runnable { public void run() { while (run) { - if (actionQueue.isEmpty()) { + if (taskQueue.isEmpty()) { sleep(SLEEP); } else { - action(actionQueue.poll()); + task(taskQueue.poll()); } } } @@ -34,8 +35,8 @@ public abstract class ActionListener implements Runnable { run = false; } - public void add(Action action) { - actionQueue.add(action); + public void add(Task task) { + taskQueue.add(task); } protected void sleep(int time) { @@ -44,5 +45,5 @@ public abstract class ActionListener implements Runnable { } catch (InterruptedException e) {} } - abstract protected void action(Action action); + abstract protected void task(Task task); } diff --git a/java/src/pm/task/TaskProvider.java b/java/src/pm/task/TaskProvider.java new file mode 100644 index 0000000..0f020b0 --- /dev/null +++ b/java/src/pm/task/TaskProvider.java @@ -0,0 +1,17 @@ +package pm.task; + +import java.util.Queue; + +import pm.Task; + +public class TaskProvider { + protected static Queue taskQueue; + + public static void initialise(Queue taskQueue) { + TaskProvider.taskQueue = taskQueue; + } + + public static void add(Task task) { + taskQueue.add(task); + } +}