checkbox
Флажок (checkbox) - это компонент с двумя состояниями: выбранный или невыбранный.
| XML-элемент | 
 | 
|---|---|
| Java-класс | 
 | 
| Атрибуты | id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - clickShortcut - colspan - css - dataContainer - enabled - focusShortcut - height - indeterminate - label - maxHeight - maxWidth - minHeight - minWidth - property - readOnly - required - tabIndex - value - visible - width | 
| Обработчики | AttachEvent - BlurEvent - ClickEvent - ComponentValueChangeEvent - DetachEvent - FocusEvent | 
| Элементы | 
Привязка данных
Привязка данных означает связывание визуального компонента с контейнером данных. Изменения в визуальном компоненте или соответствующем контейнере данных могут вызывать обновления друг друга. Смотрите Использование компонентов данных для получения дополнительной информации.
Следующий пример создает checkbox, связанный с данными. Атрибут сущности должен быть типа Boolean.
<data>
    <instance id="userDc"
              class="com.company.onboarding.entity.User"> (1)
        <fetchPlan extends="_base"/> (2)
        <loader/>
    </instance>
</data>
<layout>
    <checkbox id="checkbox"
              label="Active"
              dataContainer="userDc"
              property="active"/> (3)
</layout>| 1 | InstanceContainerдля сущностиUser. | 
| 2 | Встроенный план выборки экземпляра сущности, находящегося в контейнере. | 
| 3 | Привязка компонента к контейнеру данных и свойству. Атрибут dataContainerсодержит ссылку на контейнер данныхuserDc, а атрибутpropertyссылается на атрибут сущностиactive. | 
Состояния
checkbox может находиться в нескольких состояниях, определяющих его внешний вид и функциональность.
Enabled
- 
Включено: Флажок интерактивный и реагирует на действия пользователя. Пользователи могут щелкнуть по нему, чтобы изменить его состояние. 
- 
Отключено: Флажок неактивен и не реагирует на действия пользователя. Визуально он часто отображается серым цветом, чтобы указать на его неактивное состояние. 
 
XML code
<checkbox label="The enabled checkbox"
          value="true"
          enabled="true"/>
<checkbox label="The disabled checkbox"
          enabled="false"
          value="true"/>Read-only
Атрибут readOnly управляет возможностью взаимодействия пользователя с компонентом checkbox. Если он установлен в true, флажок становится доступным только для чтения, то есть пользователь не может изменить его состояние.
XML code
<checkbox label="The readOnly checkbox"
          value="true"
          readOnly="true"/>
<checkbox label="The editable checkbox"
          readOnly="false"
          value="true"/>Indeterminate
Атрибут indeterminate управляет тем, находится ли флажок в неопределенном состоянии. Это состояние представляет собой ситуацию, когда флажок не полностью отмечен и не полностью снят.
Визуально это меняет внешний вид флажка, чтобы указать на неопределенное состояние.
| В соответствии со стандартом HTML5, это влияет только на внешний вид, а не на значение "checked". | 
 
XML code
<checkbox label="With indeterminate state = true"
          value="false"
          indeterminate="true"/>
<checkbox label="With indeterminate state = false"
          indeterminate="false"
          value="false"/>Required
Компонент можно настроить как обязательный, используя атрибут required или связав его с обязательным атрибутом c @NotNull валидацией.
| Как и поля ввода, checkbox пройдет валидацию @NotNullтолько в том случае, если он не пуст (т.е. если он отмечен). Поведение по умолчанию можно изменить с помощью свойства jmix.ui.component.checkbox-required-state-initialization-enabled которое позволяет считать неотмеченное состояние равным значениюfalse. | 
События клика мыши
Событие com.vaadin.flow.component.ClickEvent генерируется при клике на компонент. Этот обработчик должен указать один из трех следующих субъектов, чтобы определить количество кликов, связанных с событием.
- 
click - запускает событие при каждом клике на компонент. 
- 
singleClick - запускает событие после таймаута, чтобы убедиться, что это не двойной щелчок. 
- 
doubleClick - запускает событие, когда по компоненту происходит двойной щелчок. 
Например:
Событие com.vaadin.flow.component.ClickEvent отправляется, когда пользователь кликает по флажку.
@Autowired
private Notifications notifications;
@Subscribe(id = "checkbox", subject = "clickListener")
public void onCheckboxClick(final ClickEvent<JmixCheckbox> event) {
    if (event.getSource().getValue()){
        notifications.show("Set");
    } else {
        notifications.show("Not set");
    }
}Атрибуты
В Jmix есть множество общих атрибутов, которые выполняют одну и ту же функцию для всех компонентов.
Ниже приведены атрибуты, специфичные для checkbox:
| Название | Описание | Значение по умолчанию | 
|---|---|---|
| Устанавливает компонент явно отключенным или включенным. Смотрите Состояние Enabled. | 
 | |
| Устанавливает неопределенное состояние флажка. Смотрите Состояние Indeterminate. | 
 | |
| Указывает, находится ли компонент  | 
 | |
| Устанавливает обязательное состояние для  | 
 | 
Обработчики
В Jmix существует множество общих обработчиков, которые конфигурируются одинаково для всех компонентов.
Ниже приведены обработчики, специфичные для checkbox.
| Чтобы сгенерировать заглушку обработчика в Jmix Studio, используйте вкладку Handlers панели инспектора Jmix UI, или команду Generate Handler, доступную на верхней панели контроллера экрана и через меню Code → Generate (Alt+Insert / Cmd+N). | 
| Название | Описание | 
|---|---|
| Событие  | 
Смотрите также
Смотрите документацию Vaadin для получения дополнительной информации.
