Basis gelegd voor Events: Feedback en Task, daartoe aantal dingen hernoemd.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package pm;
|
||||
|
||||
import pm.event.Task;
|
||||
import pm.exception.device.DeviceExitException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.macro.Sequence;
|
||||
|
||||
3
java/src/pm/Event.java
Normal file
3
java/src/pm/Event.java
Normal file
@@ -0,0 +1,3 @@
|
||||
package pm;
|
||||
|
||||
public interface Event {}
|
||||
@@ -3,7 +3,7 @@ package pm;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import pm.exception.MacroException;
|
||||
import pm.exception.macro.MacroEventOrderException;
|
||||
import pm.exception.state.StateOrderException;
|
||||
import pm.macro.Sequence;
|
||||
import pm.macro.State;
|
||||
import pm.macro.state.Hold;
|
||||
@@ -16,33 +16,33 @@ public class Macro extends Sequence {
|
||||
this.eventArray = new State[] {press, new Release(button)};
|
||||
}
|
||||
|
||||
public Macro(State... eventArray) throws MacroException {
|
||||
public Macro(State... eventArray) throws StateOrderException {
|
||||
ArrayList<Button> holdList = new ArrayList<Button>();
|
||||
ArrayList<State> eventList = new ArrayList<State>();
|
||||
for (State state : eventArray) {
|
||||
Button button = state.getButton();
|
||||
if (state instanceof Press) {
|
||||
if (holdList.contains(button)) {
|
||||
throw new MacroEventOrderException("Press events cannot follow hold events for the same button.");
|
||||
throw new StateOrderException("Press events cannot follow hold events for the same button.");
|
||||
}
|
||||
eventList.add(state);
|
||||
eventList.add(new Release(button));
|
||||
} else if (state instanceof Release) {
|
||||
if (!holdList.contains(button)) {
|
||||
throw new MacroEventOrderException("Cannot release a button that is not held.");
|
||||
throw new StateOrderException("Cannot release a button that is not held.");
|
||||
}
|
||||
holdList.remove(button);
|
||||
eventList.add(state);
|
||||
} else if (state instanceof Hold) {
|
||||
if (holdList.contains(button)) {
|
||||
throw new MacroEventOrderException("Cannot hold a button more than once.");
|
||||
throw new StateOrderException("Cannot hold a button more than once.");
|
||||
}
|
||||
holdList.add(button);
|
||||
eventList.add(new Press(button));
|
||||
}
|
||||
}
|
||||
if (!holdList.isEmpty()) {
|
||||
throw new MacroEventOrderException("One or more buttons are not released.");
|
||||
throw new StateOrderException("One or more buttons are not released.");
|
||||
}
|
||||
eventArray = (State[]) eventList.toArray(new State[0]);
|
||||
}
|
||||
|
||||
@@ -5,7 +5,8 @@ import java.awt.event.ActionListener;
|
||||
|
||||
import javax.swing.JButton;
|
||||
import javax.swing.JFrame;
|
||||
import pm.Task;
|
||||
|
||||
import pm.event.Task;
|
||||
import pm.task.TaskManager;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
@@ -8,7 +8,9 @@ import de.hardcode.jxinput.event.JXInputDirectionalEvent;
|
||||
|
||||
import pm.Button;
|
||||
import pm.Device;
|
||||
import pm.exception.StateException;
|
||||
import pm.exception.ButtonException;
|
||||
import pm.exception.button.UnknownButtonException;
|
||||
import pm.exception.button.UnknownDirectionException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.exception.device.DeviceNotFoundException;
|
||||
import pm.macro.state.Press;
|
||||
@@ -35,7 +37,7 @@ public abstract class JavaInputDevice extends Device {
|
||||
//System.out.println(event);
|
||||
}
|
||||
|
||||
public void processEvent(JXInputButtonEvent event) throws StateException {
|
||||
public void processEvent(JXInputButtonEvent event) throws ButtonException {
|
||||
Button button = getButton(event);
|
||||
if (event.getButton().getState()) {
|
||||
System.out.println("Press: " + button);
|
||||
@@ -46,7 +48,7 @@ public abstract class JavaInputDevice extends Device {
|
||||
}
|
||||
}
|
||||
|
||||
public void processEvent(JXInputDirectionalEvent event) throws StateException {
|
||||
public void processEvent(JXInputDirectionalEvent event) throws UnknownDirectionException {
|
||||
Button button = getButton(event);
|
||||
if (event.getDirectional().isCentered()) {
|
||||
if (previousDirectionalButton != null) {
|
||||
@@ -60,8 +62,8 @@ public abstract class JavaInputDevice extends Device {
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract Button getButton(JXInputButtonEvent event) throws StateException;
|
||||
protected abstract Button getButton(JXInputDirectionalEvent event) throws StateException;
|
||||
protected abstract Button getButton(JXInputButtonEvent event) throws UnknownButtonException;
|
||||
protected abstract Button getButton(JXInputDirectionalEvent event) throws UnknownDirectionException;
|
||||
|
||||
public static JXInputDevice getDevice(String name) throws DeviceNotFoundException {
|
||||
int numberOfDevices = JXInputManager.getNumberOfDevices();
|
||||
|
||||
@@ -3,6 +3,7 @@ package pm.device.javainput;
|
||||
import java.util.LinkedList;
|
||||
import java.util.Queue;
|
||||
|
||||
import pm.exception.ButtonException;
|
||||
import pm.exception.StateException;
|
||||
|
||||
import de.hardcode.jxinput.Axis;
|
||||
@@ -86,13 +87,13 @@ public class JavaInputListener implements Runnable, JXInputAxisEventListener, JX
|
||||
if (!buttonEventQueue.isEmpty()) {
|
||||
try {
|
||||
javaInputDevice.processEvent(buttonEventQueue.poll());
|
||||
} catch (StateException e) {}
|
||||
} catch (ButtonException e) {}
|
||||
sleep = false;
|
||||
}
|
||||
if (!directionalEventQueue.isEmpty()) {
|
||||
try {
|
||||
javaInputDevice.processEvent(directionalEventQueue.poll());
|
||||
} catch (StateException e) {e.printStackTrace();}
|
||||
} catch (ButtonException e) {}
|
||||
sleep = false;
|
||||
}
|
||||
if (sleep) {
|
||||
|
||||
@@ -2,9 +2,9 @@ package pm.device.javainput.extreme3d;
|
||||
|
||||
import pm.Button;
|
||||
import pm.Macro;
|
||||
import pm.Task;
|
||||
import pm.device.javainput.DirectionButton;
|
||||
import pm.device.javainput.JavaInputDevice;
|
||||
import pm.event.Task;
|
||||
import pm.exception.MacroException;
|
||||
import pm.exception.button.UnknownButtonException;
|
||||
import pm.exception.button.UnknownDirectionException;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
package pm.device.javainput.rumblepad;
|
||||
|
||||
import pm.Button;
|
||||
import pm.Task;
|
||||
import pm.device.javainput.DirectionButton;
|
||||
import pm.device.javainput.JavaInputDevice;
|
||||
import pm.event.Task;
|
||||
import pm.exception.button.UnknownButtonException;
|
||||
import pm.exception.button.UnknownDirectionException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
|
||||
@@ -7,8 +7,9 @@ import com.melloware.jintellitype.IntellitypeListener;
|
||||
import com.melloware.jintellitype.JIntellitype;
|
||||
|
||||
import pm.Device;
|
||||
import pm.Task;
|
||||
import pm.event.Task;
|
||||
import pm.exception.StateException;
|
||||
import pm.exception.button.UnknownButtonException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.macro.state.Hold;
|
||||
import pm.macro.state.Press;
|
||||
@@ -63,9 +64,7 @@ public class JIntellitypeDevice extends Device implements HotkeyListener, Intell
|
||||
System.out.println(commandButton);
|
||||
add(new Press(commandButton));
|
||||
add(new Release(commandButton));
|
||||
} catch (StateException e) {
|
||||
e.printStackTrace(); // Todo: deze exception verder omhoog gooien
|
||||
}
|
||||
} catch (UnknownButtonException e) {}
|
||||
}
|
||||
|
||||
public void onHotKey(int id) {
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.io.InputStream;
|
||||
import java.util.Scanner;
|
||||
|
||||
import pm.Listener;
|
||||
import pm.Task;
|
||||
import pm.event.Task;
|
||||
import pm.exception.task.TaskNotSupportedException;
|
||||
import pm.task.TaskManager;
|
||||
import pm.value.Action;
|
||||
@@ -23,10 +23,8 @@ public class InputListener extends Listener {
|
||||
String string = input.next().toUpperCase();
|
||||
if(string != null) {
|
||||
try {
|
||||
try {
|
||||
TaskManager.add(
|
||||
new Task(Action.valueOf(string), Target.APPLICATION));
|
||||
} catch (TaskNotSupportedException e) {}
|
||||
TaskManager.add(
|
||||
new Task(Action.valueOf(string), Target.APPLICATION));
|
||||
} catch(IllegalArgumentException e) {}
|
||||
}
|
||||
try {
|
||||
|
||||
@@ -6,8 +6,8 @@ import org.wiigee.util.Log;
|
||||
|
||||
import pm.Button;
|
||||
import pm.Device;
|
||||
import pm.Task;
|
||||
import pm.device.wiimote.gesture.GestureDevice;
|
||||
import pm.event.Task;
|
||||
import pm.exception.button.UnknownButtonException;
|
||||
import pm.exception.device.DeviceInitialiseException;
|
||||
import pm.macro.state.Hold;
|
||||
|
||||
7
java/src/pm/event/Feedback.java
Normal file
7
java/src/pm/event/Feedback.java
Normal file
@@ -0,0 +1,7 @@
|
||||
package pm.event;
|
||||
|
||||
import pm.Event;
|
||||
|
||||
public class Feedback implements Event {
|
||||
|
||||
}
|
||||
@@ -1,9 +1,10 @@
|
||||
package pm;
|
||||
package pm.event;
|
||||
|
||||
import pm.Event;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
public class Task {
|
||||
public class Task implements Event {
|
||||
protected Action action;
|
||||
protected Target target;
|
||||
|
||||
@@ -11,7 +12,7 @@ public class Task {
|
||||
this.action = action;
|
||||
this.target = target;
|
||||
}
|
||||
|
||||
|
||||
public Task(Action action) {
|
||||
this(action, Target.SELF);
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package pm.exception;
|
||||
|
||||
public class StateException extends Exception {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package pm.exception.button;
|
||||
|
||||
import pm.exception.StateException;
|
||||
import pm.exception.ButtonException;
|
||||
|
||||
public class UnknownButtonException extends StateException {
|
||||
public class UnknownButtonException extends ButtonException {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
package pm.exception.macro;
|
||||
|
||||
import pm.exception.MacroException;
|
||||
|
||||
public class MacroEventOrderException extends MacroException {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
|
||||
public MacroEventOrderException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
11
java/src/pm/exception/state/StateOrderException.java
Normal file
11
java/src/pm/exception/state/StateOrderException.java
Normal file
@@ -0,0 +1,11 @@
|
||||
package pm.exception.state;
|
||||
|
||||
import pm.exception.MacroException;
|
||||
|
||||
public class StateOrderException extends MacroException {
|
||||
protected static final long serialVersionUID = 1L;
|
||||
|
||||
public StateOrderException(String message) {
|
||||
super(message);
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@ package pm.macro;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
import pm.Task;
|
||||
import pm.event.Task;
|
||||
import pm.task.TaskListener;
|
||||
import pm.task.TaskManager;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pm.task;
|
||||
|
||||
import pm.Task;
|
||||
import pm.event.Task;
|
||||
import pm.value.Action;
|
||||
import pm.value.Target;
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package pm.task;
|
||||
|
||||
import pm.Task;
|
||||
import pm.event.Task;
|
||||
|
||||
public class Stopper extends Task {
|
||||
protected Continuous continuous;
|
||||
|
||||
@@ -4,7 +4,7 @@ import java.util.Queue;
|
||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||
|
||||
import pm.Listener;
|
||||
import pm.Task;
|
||||
import pm.event.Task;
|
||||
import pm.value.Action;
|
||||
|
||||
public abstract class TaskListener extends Listener implements Runnable {
|
||||
|
||||
@@ -5,8 +5,8 @@ import java.util.ArrayList;
|
||||
import pm.Application;
|
||||
import pm.Device;
|
||||
import pm.Main;
|
||||
import pm.Task;
|
||||
import pm.application.ApplicationCycle;
|
||||
import pm.event.Task;
|
||||
import pm.exception.task.TaskNotSupportedException;
|
||||
import pm.value.Target;
|
||||
|
||||
@@ -63,12 +63,10 @@ public class TaskManager {
|
||||
}
|
||||
}
|
||||
|
||||
public static void add(Task task) throws TaskNotSupportedException {
|
||||
Target target = task.getTarget();
|
||||
if (target.equals(Target.SELF)) {
|
||||
throw new TaskNotSupportedException();
|
||||
public static void add(Task task) {
|
||||
if (!task.getTarget().equals(Target.SELF)) {
|
||||
add(null, task);
|
||||
}
|
||||
add(null, task);
|
||||
}
|
||||
|
||||
public static void remove(TaskListener taskListener) {
|
||||
|
||||
Reference in New Issue
Block a user