multiValuePicker 多值选择器
multiValuePicker 可以处理任意类型值的列表。由文本框和一组由操作定义的按钮组成。
如果需要通过操作按钮而不是通过文本框输入的方式编辑值列表,那么使用 multiValuePicker 会比较方便。
- 
XML 元素: multiValuePicker
- 
Java 类: JmixMultiValuePicker
基本用法
multiValuePicker 的基本用法示例:
<multiValuePicker id="stringsValuesPicker" label="Favourite colors">
    <actions>
        <action id="multiValueSelect" type="multi_value_select">
            <properties>
                <property name="javaClass" value="java.lang.String"/>
            </properties>
        </action>
        <action id="valueClear" type="value_clear"/>
    </actions>
</multiValuePicker>当用户点击选择按钮时,会展示 Select Value(选择值) 界面。用户可以在这个界面新建值或者从值列表中添加/删除。用户可以点击 Add(添加) 按钮或按下 Enter 添加值。
 
操作
可以给 multiValuePicker 配置自定义或预定义的操作,作为按钮显示在右侧。
定义操作可以用 XML 中用内部的 actions 元素或者在控制器中用 addAction() 方法编程式添加。
| 如需在 Jmix Studio 中添加  | 
预定义操作
框架提供了 value_clear 和 multi_value_select 预定义操作。
multi_value_select 操作使用一个值选择界面为 multiValuePicker 设置值。值选择界面会生成一个特定的组件用于选择值,或者根据传入的值类型创建值。
multi_value_select 操作可用来选择任意类型的值,示例:
- 
选择特定的 Java 类型,例如, String、Integer、Long、Double、BigDecimal、Date、LocalDate、LocalTime、LocalDateTime、OffsetTime、OffsetDateTime、Date、Time、UUID以及java.sql.Date、java.sql.Time。用 javaClass属性设置选择值的 Java 类型。在 上面 的示例中, multi_value_select操作使用了java.lang.StringJava 类型。
- 
选择 枚举 值 用 enumClass属性设置选择值的枚举类型。<multiValuePicker id="enumValuesPicker" label="Onboarding statuses"> <actions> <action id="multiValueSelect" type="multi_value_select"> <properties> <property name="enumClass" value="com.company.onboarding.entity.OnboardingStatus"/> </properties> </action> <action id="valueClear" type="value_clear"/> </actions> </multiValuePicker>对于枚举值,Select Value(选择值) 界面会生成 comboBox。
- 
选择 实体 实例 用 entityName属性设置选择值的实体名称。<multiValuePicker id="entityValuesPicker" label="Departments"> <actions> <action id="multiValueSelect" type="multi_value_select"> <properties> <property name="entityName" value="Department"/> <property name="useComboBox" value="true"/> </properties> </action> <action id="valueClear" type="value_clear"/> </actions> </multiValuePicker>useComboBox属性指定在值选择界面中是否用entityComboBox。默认为false。
自定义操作
multiValuePicker 的自定义操作与 valuePicker 的 自定义操作 类似。
XML 属性
id - allowCustomValue - autofocus - classNames - colspan - dataContainer - enabled - errorMessage - height - helperText - invalid - label - maxHeight - maxWidth - minHeight - minWidth - placeholder - property - readOnly - required - requiredIndicatorVisible - requiredMessage - tabIndex - themeNames - title - visible - width
事件和处理器
AttachEvent - BlurEvent - ComponentValueChangeEvent - CustomValueSetEvent - DetachEvent - FocusEvent - formatter - statusChangeHandler - validator
| 在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 Code → Generate 菜单(Alt+Insert / Cmd+N)生成。 |