use of org.openhab.core.thing.events.ChannelDescriptionChangedEvent in project openhab-core by openhab.
the class SitemapSubscriptionService method receive.
@Override
public void receive(Event event) {
if (event instanceof ItemStatePredictedEvent) {
ItemStatePredictedEvent prediction = (ItemStatePredictedEvent) event;
Item item = itemUIRegistry.get(prediction.getItemName());
if (item instanceof GroupItem) {
// 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());
}
}
} else if (event instanceof ChannelDescriptionChangedEvent) {
ChannelDescriptionChangedEvent channelDescriptionChangedEvent = (ChannelDescriptionChangedEvent) event;
channelDescriptionChangedEvent.getLinkedItemNames().forEach(itemName -> {
for (PageChangeListener pageChangeListener : pageChangeListeners.values()) {
pageChangeListener.descriptionChanged(itemName);
}
});
}
}
use of org.openhab.core.thing.events.ChannelDescriptionChangedEvent in project openhab-core by openhab.
the class BaseDynamicStateDescriptionProviderTest method setStateOptionsPublishesEvent.
@Test
public void setStateOptionsPublishesEvent() {
subject.setStateOptions(CHANNEL_UID, List.of(new StateOption("offline", "Offline")));
ArgumentCaptor<Event> capture = ArgumentCaptor.forClass(Event.class);
verify(eventPublisherMock, times(1)).post(capture.capture());
Event event = capture.getValue();
assertTrue(event instanceof ChannelDescriptionChangedEvent);
ChannelDescriptionChangedEvent cdce = (ChannelDescriptionChangedEvent) event;
assertEquals(CommonChannelDescriptionField.STATE_OPTIONS, cdce.getField());
// check the event is not published again
subject.setStateOptions(CHANNEL_UID, List.of(new StateOption("offline", "Offline")));
verify(eventPublisherMock, times(1)).post(capture.capture());
}
use of org.openhab.core.thing.events.ChannelDescriptionChangedEvent in project openhab-core by openhab.
the class BaseDynamicCommandDescriptionProviderTest method setCommandOptionsPublishesEvent.
@Test
public void setCommandOptionsPublishesEvent() {
subject.setCommandOptions(CHANNEL_UID, List.of(new CommandOption("reboot", "Reboot")));
ArgumentCaptor<Event> capture = ArgumentCaptor.forClass(Event.class);
verify(eventPublisherMock, times(1)).post(capture.capture());
Event event = capture.getValue();
assertTrue(event instanceof ChannelDescriptionChangedEvent);
ChannelDescriptionChangedEvent cdce = (ChannelDescriptionChangedEvent) event;
assertEquals(CommonChannelDescriptionField.COMMAND_OPTIONS, cdce.getField());
// check the event is not published again
subject.setCommandOptions(CHANNEL_UID, List.of(new CommandOption("reboot", "Reboot")));
verify(eventPublisherMock, times(1)).post(capture.capture());
}
use of org.openhab.core.thing.events.ChannelDescriptionChangedEvent in project openhab-core by openhab.
the class BaseDynamicStateDescriptionProviderTest method setStatePatternPublishesEvent.
@Test
public void setStatePatternPublishesEvent() {
subject.setStatePattern(CHANNEL_UID, "%s");
ArgumentCaptor<Event> capture = ArgumentCaptor.forClass(Event.class);
verify(eventPublisherMock, times(1)).post(capture.capture());
Event event = capture.getValue();
assertTrue(event instanceof ChannelDescriptionChangedEvent);
ChannelDescriptionChangedEvent cdce = (ChannelDescriptionChangedEvent) event;
assertEquals(CommonChannelDescriptionField.PATTERN, cdce.getField());
// check the event is not published again
subject.setStatePattern(CHANNEL_UID, "%s");
verify(eventPublisherMock, times(1)).post(capture.capture());
}
Aggregations