diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementTableReceiver.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementTableReceiver.java new file mode 100644 index 0000000..3d5f915 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementTableReceiver.java @@ -0,0 +1,45 @@ +package simulator.interfaces.html; + +import models.algebra.Constant; +import models.algebra.Expression; +import models.algebra.Term; +import models.dataConstraintModel.JsonTerm; +import models.dataConstraintModel.MapTerm; +import simulator.Event; +import simulator.SystemState; +import simulator.interfaces.INativeReceiver; + +public class HtmlElementTableReceiver implements INativeReceiver { + + protected HtmlElement element; + private final IWebSocketMessageSender ws; + + private final String sessionId; + + public HtmlElementTableReceiver(HtmlElement elem, IWebSocketMessageSender ws, String sessionId) { + this.ws = ws; + this.sessionId = sessionId; + element = elem; + } + + @Override + public void onReceiveFromModel(Event event, SystemState nextSystemState) { + Expression message = event.getMessage(); + if (message instanceof Term) { + Expression text = ((Term) message).getChild(0); + if(text instanceof Constant) { + element.setText(text.toString()); + + JsonTerm json = new JsonTerm(); + json.addMember("method", new Constant("\"changeText\"")); + json.addMember("id", new Constant("\"" + element.getId() + "\"")); + MapTerm datas = new MapTerm(); + datas.insert("newText", new Constant(text.toString())); + json.addMember("datas", datas); + + ws.send(json.toString(), sessionId); + } + } + } + +}