package org.vaadin.smartgwt.client.extra; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.ui.Widget; import com.vaadin.terminal.gwt.client.ApplicationConnection; import com.vaadin.terminal.gwt.client.Paintable; import com.vaadin.terminal.gwt.client.UIDL; public class VRefresher extends Widget implements Paintable { private final Poller poller; private Element element; private String pid; private ApplicationConnection client; public VRefresher() { this.poller = new Poller(); } @Override public Element getElement() { return element == null ? element = DOM.createDiv() : element; } @Override public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { if (this.pid == null) { this.pid = uidl.getId(); this.client = client; } if (!uidl.hasAttribute("cached")) { poller.cancel(); if (uidl.hasAttribute("interval")) { poller.scheduleRepeating(uidl.getIntAttribute("interval")); } } } private class Poller extends Timer { @Override public void run() { client.updateVariable(pid, "r", true, true); } } }