Begin/End verder geimplementeerd -> moet nog in alle applicaties aangepast/getest worden.
This commit is contained in:
@@ -14,7 +14,6 @@ public abstract class Application extends EventHandler implements Titled, Exitab
|
||||
|
||||
public Application(String title) {
|
||||
this.title = title;
|
||||
//initialise();
|
||||
}
|
||||
|
||||
public String title() {
|
||||
|
||||
@@ -4,12 +4,12 @@ import mimis.event.EventHandler;
|
||||
import mimis.event.Task;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.exception.worker.DeactivateException;
|
||||
import mimis.macro.Sequence;
|
||||
import mimis.macro.SequenceListener;
|
||||
import mimis.macro.State;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.manager.Exitable;
|
||||
import mimis.manager.Titled;
|
||||
import mimis.sequence.Sequence;
|
||||
import mimis.sequence.SequenceListener;
|
||||
import mimis.sequence.State;
|
||||
import mimis.sequence.state.Press;
|
||||
|
||||
public abstract class Device extends EventHandler implements Titled, Exitable {
|
||||
protected String title;
|
||||
|
||||
@@ -3,11 +3,11 @@ package mimis;
|
||||
import java.util.ArrayList;
|
||||
|
||||
import mimis.exception.macro.StateOrderException;
|
||||
import mimis.macro.Sequence;
|
||||
import mimis.macro.State;
|
||||
import mimis.macro.state.Hold;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.Sequence;
|
||||
import mimis.sequence.State;
|
||||
import mimis.sequence.state.Hold;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
|
||||
|
||||
public class Macro extends Sequence {
|
||||
|
||||
@@ -5,7 +5,7 @@ import mimis.event.EventRouter;
|
||||
import mimis.event.Feedback;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.feedback.TextFeedback;
|
||||
import mimis.macro.SequenceListener;
|
||||
import mimis.sequence.SequenceListener;
|
||||
import mimis.util.ArrayCycle;
|
||||
import mimis.value.Action;
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ public class WinampApplication extends WindowsApplication {
|
||||
muted = volume == 0;
|
||||
}
|
||||
|
||||
public void action(Action action) {
|
||||
public void end(Action action) {
|
||||
log.fatal(handle);
|
||||
log.trace("WinampApplication: " + action);
|
||||
switch (action) {
|
||||
|
||||
@@ -8,8 +8,8 @@ import mimis.exception.button.UnknownDirectionException;
|
||||
import mimis.exception.device.DeviceNotFoundException;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.exception.worker.DeactivateException;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
|
||||
import de.hardcode.jxinput.JXInputDevice;
|
||||
import de.hardcode.jxinput.JXInputManager;
|
||||
|
||||
@@ -9,9 +9,9 @@ import mimis.exception.MacroException;
|
||||
import mimis.exception.button.UnknownButtonException;
|
||||
import mimis.exception.button.UnknownDirectionException;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.macro.state.Hold;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.state.Hold;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
import mimis.value.Action;
|
||||
import mimis.value.Target;
|
||||
import de.hardcode.jxinput.event.JXInputButtonEvent;
|
||||
|
||||
@@ -7,7 +7,7 @@ import mimis.event.Task;
|
||||
import mimis.exception.button.UnknownButtonException;
|
||||
import mimis.exception.button.UnknownDirectionException;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.value.Action;
|
||||
import mimis.value.Target;
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@ import mimis.Device;
|
||||
import mimis.event.Task;
|
||||
import mimis.exception.button.UnknownButtonException;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
import mimis.value.Action;
|
||||
import mimis.value.Key;
|
||||
import mimis.value.Target;
|
||||
|
||||
@@ -8,8 +8,8 @@ import mimis.device.lirc.button.DenonRC176;
|
||||
import mimis.device.lirc.button.PhiliphsRCLE011Button;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.exception.worker.DeactivateException;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
import mimis.util.Multiplexer;
|
||||
import mimis.util.multiplexer.SignalListener;
|
||||
import mimis.value.Signal;
|
||||
|
||||
@@ -7,8 +7,8 @@ import javax.swing.WindowConstants;
|
||||
import mimis.Device;
|
||||
import mimis.event.Task;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
import mimis.value.Action;
|
||||
import mimis.value.Target;
|
||||
|
||||
|
||||
@@ -8,8 +8,8 @@ import mimis.event.Task;
|
||||
import mimis.exception.button.UnknownButtonException;
|
||||
import mimis.exception.device.DeviceNotFoundException;
|
||||
import mimis.exception.worker.ActivateException;
|
||||
import mimis.macro.state.Press;
|
||||
import mimis.macro.state.Release;
|
||||
import mimis.sequence.state.Press;
|
||||
import mimis.sequence.state.Release;
|
||||
import mimis.value.Action;
|
||||
|
||||
import org.wiigee.event.GestureEvent;
|
||||
|
||||
@@ -34,5 +34,4 @@ public abstract class EventHandler extends EventListener {
|
||||
|
||||
protected void begin(Action action) {}
|
||||
protected void end(Action action) {}
|
||||
protected void action(Action action) {}
|
||||
}
|
||||
@@ -4,7 +4,6 @@ import java.util.ArrayList;
|
||||
|
||||
import mimis.Application;
|
||||
|
||||
|
||||
public abstract class EventRouter extends EventListener {
|
||||
protected ArrayList<EventListener> eventListenerList;
|
||||
protected Application application;
|
||||
|
||||
@@ -6,8 +6,7 @@ import mimis.value.Signal;
|
||||
import mimis.value.Target;
|
||||
|
||||
public class Task extends Event {
|
||||
public static Target TARGET = Target.SELF;
|
||||
public static Signal SIGNAL = Signal.END;
|
||||
public static final Target TARGET = Target.SELF;
|
||||
|
||||
protected Action action;
|
||||
protected Signal signal;
|
||||
@@ -17,12 +16,8 @@ public class Task extends Event {
|
||||
}
|
||||
|
||||
public Task(Target target, Action action) {
|
||||
this(target, action, SIGNAL);
|
||||
}
|
||||
|
||||
public Task(Target target, Action action, Signal signal) {
|
||||
super(target);
|
||||
this.action = action;
|
||||
super(target);
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public Action getAction() {
|
||||
@@ -32,4 +27,8 @@ public class Task extends Event {
|
||||
public Signal getSignal() {
|
||||
return signal;
|
||||
}
|
||||
|
||||
public void setSignal(Signal signal) {
|
||||
this.signal = signal;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,25 +33,26 @@ public class GlobalRouter extends EventRouter {
|
||||
}
|
||||
} while (object != null);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
log.error(e);
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
log.error(e);
|
||||
}
|
||||
}
|
||||
};
|
||||
return;
|
||||
} catch (UnknownHostException e) {
|
||||
} catch (IOException e) {}
|
||||
log.error(e);
|
||||
} catch (IOException e) {
|
||||
log.error(e);
|
||||
}
|
||||
throw new GlobalRouterException();
|
||||
}
|
||||
|
||||
public void event(Event event) {
|
||||
System.out.println("NetworkSpreader: event!");
|
||||
//System.out.println(socket.isConnected());
|
||||
try {
|
||||
objectOutputStream.writeObject(event);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
log.error(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package mimis.macro;
|
||||
package mimis.sequence;
|
||||
|
||||
|
||||
public class Active {
|
||||
@@ -25,6 +25,10 @@ public class Active {
|
||||
State next = sequence.get(++step);
|
||||
return next == null ? false : state.equals(next);
|
||||
}
|
||||
|
||||
public boolean first() {
|
||||
return step == 0;
|
||||
}
|
||||
|
||||
public boolean last() {
|
||||
return step == sequence.count() - 1;
|
||||
@@ -1,4 +1,4 @@
|
||||
package mimis.macro;
|
||||
package mimis.sequence;
|
||||
|
||||
public class Sequence {
|
||||
protected State[] eventArray;
|
||||
@@ -1,4 +1,4 @@
|
||||
package mimis.macro;
|
||||
package mimis.sequence;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
@@ -10,20 +10,21 @@ import mimis.Event;
|
||||
import mimis.event.EventHandler;
|
||||
import mimis.event.EventListener;
|
||||
import mimis.event.Task;
|
||||
import mimis.value.Signal;
|
||||
import mimis.value.Target;
|
||||
|
||||
public class SequenceListener {
|
||||
protected Log log = LogFactory.getLog(getClass());
|
||||
|
||||
protected EventHandler eventHandler;
|
||||
protected EventHandler self;
|
||||
protected ArrayList<Sequence> sequenceList;
|
||||
protected HashMap<Sequence, Event> eventMap;
|
||||
protected ArrayList<Active> activeList;
|
||||
|
||||
protected static EventListener eventListener;
|
||||
|
||||
public SequenceListener(EventHandler eventHandler) {
|
||||
this.eventHandler = eventHandler;
|
||||
public SequenceListener(EventHandler self) {
|
||||
this.self = self;
|
||||
sequenceList = new ArrayList<Sequence>();
|
||||
eventMap = new HashMap<Sequence, Event>();
|
||||
activeList = new ArrayList<Active>();
|
||||
@@ -48,13 +49,11 @@ public class SequenceListener {
|
||||
ArrayList<Active> removeList = new ArrayList<Active>();
|
||||
for (Active active : activeList) {
|
||||
if (active.next(state)) {
|
||||
if (active.last()) {
|
||||
Event event = eventMap.get(active.getSequence());
|
||||
if (event.getTarget().equals(Target.SELF)) {
|
||||
eventHandler.event(event);
|
||||
} else {
|
||||
eventListener.add(event);
|
||||
}
|
||||
Event event = eventMap.get(active.getSequence());
|
||||
if (active.first()) {
|
||||
add(event, Signal.BEGIN);
|
||||
} else if (active.last()) {
|
||||
add(event, Signal.END);
|
||||
removeList.add(active);
|
||||
}
|
||||
} else {
|
||||
@@ -65,4 +64,16 @@ public class SequenceListener {
|
||||
activeList.remove(active);
|
||||
}
|
||||
}
|
||||
|
||||
protected void add(Event event, Signal signal) {
|
||||
if (event instanceof Task) {
|
||||
Task task = (Task) event;
|
||||
task.setSignal(signal);
|
||||
}
|
||||
if (event.getTarget().equals(Target.SELF)) {
|
||||
eventListener.add(event);
|
||||
} else {
|
||||
self.add(event);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package mimis.macro;
|
||||
package mimis.sequence;
|
||||
|
||||
import mimis.Button;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package mimis.macro.state;
|
||||
package mimis.sequence.state;
|
||||
|
||||
import mimis.Button;
|
||||
import mimis.macro.State;
|
||||
import mimis.sequence.State;
|
||||
|
||||
public class Hold extends State {
|
||||
public Hold(Button button) {
|
||||
@@ -1,7 +1,7 @@
|
||||
package mimis.macro.state;
|
||||
package mimis.sequence.state;
|
||||
|
||||
import mimis.Button;
|
||||
import mimis.macro.State;
|
||||
import mimis.sequence.State;
|
||||
|
||||
public class Press extends State {
|
||||
public Press(Button button) {
|
||||
@@ -1,7 +1,7 @@
|
||||
package mimis.macro.state;
|
||||
package mimis.sequence.state;
|
||||
|
||||
import mimis.Button;
|
||||
import mimis.macro.State;
|
||||
import mimis.sequence.State;
|
||||
|
||||
public class Release extends State {
|
||||
public Release(Button button) {
|
||||
@@ -1,46 +1,15 @@
|
||||
TODO
|
||||
------------
|
||||
mappings lezen vanuit config bestand
|
||||
|
||||
exeptions en foutmeldingen nakijken/afhandelen/loggen
|
||||
|
||||
initialises en exits controleren op succes. tussendoor afgesloten apps en devs herkennen en restarten? op runtime nieuwe applicaties of devices toevoegen of sluiten.
|
||||
|
||||
nummerinfo weergeven, waar? via feedback?
|
||||
|
||||
javadoc maken, class diagram opstellen enz.....
|
||||
|
||||
meer applicaties implementeren, zoals VLC, WMP, Youtube? (interface naar flash?)
|
||||
|
||||
client maken die remote devices kan beheren en lokaal acties kan uitvoeren
|
||||
feedback?
|
||||
|
||||
mogelijkheid tot webstart onderzoeken
|
||||
|
||||
alle listeners in gezamelijk pakket plaatsen?
|
||||
|
||||
|
||||
IN PROGRESS
|
||||
-------------
|
||||
naamgeving en indeling classes/packages controleren
|
||||
+TaskGatherererer hernoemt naar TaskManager
|
||||
+value package waar algemene (gedeelde) enums in komen
|
||||
|
||||
exporteren naar uitvoerbare jar file
|
||||
+Eclipse kan exporteren, maar bij uitvoeren gebeurd er niets. Moet er een status scherm komen? (Een swing console bijvoorbeeld)
|
||||
|
||||
logo ontwerpen
|
||||
+logo is af, favicon maken?
|
||||
|
||||
feedback systeem implementeren, rumble voor zowel wiimote als rumblepad
|
||||
+feedback voor rumblepad komt er niet, te veel werk en gebruikte api lijkt niet eenvoudig aanpasbaar
|
||||
|
||||
algemene listener parent class / interface maken? die zou standaard thread functies implementeren / vereisen: start, run, stop
|
||||
+hier zijn al enkele aanpassingen aan gemaakt, de main stuurt nu direct de TaskManager aan in plaats van dat het vannuit een Device of Application gebeurd
|
||||
|
||||
log bijhouden
|
||||
+werkt via apache commons logging, nu nog boodschappen toevoegen!
|
||||
|
||||
|
||||
DONE
|
||||
-------------
|
||||
lantextdevice generiek maken met normale textdevice
|
||||
favicon maken?
|
||||
Reference in New Issue
Block a user