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.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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 {}
|
||||
@@ -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<Application> applicationCycle;
|
||||
protected ArrayList<Device> deviceList;
|
||||
@@ -29,20 +28,19 @@ public class Main extends ActionListener {
|
||||
"pm.device.wiimote.WiimoteDevice"};*/
|
||||
applicationCycle = new ArrayCycle<Application>();
|
||||
deviceList = new ArrayList<Device>();
|
||||
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 {
|
||||
|
||||
19
java/src/pm/Task.java
Normal file
19
java/src/pm/Task.java
Normal file
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package pm.action;
|
||||
|
||||
import java.util.Queue;
|
||||
|
||||
import pm.Action;
|
||||
|
||||
public class ActionProvider {
|
||||
protected static Queue<Action> actionQueue;
|
||||
|
||||
public static void initialise(Queue<Action> actionQueue) {
|
||||
ActionProvider.actionQueue = actionQueue;
|
||||
}
|
||||
|
||||
public static void add(Action action) {
|
||||
actionQueue.add(action);
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pm.device.gui;
|
||||
|
||||
import pm.device.Device;
|
||||
import pm.Device;
|
||||
|
||||
public class GUIDevice extends Device {
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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<Macro> macroList;
|
||||
public HashMap<Macro, Action> actionMap;
|
||||
public HashMap<Macro, Task> taskMap;
|
||||
public ArrayList<Active> activeList;
|
||||
|
||||
public MacroListener() {
|
||||
macroList = new ArrayList<Macro>();
|
||||
actionMap = new HashMap<Macro, Action>();
|
||||
taskMap = new HashMap<Macro, Task>();
|
||||
activeList = new ArrayList<Active>();
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
@@ -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<Action> actionQueue;
|
||||
protected Queue<Task> taskQueue;
|
||||
protected boolean run;
|
||||
|
||||
public ActionListener() {
|
||||
actionQueue = new ConcurrentLinkedQueue<Action>();
|
||||
public TaskListener() {
|
||||
taskQueue = new ConcurrentLinkedQueue<Task>();
|
||||
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);
|
||||
}
|
||||
17
java/src/pm/task/TaskProvider.java
Normal file
17
java/src/pm/task/TaskProvider.java
Normal file
@@ -0,0 +1,17 @@
|
||||
package pm.task;
|
||||
|
||||
import java.util.Queue;
|
||||
|
||||
import pm.Task;
|
||||
|
||||
public class TaskProvider {
|
||||
protected static Queue<Task> taskQueue;
|
||||
|
||||
public static void initialise(Queue<Task> taskQueue) {
|
||||
TaskProvider.taskQueue = taskQueue;
|
||||
}
|
||||
|
||||
public static void add(Task task) {
|
||||
taskQueue.add(task);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user