diff --git a/eraser-base/src/main/jastadd/Item.jrag b/eraser-base/src/main/jastadd/Item.jrag index d28d3b1b492c2d1d731bb51d2bdb2a058c265156..18e11cb4d2800f424acb71ff82f725c955844855 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 1ea42c30dbce19cb979dfa4d19f8c52ae5cbf16e..3b0501e31c1f7fa4ca849ff3b087aa9361f4666e 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());