问题标签 [cuba-platform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
745 浏览

vaadin - 表格上的自定义双击事件

我有一张客户表。我不想通过双击该项目来获得编辑屏幕。

如何更改表格上的默认双击操作?

0 投票
2 回答
1019 浏览

java - CUBA 平台 - 如何自定义前端 Web 应用程序屏幕?

我在 CUBA Studio 中启动我的项目,然后单击/app链接。它出现了一个空白屏幕:

在此处输入图像描述

在 CUBA Studio 的 Screens 选项卡中绝对没有任何内容。

是否可以以任何方式使用 GUI 屏幕自定义此“主页”?

如果没有,有没有办法让其中一个选项卡默认打开,比如在管理中打开“仪表板”选项卡?

0 投票
1 回答
217 浏览

cuba-platform - 使用 CreateExportDisplay 从数据库下载文件

我在文档中阅读了用于将文件下载到用户计算机的“下载文件”部分。因为它是基于带有FileDescriptor的CreateExportDisplay,我的问题是我已经将数据库中的文件存储在一个blob字段中,我想将它们从数据库下载到用户的计算机,在CreateExportDisplay中有什么实现吗?

0 投票
0 回答
115 浏览

cuba-platform - CUBA:在编辑器中注入容器

我有一个扩展 AbstractEditor 的标准 ProductEdit 屏幕。

我正在尝试 @Inject 组件层次结构的根容器,以便遍历层次结构并添加一个 ValueChangeListener 来改变样式。

为此,我注入了在本例中为根的滚动框。没有机会(NPE,没有注射)。

然后我通过在我注入的组件之一上调用 getParent() 向上尝试,没有父级,NPE。

如何使用 CUBA 遍历组件层次结构?

0 投票
1 回答
427 浏览

cuba-platform - CUBA 平台:从表格操作中打开的编辑器窗口高度无效

我有一个屏幕,其中有一个表处理与一个实体(简单,2 个字段)的多对多关系,其中定义了 1 个单条记录。

我为关联实体创建了标准浏览器屏幕,并为前一个屏幕的操作表“添加”定义了 openType = DIALOG。

然后对话框窗口的高度过于紧凑(见下面的截图),我想这是因为没有足够的实体来显示所以高度计算是错误的。

对话框高度错误

如果我在对话框窗口上执行“分析布局”,我会收到以下警告:

作为一种解决方法,我尝试在工作室中手动设置桌面高度,没有机会。

在工作室中没有看到手动设置窗口高度的位置,所以我尝试通过重写 init 方法重新定义它(见下文),没有机会。

下面是所述对话框的xml。

0 投票
1 回答
560 浏览

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

我有 4 个实体:

人员(姓名、电子邮件等)

  • 对方扩展人(银行和付款信息等)
  • 客户扩展对应方(折扣、crm 信息等)
  • 提供者扩展对应方(供应、产品等)

我需要 3 个屏幕,每个屏幕一个,除了 Counterpart,我在几种设计可能性中犹豫不决。目标是避免给定屏幕中的重复字段,其中父实体的屏幕已经存在。例如,如果我为 Person 设计了一个屏幕,我想以某种方式在子实体的屏幕中重用这个屏幕(而不是复制“名称”等字段)。

我提供了以下选项:

  1. 对平台屏幕/xml 继承非常感兴趣,这似乎很适合我的问题,但遗憾的是,它仅适用于平台屏幕,而不是用户设计的屏幕。

  2. 设计一个(智能)屏幕,您可以在其中以某种方式选择实体类型,然后屏幕添加动态 GUI 组件来处理实体的细节。屏幕将更加复杂,主要由代码而不是视觉设计来管理,这让我很恼火(为什么要有视觉设计师)。除非有设计技巧。

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

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

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

有哪些经验丰富的 CUBA 开发人员会给出建议?

0 投票
1 回答
115 浏览

cuba-platform - CUBA 框架中具有特定起始值的自动编号

如何从任何特定值开始自动编号,例如 CUBA 平台中的 1000?

0 投票
1 回答
837 浏览

cuba-platform - CUBA:编辑操作没有打开预期的屏幕

我有:
- 一个标准的 Person 浏览器屏幕
- 一个 Person 编辑器框架
- 一个仅包含 Person 编辑器框架的 Person 编辑器屏幕

出于某种原因,当我从浏览器打开编辑器时,我面对的屏幕不是我所期望的,而且我没有设计。所述屏幕似乎是动态自动生成的。

框架设计(映射到 person-edit-frame.xml):

嵌入框架的屏幕(映射到 person-edit.xml):

我得到的屏幕:

屏幕 2

编辑:screens.xml

0 投票
1 回答
422 浏览

cuba-platform - CUBA:实体继承

提供的示例“实体继承”具有以下实体模型:
- 客户
- 公司扩展客户
- 人员扩展客户
- 订单

OrderEdit 屏幕显示如何处理与可能是公司或个人的客户关联的字段的继承。这是非常清楚的。

但是,Company 和 Person 的编辑屏幕不考虑继承:它们只是复制通常从 Customer 继承的“email”字段。

考虑到我此时的所有输入,如果我必须设计这些屏幕,我会提出以下方法。

1)CustomerEditFrame:带有电子邮件字段,未定义数据源

2) PersonEditScreen:
- Person 数据源
- 在 Person 数据源上映射 lastName 和 firstName 字段
- 嵌入 CustomerEditFrame
- 在 CustomerEditFrame 中注入 Person 数据源

3) CompanyEditScreen:
- 公司数据源
- 将行业字段映射到公司数据源
- 嵌入 CustomerEditFrame
- 在 CustomerEditFrame 中注入公司数据源

然后 CustomerEditFrame 负责编辑它在引用两个子类中的任何一个的数据源中知道的字段子集。这种设计能行吗?

为了文档的完整性,我认为这应该包含在示例中,因为这是常见的情况。此外,这将是帧操作的一个很好的样本。

0 投票
1 回答
385 浏览

cuba-platform - CUBA:动态地在框架中注入数据源

与问题CUBA有关:实体继承

我有:
- 客户实体(姓名、电子邮件)
- 公司扩展客户(行业)
- 人员扩展客户(名字、姓氏)

我想设计以下屏幕:
- CustomerEditFrame,未定义数据源- CompanyEditScreen 嵌入
CustomerEditFrame
- PersonEditScreen 嵌入 CustomerEditFrame

然后我需要定义框架的数据源:
- 在 CompanyEditScreen 中,需要为框架定义
companyDs - 在 PersonEditScreen 中,需要为 personDs

我看到的选项:
1)在嵌入框架的所有屏幕中,使用相同的数据源名称(例如 customerDs),以便可以将其注入框架:令人困惑,如果我有一个公司数据源,我想将其称为 companyDs 而不是 customerDs
2) 从框架中,调用 getDsContext().get(ds_id) : nok,因为 ds 的名称发生了变化
3) 从框架中,迭代 getDsContext().getAll() 并在 Customer 类或子类上查找数据源并确保只有一个:不安全,不确定得到正确的一个
4) 从屏幕,例如 CompanyEditScreen,在 init() 方法中将 companyDs 分配给框架:本身没有这样做的方法

浏览了所有示例(包括采样器代码)。更接近的案例是 Sales 示例的 OrderEdit 屏幕,它根据 Operation 类型动态打开一个框架。它不包括继承,但使用的解决方案基于数据源名称(第一个选项,我在处理子类时感到困惑)。

我应该怎么做 ?