* pakket value gemaakt voor algemene enums

* LanTextClient in eigen pakket client gezet
* TextDevice en LanTextDevice nog generieker gemaakt:
- standaard thread model toegepast met start en stop methoden
- threads verplaatst buiten devices:
-- devices zouden run methode uit de task listener overriden
-- run methode uit tasklistener final gemaakt
This commit is contained in:
2011-02-22 22:26:01 +00:00
parent 24a49e5d49
commit ac1480d24c
31 changed files with 172 additions and 127 deletions

View File

@@ -1,8 +1,8 @@
package pm.device.example;
import pm.Action;
import pm.Device;
import pm.Target;
import pm.value.Action;
import pm.value.Target;
public class ExampleDevice extends Device {
public void initialise() {

View File

@@ -5,10 +5,10 @@ import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import pm.Action;
import pm.Target;
import pm.Task;
import pm.task.TaskManager;
import pm.value.Action;
import pm.value.Target;
import layout.TableLayout;
import layout.TableLayoutConstraints;

View File

@@ -1,9 +1,7 @@
package pm.device.javainput.extreme3d;
import pm.Action;
import pm.Button;
import pm.Macro;
import pm.Target;
import pm.Task;
import pm.device.javainput.DirectionButton;
import pm.device.javainput.JavaInputDevice;
@@ -14,6 +12,8 @@ import pm.exception.event.UnknownDirectionException;
import pm.macro.event.Hold;
import pm.macro.event.Press;
import pm.macro.event.Release;
import pm.value.Action;
import pm.value.Target;
import de.hardcode.jxinput.event.JXInputButtonEvent;
import de.hardcode.jxinput.event.JXInputDirectionalEvent;

View File

@@ -1,8 +1,6 @@
package pm.device.javainput.rumblepad;
import pm.Action;
import pm.Button;
import pm.Target;
import pm.Task;
import pm.device.javainput.DirectionButton;
import pm.device.javainput.JavaInputDevice;
@@ -13,6 +11,8 @@ import pm.macro.event.Hold;
import pm.macro.event.Press;
import pm.task.Continuous;
import pm.task.Dynamic;
import pm.value.Action;
import pm.value.Target;
import de.hardcode.jxinput.event.JXInputButtonEvent;
import de.hardcode.jxinput.event.JXInputDirectionalEvent;

View File

@@ -4,8 +4,8 @@ import java.util.ArrayList;
import com.melloware.jintellitype.JIntellitype;
import pm.application.windows.Key;
import pm.macro.event.Press;
import pm.value.Key;
public class Hotkey extends Press {
protected static ArrayList<Hotkey> hotkeyList;

View File

@@ -6,16 +6,16 @@ import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.IntellitypeListener;
import com.melloware.jintellitype.JIntellitype;
import pm.Action;
import pm.Device;
import pm.Target;
import pm.Task;
import pm.application.windows.Key;
import pm.exception.EventException;
import pm.exception.device.DeviceInitialiseException;
import pm.macro.event.Press;
import pm.macro.event.Release;
import pm.task.Continuous;
import pm.value.Action;
import pm.value.Key;
import pm.value.Target;
public class JIntellitypeDevice extends Device implements HotkeyListener, IntellitypeListener {
protected ArrayList<Hotkey> hotkeyList;

View File

@@ -1,35 +0,0 @@
package pm.device.lantextinput;
import java.io.PrintStream;
import java.net.Socket;
import java.util.Scanner;
public class LanTextClient {
static final String HOST = "127.0.0.1"; //localhost
static final int PORT = 1234;
protected boolean run;
protected Socket socket;
protected Scanner input;
protected PrintStream output;
LanTextClient(){
try {
socket = new Socket(HOST, PORT);
input = new Scanner(System.in);
output = new PrintStream(socket.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
protected void start(){
while(run){
output.println(input.nextLine());
}
}
public static void main(String[] argv) {
new LanTextClient().start();
}
}

View File

@@ -1,31 +0,0 @@
package pm.device.lantextinput;
import java.io.IOException;
import java.net.ServerSocket;
import pm.Device;
public class LanTextDevice extends Device implements Runnable {
static final int PORT = 1234;
protected ServerSocket socket;
public void initialise() {
try {
socket = new ServerSocket(PORT);
} catch (IOException e) {
e.printStackTrace();
}
new Thread(this).start();
}
public void run() {
while(true){
try {
new LanTextListener(socket.accept());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

View File

@@ -1,39 +0,0 @@
package pm.device.lantextinput;
import java.io.IOException;
import java.net.Socket;
import java.util.Scanner;
import pm.device.textinput.TextDevice;
public class LanTextListener extends TextDevice {
protected Socket socket;
public LanTextListener(Socket socket) {
this.socket = socket;
initialise();
}
public void initialise() {
try {
input = new Scanner(socket.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
run = true;
new Thread(this).start();
}
protected boolean running() {
return run && socket.isConnected() && input.hasNext();
}
public void exit() {
run = false;
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

View File

@@ -1,21 +1,24 @@
package pm.device.textinput;
package pm.device.text;
import java.io.InputStream;
import java.util.Scanner;
import pm.Action;
import pm.Device;
import pm.Target;
import pm.Task;
import pm.task.TaskManager;
import pm.value.Action;
import pm.value.Target;
public class TextDevice extends Device implements Runnable {
static final int SLEEP = 100;
public class InputListener implements Runnable {
protected static final int SLEEP = 100;
protected boolean run;
protected Scanner input;
public void initialise() {
input = new Scanner(System.in);
public InputListener(InputStream inputStream) {
input = new Scanner(inputStream);
}
public void start() {
new Thread(this).start();
}
@@ -36,8 +39,12 @@ public class TextDevice extends Device implements Runnable {
}
}
}
protected boolean running() {
return run && input.hasNext();
}
public void stop() {
run = false;
}
}

View File

@@ -0,0 +1,19 @@
package pm.device.text;
import pm.Device;
public class TextDevice extends Device implements Runnable {
InputListener inputListener;
public TextDevice() {
inputListener = new InputListener(System.in);
}
public void initialise() {
inputListener.start();
}
public void exit() {
inputListener.stop();
}
}

View File

@@ -0,0 +1,27 @@
package pm.device.text.lan;
import java.io.IOException;
import java.net.ServerSocket;
import pm.Device;
import pm.exception.device.DeviceInitialiseException;
public class LanTextDevice extends Device {
static final int PORT = 1234;
protected ServerSocket socket;
protected SocketListener socketListener;
public void initialise() throws DeviceInitialiseException {
try {
socket = new ServerSocket(PORT);
socketListener = new SocketListener(socket);
socketListener.start();
} catch (IOException e) {
throw new DeviceInitialiseException();
}
}
public void exit() {
socketListener.stop();
}
}

View File

@@ -0,0 +1,47 @@
package pm.device.text.lan;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.ArrayList;
import pm.device.text.InputListener;
public class SocketListener implements Runnable {
protected boolean run;
protected ServerSocket server;
protected ArrayList<InputListener> inputListenerList;
public SocketListener(ServerSocket server) {
this.server = server;
inputListenerList = new ArrayList<InputListener>();
}
public void start() {
new Thread(this).start();
}
public void run() {
run = true;
while (run) {
try {
Socket socket = server.accept();
InputStream inputStream = socket.getInputStream();
InputListener inputListener = new InputListener(inputStream);
inputListenerList.add(inputListener);
inputListener.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public void stop() {
run = false;
for (InputListener inputListener : inputListenerList) {
inputListener.stop();
}
}
}

View File

@@ -4,10 +4,8 @@ import org.wiigee.event.GestureEvent;
import org.wiigee.event.GestureListener;
import org.wiigee.util.Log;
import pm.Action;
import pm.Button;
import pm.Device;
import pm.Target;
import pm.Task;
import pm.device.javainput.rumblepad.RumblepadButton;
import pm.device.wiimote.gesture.GestureDevice;
@@ -18,6 +16,8 @@ import pm.macro.event.Press;
import pm.macro.event.Release;
import pm.task.Continuous;
import pm.task.Dynamic;
import pm.value.Action;
import pm.value.Target;
import wiiusej.Wiimote;
import wiiusej.values.Acceleration;