ProgressBar
The ProgressBar component allows visualizing progress of a task. The progress is specified as a floating-point value between 0.0 and 1.0.
The ProgressBar component
To display upload progress with the Upload component, you can update the progress bar in a ProgressListener.
When the position of a progress bar is done in a background thread, the change is not shown in the browser immediately. You need to use either polling or server push to update the browser. You can enable polling with setPollInterval() in the current UI instance. See “Server Push” for instructions about using server push. Whichever method you use to update the UI, it is important to lock the user session by modifying the progress bar value inside access() call, as illustrated in the following example and described in .
Java
Java
Indeterminate progress bar
The progress bar is typically used to display the progress of a heavy server-side computation task, often running in a background thread. The UI, including the progress bar, can be updated either with polling or by using server push. When doing so, you must ensure thread-safety, most easily by updating the UI inside a UI.access() call in a Runnable, as described in “Accessing UI from Another Thread”.
In the following example, we create a thread in the server to do some “heavy work” and use polling to update the UI. All the thread needs to do is to set the value of the progress bar with setValue() and the current progress is displayed automatically when the browser polls the server.
Java
Doing heavy work
CSS
The progress bar has a v-progressbar base style. The progress is an element with v-progressbar-indicator style inside the wrapper, and therefore displayed on top of it. When the progress element grows, it covers more and more of the animated background.
The progress bar can be animated (some themes use that). Animation is done in the element with the v-progressbar-wrapper style, by having an animated GIF as the background image.
In the indeterminate mode, the top element also has the v-progressbar-indeterminate style. The built-in themes simply display the animated GIF in the top element and have the inner elements disabled.