CheckBox
Флажок (CheckBox
) – компонент, имеющий два состояния: выбран, не выбран.
XML-имя компонента: checkBox
.
Основы
Пример использования:
<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 на верхней панели контроллера экрана. |
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. |
align - buffered - caption - captionAsHtml - colspan - contextHelpText - contextHelpTextHtmlEnabled - css - dataContainer - description - descriptionAsHtml - editable - enable - box.expandRatio - height - htmlSanitizerEnabled - icon - id - property - responsive - rowspan - stylename - tabIndex - visible - width