+ @Override
+ public void addListener(Consumer<Object> stateChanged)
+ {
+ if (targetListeners.get(stateChanged) != null)
+ // this listener is/was already registered
+ return;
+
+ Consumer<Object> targetListener = o -> stateChanged.accept(getHighLevelState());
+ targetListeners.put(stateChanged, targetListener);
+
+ for (String target : vectorPartTargets)
+ component.addHighLevelStateListener(target, targetListener);
+ }
+
+ @Override
+ public void removeListener(Consumer<Object> stateChanged)
+ {
+ Consumer<Object> targetListener = targetListeners.get(stateChanged);
+ if (targetListener == null)
+ // this listener is/was not registered
+ return;
+
+ for (String target : vectorPartTargets)
+ component.removeHighLevelStateListener(target, targetListener);
+ }
+