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.String
Java 类型。 -
选择 枚举 值
用
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)生成。 |