Reputation: 3548
I'm trying to implement an automatic refresh on a List of components in a Vaadin view. The list gets its contents from a database. I can refresh the list with a button, that is already implemented.
However, I would like to know what is the simplest way to make it so, that this refresh event, that I already have, would automatically refresh in 5 minute (300 000 milliseconds) intervals?
Here's what I tried and it keeps refreshing even after I exit the view so it doesn't really work. I'd like the refresh to happen in 5 minute intervals only while that certain view is being shown.
UI myUI = UI.getCurrent();
myUI.setPollInterval(300000);
myUI.addPollListener(event -> {
refreshList();
});
How would I make it so that the refresh doesn't happen after navigating to other views? And is there some simpler way to do this in Vaadin? Thank you
Upvotes: 2
Views: 4084
Reputation: 4967
You could do so that you call
myUI.setPollInterval(300000);
when the view is activated, and you disable it by calling
myUI.setPollInterval(-1);
when another view is activated. If you use Vaadin Navigator, then you could use ViewChangeListener
for handling the polling.
Upvotes: 3