checkboxGroup 复选框组

checkBoxGroup 支持用户使用一组复选框选择多个值。

  • XML 元素:checkBoxGroup

  • Java 类:JmixCheckboxGroup

基本用法

checkBoxGroup 最简单的用法是用于选择枚举值。

<checkboxGroup itemsEnum="com.company.onboarding.entity.DayOfWeek"
               label="Select days of week"
               themeNames="vertical"/>
check box group basics

数据绑定

该组件支持绑定至 data container 中的实体属性。

如需将 checkBoxGroup 绑定至实体属性:

  1. 使用 dataContainer 属性指定数据容器的名称。

  2. 使用 property 属性指定实体属性的名称。

<data>
    <instance class="com.company.onboarding.entity.User" id="userDc">
        <fetchPlan extends="_base">
            <property name="hobbies" fetchPlan="_base"/>
        </fetchPlan>
        <loader id="userDl"/>
    </instance>
    <collection class="com.company.onboarding.entity.Hobby" id="hobbiesDc">
        <fetchPlan extends="_base"/>
        <loader id="hobbiesDl">
            <query>
                <![CDATA[select e from Hobby e]]>
            </query>
        </loader>
    </collection>
</data>
<layout>
    <checkboxGroup dataContainer="userDc"
                   property="hobbies"
                   itemsContainer="hobbiesDc"
                   id="checkboxGroup"/>
</layout>

示例中,checkBoxGroup 会展示 Hobby 实体的实例名,getTypedValue() 方法返回选择实例的 Collection.

自定义选项

使用下列方法可以为 checkBoxGroup 设置选项:

  • setItems() - 支持编程式设置组件的选项。

    @ViewComponent
    private JmixCheckboxGroup<Integer> checkboxGroupInt;
    
    @Subscribe
    public void onInit(final InitEvent event) {
        checkboxGroupInt.setItems(new ArrayList<>(Arrays.asList(1,2,3,4,5)));
    }
  • ComponentUtils.setItemsMap() - 支持分别设置每个选项的显示名称和值。

    @ViewComponent
    private JmixCheckboxGroup<Integer> ratingCheckboxGroup;
    
    @Subscribe
    public void onInit(final InitEvent event) {
        Map<Integer,String> map = new LinkedHashMap<>();
        map.put(2,"Poor");
        map.put(3,"Average");
        map.put(4,"Good");
        map.put(5,"Excellent");
        ComponentUtils.setItemsMap(ratingCheckboxGroup, map);
    }

XML 属性

themeNames

使用 themeNames 属性定义选项的布局方式。

默认情况下,选项水平排列。

事件和处理器

在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 CodeGenerate 菜单(Alt+Insert / Cmd+N)生成。

XML 内部元素

参考