diff options
author | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-07-31 11:31:14 (GMT) |
---|---|---|
committer | Stefan Radomski <radomski@tk.informatik.tu-darmstadt.de> | 2014-07-31 11:31:14 (GMT) |
commit | eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5 (patch) | |
tree | da32c5d07f126a6a0c8de42009f13c170198adaa /embedding/java/src/org/uscxml/tests/ioprocessor/adhoc/console/ConsoleIOProc.java | |
parent | 6bf9b12de158cb5fc6c94ab41b84c27968ea9340 (diff) | |
download | uscxml-eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5.zip uscxml-eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5.tar.gz uscxml-eab5c12b2a1b9cfee94e8d0cbe41fb5d78594bb5.tar.bz2 |
More adhoc extensions for interpreters
Diffstat (limited to 'embedding/java/src/org/uscxml/tests/ioprocessor/adhoc/console/ConsoleIOProc.java')
-rw-r--r-- | embedding/java/src/org/uscxml/tests/ioprocessor/adhoc/console/ConsoleIOProc.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/embedding/java/src/org/uscxml/tests/ioprocessor/adhoc/console/ConsoleIOProc.java b/embedding/java/src/org/uscxml/tests/ioprocessor/adhoc/console/ConsoleIOProc.java new file mode 100644 index 0000000..41d4702 --- /dev/null +++ b/embedding/java/src/org/uscxml/tests/ioprocessor/adhoc/console/ConsoleIOProc.java @@ -0,0 +1,84 @@ +package org.uscxml.tests.ioprocessor.adhoc.console; + +import java.awt.Frame; +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + +import org.uscxml.Data; +import org.uscxml.Event; +import org.uscxml.IOProcessor; +import org.uscxml.SendRequest; +import org.uscxml.StringList; + +public class ConsoleIOProc extends IOProcessor implements KeyListener { + + public ConsoleIOProc(Frame frame) { + super(); + frame.addKeyListener(this); + } + + /** IOProcessor */ + @Override + public StringList getNames() { + StringList ss = new StringList(); + ss.add("console"); + return ss; + } + + /** IOProcessor */ + @Override + public Data getDataModelVariables() { + // return anything for _ioprocessor['console'] + Data data = Data.fromJSON("{ foo: \"bar\", test: [1,2,3,4,5,6] }"); + return data; + } + + /** IOProcessor */ + @Override + public void send(SendRequest req) { + // interpreter wants to send something, just print on console + System.out.println(req); + } + + /** KeyListener */ + @Override + public void keyPressed(KeyEvent e) { + Event evt = new Event("key.pressed"); + evt.setData(keyEventToData(e)); + returnEvent(evt, true); + } + + /** KeyListener */ + @Override + public void keyReleased(KeyEvent e) { + Event evt = new Event("key.released"); + evt.setData(keyEventToData(e)); + returnEvent(evt, true); + } + + /** KeyListener */ + @Override + public void keyTyped(KeyEvent e) { + Event evt = new Event("key.typed"); + evt.setData(keyEventToData(e)); + returnEvent(evt, true); + } + + static Data keyEventToData(KeyEvent e) { + Data data = new Data(); + data.put("id", new Data(e.getID())); + data.put("keyChar", new Data(e.getKeyChar())); + data.put("keyLocation", new Data(e.getKeyLocation())); + data.put("modifiers", new Data(e.getModifiers())); + data.put("modifiersEx", new Data(e.getModifiersEx())); + data.put("when", new Data(e.getWhen())); + data.put("actionKey", new Data(e.isActionKey())); + data.put("altDown", new Data(e.isAltDown())); + data.put("altGraphDown", new Data(e.isAltGraphDown())); + data.put("ctrlDown", new Data(e.isControlDown())); + data.put("metaDown", new Data(e.isMetaDown())); + data.put("shiftDown", new Data(e.isShiftDown())); + + return data; + } +}
\ No newline at end of file |