Input.java 2.4 KB

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