CUBA平台:为类层次结构设计屏幕

Mik*_*ike 3 cuba-platform

我有4个实体:

人(姓名,电子邮件等)

  • 对应人员(银行和付款信息等)
  • 客户延伸对应(折扣,crm信息等)
  • 提供商扩大对口(供应,产品等)

我需要3个屏幕,除了Counterpart之外每个屏幕一个,我在几个设计可能性中犹豫不决.目标是避免给定屏幕中存在父实体已存在屏幕的重复字段.例如,如果我为Person设计了一个屏幕,我想以某种方式在子屏幕实体的屏幕中重复使用此屏幕(而不是复制字段,例如'name').

我带来了以下选项:

  1. 对platfom screen/xml继承非常感兴趣,这似乎很适合我的问题,但它确实只适用于平台屏幕,而不是用户设计的,不幸的是.

  2. 设计一个(智能)屏幕,您可以在某种程度上选择实体类型,然后屏幕会动态添加GUI组件来处理实体的细节.屏幕将更加复杂,并且主要通过代码进行管理,而不是视觉设计,这让我很烦恼(为什么还有视觉设计师).除非有设计提示.

  3. 设计3个不同的屏幕,但有一种方法可以重复使用以前在视觉上设计的字段组.我知道我可以在代码中完全生成GUI组件.

  4. 为实体细节设计3个编辑器屏幕,并有一些方法来组合/嵌入它们,但在这种情况下,我可能不得不将实体模型从继承更改为组合,以使其更容易.

现在我倾向于选项2),当他们处理的细节不再相关时,使用例如框架折叠自己,但我担心它不会起作用,因为编辑器绑定到特定的类.

经验丰富的CUBA开发人员会建议什么?

ale*_*exb 5

它取决于您可能重复使用的控制器逻辑量.为代码重用复杂化代码结构真的有回报吗?我认为应该至少有10个具有复杂验证/动态外观逻辑的常见字段才能重用.

我会选择框架.将布局和关联逻辑的可重用部分提取到框架中,然后将框架嵌入到实体编辑器中.

通过使用框架,您可以将任何批量屏幕分解为更小,更易于管理的部分.

此外,可以将包含非平凡逻辑的字段验证器,自定义字段生成器,表格样式提供程序,格式化程序等提取为上级类.因此,它们可以在整个项目中重复使用.