CheckBox 复选框
基本用法
示例:
<checkBox id="checkBox"
caption="Create new document"/>
勾选或者取消勾选复选框会改变它的值为 Boolean.TRUE 或者 Boolean.FALSE。这个值可以通过 getValue() 方法获取,也可以通过 setValue() 方法设置。通过 setValue() 设置 null 的话,会把值改成 Boolean.FALSE 然后取消复选框的选择。
数据感知的 CheckBox
如需创建关联至数据的 CheckBox,可以用 XML 的 dataContainer 和 property 属性。
<data>
<instance id="userDc" class="ui.ex1.entity.User">
<loader/>
</instance>
</data>
<layout>
<checkBox dataContainer="userDc"
property="enabled"
caption="User Property"/>
</layout>
从这个例子可以看出,这个界面包含了一个关联 User 实体的 userDc,User 实体具有 enabled 属性。CheckBox 的 dataContainer 属性需要指向一个数据容器;property 属性需要指向实体中需要展示到 CheckBox 的字段名字,这个字段必须要是 Boolean 类型。
事件和处理器
|
如需使用 Jmix Studio 生成处理器的桩代码,需要在界面 XML 描述或者 Jmix UI 层级结构面板选中该组件,然后用 Jmix UI 组件面板的 Handlers 标签页生成。 或者可以使用界面控制器顶部面板的 Generate Handler 按钮。 |
Validator
为组件添加 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();
}
}
CheckBox XML 属性
|
可以使用 Studio 界面设计器的 Jmix UI 组件面板查看和编辑组件的属性。 |
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