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