From 12e187c8d7e9a405453157cece4176d959431e6e Mon Sep 17 00:00:00 2001 From: Manuel Krombholz <s3866577@msx.tu-dresden.de> Date: Tue, 2 Feb 2021 18:09:00 +0100 Subject: [PATCH] Added synchronizeWith --- eraser-base/src/main/jastadd/Item.jrag | 10 +++++++++- .../eraser/feedbackloop/execute/ExecuteImplTest.java | 12 ++++++------ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag index d28d3b1b..18e11cb4 100644 --- a/eraser-base/src/main/jastadd/Item.jrag +++ b/eraser-base/src/main/jastadd/Item.jrag @@ -137,7 +137,9 @@ aspect ItemHandling { //--- setStateFromBoolean --- public abstract void Item.setStateFromBoolean(boolean value); public void ColorItem.setStateFromBoolean(boolean value) { - setBrightness(value ? 100 : 0); + if (getState().getBrightness()==0) { + setBrightness(value ? 100 : 0); + } } public void DateTimeItem.setStateFromBoolean(boolean value) { // there is no good way here @@ -389,6 +391,12 @@ aspect ItemHandling { getRoot().addRule(createControllerRule(controllerItem,this)); } + public void Item.synchronizeWith(Item item) { + addControlledBy(item); + addControlling(item); + } + + private Rule Item.createControllerRule(Item controllerItem, Item controlledItem) { Rule rule = new Rule(); diff --git a/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java b/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java index 1ea42c30..3b0501e3 100644 --- a/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java +++ b/feedbackloop.execute/src/test/java/de/tudresden/inf/st/eraser/feedbackloop/execute/ExecuteImplTest.java @@ -31,7 +31,7 @@ public class ExecuteImplTest { lamp.enableSendState(); TestUtils.getDefaultGroup(model).addItem(lamp); - numberItem.addControlling(lamp); + numberItem.synchronizeWith(lamp); Execute execute = new ExecuteImpl(); execute.setKnowledgeBase(model.getRoot()); @@ -62,7 +62,7 @@ public class ExecuteImplTest { lamp.enableSendState(); TestUtils.getDefaultGroup(model).addItem(lamp); - button.addControlling(lamp); + button.synchronizeWith(lamp); Execute execute = new ExecuteImpl(); execute.setKnowledgeBase(model.getRoot()); @@ -103,10 +103,10 @@ public class ExecuteImplTest { lamp.enableSendState(); TestUtils.getDefaultGroup(model).addItem(lamp); - lamp.addControlledBy(numberItem); - lamp.addControlledBy(stringItem); - lamp.addControlledBy(booleanItem); - lamp.addControlledBy(colorItem); + lamp.synchronizeWith(numberItem); + lamp.synchronizeWith(stringItem); + lamp.synchronizeWith(booleanItem); + lamp.synchronizeWith(colorItem); Execute execute = new ExecuteImpl(); execute.setKnowledgeBase(model.getRoot()); -- GitLab