def init(self): mainWindow = Window('Refresher') self.setMainWindow(mainWindow) panel = Panel('Refresher example') layout = HorizontalLayout() refresher = Refresher() label = Label('0') thread = CounterThread(label) thread.start() label.setData(0) panel.addComponent(refresher) panel.addComponent(Label("<div style='margin-bottom:10px'>" + "The Refresher allows you to affect the UI " + "from external threads without " + "<a href='http://vaadin.com/forum/-/message_boards/message/69792' target='_blank'>" + "the ProgressIndicator hack</a>.</div>", Label.CONTENT_XHTML)) panel.addComponent(layout) layout.setSpacing(True) layout.addComponent(Button('Start Counting', StartClickListener(refresher, thread))) layout.addComponent(Button('Stop Counting', StopClickListener(refresher, thread))) layout.addComponent(label) mainWindow.setContent(panel)