3.10.1.2. 实体分类
如果实体实现了 com.haulmont.cuba.core.entity.Categorized
接口,则可以使用 com.haulmont.cuba.gui.components.RuntimePropertiesFrame
组件来显示该实体的动态属性。此组件允许用户为特定实体实例选择类别,并指定此类别的动态属性的值。
要在编辑界面中使用 RuntimePropertiesFrame
组件,请执行以下操作:
- 在
dsContext
部分声明两个datasources:
runtimePropsDatasource
- 加载CategoryAttributeValue
实例的特定数据源。mainDs
属性必须引用主数据源,其中包含被编辑的实体。一个常规的
collectionDatasource
来加载这个实体类型的类别列表。
示例:
<dsContext>
<datasource id="carDs"
class="com.company.sample.entity.Car"
view="carEdit"/>
<runtimePropsDatasource id="runtimePropsDs"
mainDs="carDs"/>
<collectionDatasource id="categories"
class="com.haulmont.cuba.core.entity.Category"
view="_local">
<query>
select c from sys$Category c where c.entityType='sample$Car'
</query>
</collectionDatasource>
</dsContext>
- 现在,数据源配置好了,可以将
runtimeProperties
可视化组件添加在界面的 XML 描述中:
<runtimeProperties id="runtimePropsFrame"
runtimeDs="runtimePropsDs"
categoriesDs="categories"/>