progressBar
Визуальный индикатор для отображения статуса и прогресса выполнения текущей задачи, такой как передача файлов, загрузка данных, сложные вычисления или другие длительные операции. Помогает пользователям оценить оставшееся время выполнения.
- 
XML-элемент: progressBar
- 
Java-класс: ProgressBar
Основы
Стандартный индикатор прогресса принимает значения от 0.0 до 1.0, где 0% соответствует 0.0, а 100% - 1.0.
 
XML код
<progressBar value="0.5"/>Обновление прогресса
Значение прогресса обычно обновляется в контексте выполняемой задачи. Это позволяет индикатору прогресса точно отображать текущее состояние операции.
Рассмотрим пример простой фоновой задачи, которая обновляет значение progressBar:
XML код
<progressBar id="progressBar"/>Java код
@ViewComponent
protected ProgressBar progressBar; (1)
@Autowired
protected BackgroundWorker backgroundWorker;
protected BackgroundTaskHandler<Void> taskHandler;
private static final int ITERATIONS = 6;
@Subscribe
protected void onInit(InitEvent event) {  (2)
    taskHandler = backgroundWorker.handle(createBackgroundTask());
    taskHandler.execute();
}
protected BackgroundTask<Integer, Void> createBackgroundTask () { (3)
    return new BackgroundTask<>(100, TimeUnit.SECONDS) {
        @Override
        public Void run(TaskLifeCycle<Integer> taskLifeCycle) throws Exception {
            for (int i=1; i< ITERATIONS; i++) {
                TimeUnit.SECONDS.sleep(1);
                taskLifeCycle.publish(i);
            }
            return null;
        }
        @Override
        public void progress (List<Integer> changes) {
            double lastValue = changes.get(changes.size() - 1);
            double value = lastValue/ITERATIONS;
            progressBar.setValue(value); (4)
        }
    };
}| 1 | Инжектируйте progressBarдля доступа к нему в классе контроллера. | 
| 2 | При открытии этого экрана инициируйте задачу для выполнения в фоновом режиме. | 
| 3 | Определите метод для создания простой фоновой задачи. | 
| 4 | По мере выполнения задачи обновляйте значение прогресса, чтобы отражать её текущий статус. | 
Режимы работы
Индикатор прогресса может работать в детерминированном или недетерминированном режиме, в зависимости от характера задачи и доступности информации о прогрессе.
Детерминированный режим
По умолчанию progressBar отображает прогресс в детерминированном режиме. Этот режим предоставляет пользователям визуальное представление оставшегося времени до завершения задачи.
 
XML код
<progressBar id="determinateMode"/>Используйте детерминированный индикатор прогресса, когда время выполнения задачи известно заранее или можно отслеживать прогресс.
Недетерминированный режим
Установив атрибут indeterminate в значение true, вы можете перевести индикатор прогресса в недетерминированный режим. В этом режиме progressBar циклически анимируется по всей длине полосы, не отображая конкретного значения прогресса.
 
XML код
<progressBar id="indeterminateMode" indeterminate="true"/>Используйте этот режим для задач, которые не предоставляют значение прогресса или для обозначения непрерывно выполняющегося процесса.
Диапазон значений
По умолчанию индикатор прогресса принимает значения от 0.0 до 1.0, что соответствует 0% и 100% соответственно. Это стандартное поведение, которое можно изменить с помощью атрибутов min и max.
Например, если ваша задача состоит из 10 шагов, вы можете установить min="1" и max="10", чтобы соответствовать диапазону прогресса задачи. Достижение 5-го шага будет означать, что значение прогресса также достигло 5:
 
XML код
<progressBar min="0" max="10" value="5"/>Диалог прогресса
Если требуется, чтобы пользователь дождался завершения задачи, можно использовать диалог фоновой задачи.
 
Этот диалог блокирует взаимодействие пользователя с остальной частью приложения до тех пор, пока задача не будет завершена или отменена пользователем.
Атрибуты
id - alignSelf - classNames - colspan - css - height - indeterminate - max - maxHeight - maxWidth - min - minHeight - minWidth - themeNames - value - visible - width
themeNames
Устанавливает тему для изменения цветов компонента и привлечения внимания пользователя.
 
- 
contrast– применяет более контрастную цветовую схему.
- 
error– сигнализирует об ошибочном состоянии.
- 
success– указывает на успешное выполнение.
Обработчики
| Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню Code → Generate (Alt+Insert / Cmd+N). | 
Смотрите также
Смотрите документацию Vaadin для получения дополнительной информации.