3.10.1.2. 实体分类

如果实体实现了 com.haulmont.cuba.core.entity.Categorized 接口,则可以使用 com.haulmont.cuba.gui.components.RuntimePropertiesFrame 组件来显示该实体的动态属性。此组件允许用户为特定实体实例选择类别,并指定此类别的动态属性的值。

要在编辑界面中使用 RuntimePropertiesFrame 组件,请执行以下操作:

  • runtimePropsDatasource - 加载 CategoryAttributeValue 实例的特定数据源。mainDs 属性必须引用主数据源,其中包含被编辑的实体。

  • 一个常规的 collectionDatasource 来加载这个实体类型的类别列表。

示例:

  1. <dsContext>
  2. <datasource id="carDs"
  3. class="com.company.sample.entity.Car"
  4. view="carEdit"/>
  5. <runtimePropsDatasource id="runtimePropsDs"
  6. mainDs="carDs"/>
  7. <collectionDatasource id="categories"
  8. class="com.haulmont.cuba.core.entity.Category"
  9. view="_local">
  10. <query>
  11. select c from sys$Category c where c.entityType='sample$Car'
  12. </query>
  13. </collectionDatasource>
  14. </dsContext>
  • 现在,数据源配置好了,可以将 runtimeProperties 可视化组件添加在界面的 XML 描述中:
  1. <runtimeProperties id="runtimePropsFrame"
  2. runtimeDs="runtimePropsDs"
  3. categoriesDs="categories"/>