diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElement.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElement.java index 0ffb191..691a5e9 100644 --- a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElement.java +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElement.java @@ -22,16 +22,10 @@ public void setStyle(String property, String value) { styles.put(property, value); - /* - * こちら側にwebsocketの処理を書く場合 - * ws.send("styleChange", id, { property : value } ); - * みたいな感じになりそう - */ } public void resetStyle(String property) { styles.remove(property); - // ws.send("styleChange", id, { property : null }); } diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementVisibilityReceiver.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementVisibilityReceiver.java index 986e170..e264a89 100644 --- a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementVisibilityReceiver.java +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlElementVisibilityReceiver.java @@ -4,6 +4,8 @@ import models.algebra.Expression; import models.algebra.Term; import models.dataConstraintModel.DataConstraintModel; +import models.dataConstraintModel.JsonTerm; +import models.dataConstraintModel.MapTerm; import simulator.Event; import simulator.interfaces.INativeReceiver; @@ -14,8 +16,11 @@ // protected HtmlElement element; - public HtmlElementVisibilityReceiver(HtmlElement elem){ + private final IWebSocketMessageSender ws; + + public HtmlElementVisibilityReceiver(HtmlElement elem, IWebSocketMessageSender ws){ this.element = elem; + this.ws = ws; } @Override @@ -26,10 +31,28 @@ if (visible instanceof Constant) { if (((Constant) visible).getSymbol() == DataConstraintModel.true_) { element.setStyle("display", "none"); - //ws.send("styleChange", element.id, "{\"display\" : \"none\"}");みたいな? + + JsonTerm json = new JsonTerm(); + json.addMember("method", new Constant("changeStyle")); + json.addMember("id", new Constant(element.getId())); + MapTerm datas = new MapTerm(); + datas.insert("display", new Constant("none")); + json.addMember("datas", datas); + + ws.send(json.toString()); + + } else { element.resetStyle("display"); - //ws.send("styleChange", element.id, "{\"display\" : \"null\" }"); + + JsonTerm json = new JsonTerm(); + json.addMember("method", new Constant("changeStyle")); + json.addMember("id", new Constant(element.getId())); + MapTerm datas = new MapTerm(); + datas.insert("display", new Constant("null")); + json.addMember("datas", datas); + + ws.send(json.toString()); } } } diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlPresenter.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlPresenter.java index 796a0e7..3c33521 100644 --- a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlPresenter.java +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/HtmlPresenter.java @@ -31,8 +31,11 @@ protected Map elements; - public HtmlPresenter(Simulator simulator) { + protected IWebSocketMessageSender ws; + + public HtmlPresenter(Simulator simulator, IWebSocketMessageSender ws) { this.simulator = simulator; + this.ws = ws; screenUpdateChannel = (DataTransferChannel) simulator.getModel().getChannel(screenUpdateChannelName); setVisibleChannel = (DataTransferChannel) simulator.getModel().getChannel(setVisibleChannelName); mouseEventChannel = (DataTransferChannel) simulator.getModel().getInputChannel(mouseEventChannelName); @@ -86,7 +89,7 @@ //そもそもボタンが押されたらREST API が叩かれるのでは? //可視化、不可視化のやつ - HtmlElementVisibilityReceiver nativeReceiver = new HtmlElementVisibilityReceiver(button); + HtmlElementVisibilityReceiver nativeReceiver = new HtmlElementVisibilityReceiver(button, ws); simulator.addNativeReceiver(nativeReceiver, setVisibleChannel, widgetResouce); Set resources = channelAndResourcesForReceiving.get(setVisibleChannel);//この辺謎 if (resources == null) { diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/IWebSocketMessageSender.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/IWebSocketMessageSender.java new file mode 100644 index 0000000..e48fe6b --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/html/IWebSocketMessageSender.java @@ -0,0 +1,7 @@ +package simulator.interfaces.html; + +public interface IWebSocketMessageSender { + + void send(String message); + +}