@Override public void receive(Event event) { if (event instanceof ItemStatePredictedEvent) { ItemStatePredictedEvent prediction = (ItemStatePredictedEvent) event; Item item = itemUIRegistry.get(prediction.getItemName()); if (item instanceof GroupItem) { // don't send out auto-update events for group items as those will calculate their state based on their // members and predictions aren't really possible in that case (or at least would be highly complex). return; } for (PageChangeListener pageChangeListener : pageChangeListeners.values()) { if (prediction.isConfirmation()) { pageChangeListener.keepCurrentState(item); } else { pageChangeListener.changeStateTo(item, prediction.getPredictedState()); } } } } }