...
Fortschritts-Rad solange Prozess dauert - Ruft durch Button-Klick die View ProgressView als PopupWindow auf und schließt es automatisch sobald der Prozess beendet ist. Das PopupWindow sperrt die Benutzeroberfläche automatisch. Nur deshalb muss der Prozess nicht zwingend in einem eigenen Thread ausgeführt werden.
Code Block language java theme Confluence private void button_buttonClick(Button.ClickEvent event) { Window popup = PopupWindow.For(new ProgressView()).closable(false).draggable(false).resizable(false).modal(true).show(); UI.getCurrent().push(); try { // Start your process here } catch (InterruptedException e) { e.printStackTrace(); } popup.close(); }
XdevProgressBar dynamisch aktualisieren - Zeigt den aktuellen Fortschritt in der XdevProgressBar an. Der gesamte Prozess muss in einem eigenem Thread laufen.
Code Block language java theme Confluence private void progressBar_attach(ClientConnector.AttachEvent event) { // Find out the lenght of your process in total. The value is 1.0. // Starts a new thread Runnable task = ()->{ // Start your process. Find out the current progress and store it in 'value'. Value must be between 0.1 and 1.0. // Sets the value of the ProgressBar getUI().access(()->progressBar.setValue(value)); }; new Thread(new RunnableAccessWrapper(task)).start(); }