Input.java 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package mdd.client.connectable;
  2. import javafx.scene.control.Label;
  3. import javafx.scene.control.TextField;
  4. import javafx.scene.input.KeyCode;
  5. import mdd.client.ConnectableType;
  6. import mdd.client.Module;
  7. import org.json.simple.JSONObject;
  8. public class Input extends Connectable {
  9. private TextField _input;
  10. public Input(Module parent, JSONObject json){
  11. super(parent, ConnectableType.INPUT, json);
  12. add(_connection,0,0);
  13. add(_label,1,0);
  14. add(_input,1,1);
  15. _input.setPrefWidth(50);
  16. _input.setOnKeyPressed(event -> {
  17. if (event.getCode().equals(KeyCode.ENTER)) {
  18. JSONObject jvalue = new JSONObject();
  19. jvalue.put("value", _input.getText());
  20. JSONObject jmsg = new JSONObject();
  21. jmsg.put("operation", "change");
  22. JSONObject jargs = new JSONObject();
  23. jargs.put("subject", getJSONIdentifier());
  24. jargs.put("object", jvalue);
  25. jmsg.put("args", jargs);
  26. _eventHandler.publishEvent("try", jmsg);
  27. }
  28. });
  29. }
  30. @Override
  31. public void configure(JSONObject json){
  32. super.configure(json);
  33. if (_input == null){
  34. _input = new TextField("");
  35. }
  36. _input.setText(Value.toString());
  37. }
  38. public TextField getInput(){
  39. return _input;
  40. }
  41. public void setConnected(boolean state){
  42. super.setConnected(state);
  43. _input.setVisible(!state);
  44. _input.setManaged(!state);
  45. }
  46. @Override
  47. public void processGUIEvent(String event, JSONObject args) {
  48. super.processGUIEvent(event, args);
  49. if (event.equals("change")){
  50. if (!args.containsKey("args")){
  51. return;
  52. }
  53. JSONObject jargs = (JSONObject) args.get("args");
  54. if (!jargs.containsKey("subject")){
  55. return;
  56. }
  57. JSONObject jsub = (JSONObject) jargs.get("subject");
  58. if (!jsub.equals(getJSONIdentifier())){
  59. return;
  60. }
  61. if (!args.containsKey("operation")){
  62. return;
  63. }
  64. JSONObject jobj = (JSONObject) jargs.get("object");
  65. if (jobj.containsKey("value")){
  66. _input.setText(jobj.get("value").toString());
  67. }
  68. }
  69. }
  70. }