CheckBox

Флажок (CheckBox) – компонент, имеющий два состояния: выбран, не выбран.

XML-имя компонента: checkBox.

check box

Основы

Пример использования:

<checkBox id="checkBox"
          caption="Create new document"/>

Сброс или установка флажка изменяет его значение: Boolean.TRUE или Boolean.FALSE. Значение может быть получено с помощью метода getValue() и установлено с помощью метода setValue(). Если в setValue() передать null, то устанавливается значение Boolean.FALSE и флажок снимается.

CheckBox, связанный с данными

Для создания флажка, связанного с данными, необходимо использовать атрибуты dataContainer и property.

<data>
    <instance id="userDc" class="ui.ex1.entity.User">
        <loader/>
    </instance>
</data>
<layout>
        <checkBox dataContainer="userDc"
                  property="enabled"
                  caption="User Property"/>
</layout>

Как видно из примера, в экране описывается контейнер данных userDc для некоторой сущности User, имеющей атрибут enabled. В компоненте CheckBox в атрибуте dataContainer указывается ссылка на контейнер данных, а в атрибуте property − название атрибута сущности, значение которого должно быть отображено флажком. Атрибут должен быть типа Boolean.

Внешний вид

Внешний вид компонента CheckBox можно настроить с помощью переменных SCSS с префиксом $jmix-checkbox-*.

События и слушатели

Чтобы сгенерировать заглушку слушателя в Jmix Studio, выберите компонент в XML-дескрипторе экрана или на панели иерархии Jmix UI и используйте вкладку Handlers на панели инспектора Jmix UI.

В качестве альтернативы вы можете воспользоваться кнопкой Generate Handler на верхней панели контроллера экрана.

ContextHelpIconClickHandler

Validator

Добавляет экземпляр валидатора в компонент. validator должен выбросить ValidationException, если значение недопустимо.

@Install(to = "checkBoxValid", subject = "validator")
protected void checkBoxValidValidator(Boolean value) {
    if (!value)
        throw new ValidationException("You must accept the terms of the license");
}

ValueChangeEvent

Метод ValueChangeListener можно использовать для отслеживания изменений значения CheckBox. Например:

@Autowired
private Notifications notifications;

@Subscribe("checkBox")
protected void onCheckBoxValueChange(HasValue.ValueChangeEvent<Boolean> event) {
    if (Boolean.TRUE.equals(event.getValue())) {
        notifications.create()
                .withCaption("set")
                .show();
    } else {
        notifications.create()
                .withCaption("not set")
                .show();
    }
}

Все XML-атрибуты

Просматривать и редактировать атрибуты, применимые к компоненту, можно с помощью панели инспектора Jmix UI в конструкторе экранов Studio.