12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package mdd.client.connectable;
- import javafx.geometry.Pos;
- import javafx.scene.control.Label;
- import javafx.scene.control.TextField;
- import javafx.scene.input.KeyCode;
- import mdd.client.ConnectableType;
- import mdd.client.Module;
- import org.json.simple.JSONObject;
- public class Input extends Connectable {
- private TextField _input;
- public Input(Module parent, JSONObject json){
- super(parent, ConnectableType.INPUT, json);
- add(_connection,0,0);
- add(_label,1,0);
- add(_input,1,1);
- setAlignment(Pos.CENTER_LEFT);
- _input.setPrefWidth(50);
- _input.setOnKeyPressed(event -> {
- if (event.getCode().equals(KeyCode.ENTER)) {
- JSONObject jvalue = new JSONObject();
- jvalue.put("value", _input.getText());
- JSONObject jmsg = new JSONObject();
- jmsg.put("operation", "change");
- JSONObject jargs = new JSONObject();
- jargs.put("subject", getJSONIdentifier());
- jargs.put("object", jvalue);
- jmsg.put("args", jargs);
- _eventHandler.publishEvent("try", jmsg);
- }
- });
- }
- @Override
- public void configure(JSONObject json){
- super.configure(json);
- if (_input == null){
- _input = new TextField("");
- }
- _input.setText(Value.toString());
- }
- public TextField getInput(){
- return _input;
- }
- public void setConnected(boolean state){
- super.setConnected(state);
- _input.setVisible(!state);
- _input.setManaged(!state);
- }
- @Override
- public void processGUIEvent(String event, JSONObject args) {
- super.processGUIEvent(event, args);
- if (event.equals("change")){
- if (!args.containsKey("args")){
- return;
- }
- JSONObject jargs = (JSONObject) args.get("args");
- if (!jargs.containsKey("subject")){
- return;
- }
- JSONObject jsub = (JSONObject) jargs.get("subject");
- if (!jsub.equals(getJSONIdentifier())){
- return;
- }
- if (!args.containsKey("operation")){
- return;
- }
- JSONObject jobj = (JSONObject) jargs.get("object");
- if (jobj.containsKey("value")){
- _input.setText(jobj.get("value").toString());
- }
- }
- }
- }
|