Hello,
For some reason, I want to listen to an Event when a Screen is hidden or visible. For example, open a new page in a new tab. How should Ido?
Hello,
could you clarify in more details what you try to achieve? For now, you can check whether open screen or not like this:
@Inject
private Screens screens;
protected boolean isMyScreenOpened() {
Class<OrderBrowse> myScreenClass = OrderBrowse.class;
Optional<Screens.WindowStack> windowStack = screens.getOpenedScreens().getWorkAreaStacks().stream()
.filter(ws -> ws.getBreadcrumbs().stream().anyMatch(screen ->
screen.getClass() == myScreenClass)) // also may be check screen id, see Screen#isSameScreen
.findFirst();
return windowStack.isPresent();
}
I’ve got another way instead of listening to an event, I use a timer check Screens.WindowStack isSelected every second