- // TODO when ManualSwitch supports it, add listeners
- end.registerObserver((i) -> callComponentLookChangedListeners());
+ registerLogicObs(end);
+ registerLogicObs(logicSwitch);
+ }
+
+ public boolean hasLogicModelBinding()
+ {
+ return logicSwitch != null;
+ }
+
+ @Override
+ public void setHighLevelState(String stateID, Object newState)
+ {
+ if ("out".equals(stateID))
+ {
+ if (logicSwitch != null)
+ logicSwitch.setToValueOf((Bit) newState);
+ } else
+ super.setHighLevelState(stateID, newState);
+ }
+
+ private void registerLogicObs(LogicObservable observable)
+ {
+ if (observable != null)
+ observable.registerObserver(logicObs);
+ }
+
+ private void deregisterLogicObs(LogicObservable observable)
+ {
+ if (observable != null)
+ observable.deregisterObserver(logicObs);