问题标签 [gwt-editors]

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 投票
1 回答
124 浏览

gwt - 如何允许单项/子编辑器 GWT 编辑器从包含它的 ListEditor 中删除自己?例如点击删除按钮

在尝试使用 GWT 的ListEditor系统时,我找不到一个工作示例,其中列表中每个项目的 UI 都有一个删除/删除按钮。

我发现的例子都像这个[1] 并且有一个EditorSource.create()实现创建每个项目Editor,并且似乎连接了一个处理程序以通过listEditor.getList().remove(index).

但是,删除处理程序的匿名实现在子编辑器创建时围绕 index 的值关闭,这会导致IndexOutOfBoundExceptions或错误的项目被删除,因为每次删除都会更改其后所有项目的索引。

我把头发拉了一会儿,试图看看我在示例中缺少什么以防止这种情况发生,但据我所知,他们确实都有这个问题,所以虽然修复相当简单,但我仍然会发布它在这里,因此人们至少可以找到一个正确删除项目的示例。

[1] 我认为我发现的所有示例都源自我链接的示例,尽管该示例在 remove() 中特别具有更多逻辑,并且可能一直在做一些事情来避免问题,例如以某种方式更正列表顺序,我还没有深入研究该项目中的其他代码。

0 投票
1 回答
287 浏览

gwt - 带有 UiBinder 和 UiEditors 框架的 Gwt 平台(GWT 编辑器)

我在 gwt 的编辑器框架中挣扎。主要是因为文档很蹩脚-没有受伤的感觉-只是说。

现在我遇到无法在编辑器上执行按钮事件的问题。这是我的错误:

我不确定我做错了什么。我没有找到任何好的例子。我希望有人会帮忙。

这是我的代码:

编辑

主持人

看法

查看.ui.xml

用户界面处理程序

0 投票
1 回答
1588 浏览

validation - 如何使用 Presenter 类中的编辑器和验证框架在 GWT 材质输入上显示表单验证约束消息?

我用:

约束验证后,我想显示错误消息。这由 gwt 材料输入支持,例如MaterialTextBox使用方法: materialTextBox.setError("Please provide your name");

问题是它只能从视图类执行:

但是我在 中执行了所有编辑器/验证操作Presenter,并且没有可以使用的任何 View 连接:

我认为我应该添加一个接口,我将在其中声明访问视图输入的方法。并执行该操作。但我不知道怎么做。请帮我。

0 投票
1 回答
82 浏览

javascript - 使用 GWT 编辑器框架创建包含 CellList 的模型?

我有以下模型:

我想创建一个 GWT 小部件,我可以在其中创建作者并创建尽可能多的书籍,同时在同一视图中创建作者。以下是它的样子:

在此处输入图像描述

您可以根据需要添加任意数量的书籍:

在此处输入图像描述

我想使用 GWT Editor 框架来填充视图和模型之间的数据。这是我只对Author没有列表的模型执行此操作的方法。

我的 UiBinder:

我的 Widget.java:

在我的演示者中,我创建了:

这适用于简单模型,但我想将其用于上述作者模型,其中包含List<Book>.

如何设置 UiBinder 以便我可以将 Books 添加到作者,以及我与编辑器有什么关系才能将创建的Books 列表刷新到作者模型中?

0 投票
0 回答
275 浏览

java - 将 GWT 编辑器框架与 CellList 一起使用

我想将 GWT 编辑器框架与 CellList 一起使用。我的数据模型如下所示:

在这里使用 GWTP 是我的演示者的一部分:

我的视图类:

当我点击保存按钮并editorDriver.flush()在我的演示者中执行操作时,我只能name 从视图的CarDto. 功能列表始终为空。

featuresEditor我必须像这样手动更改值:

为了在我刷新列表后获得更改。这意味着我必须设置两个列表来维护数据:

这似乎不正确。

当 dataProvider 列表更改时,如何实现 ListEditor 正确更新?如何正确设置编辑器以使用List<String>由 a 处理的CellList

0 投票
1 回答
60 浏览

hibernate - GWT requestfactory 验证外部服务器上的实体

我使用 gwt 2.7.0 请求工厂。编辑:我不使用客户端验证,只使用服务器端验证(休眠注释)

我试图编辑的实体称为“Article.java”。

在正常情况下,我会使用 ArticleEditor(从编辑器扩展)在客户端编辑文章。当文章到达服务器时,将执行验证。如果任何验证出错,客户端将收到“Set < ConstraintViolation < ? > > oErrors”,我可以在 EditorFramework 中使用它来显示表单上的错误。

在我的特殊情况下,我有两台服务器:

A = One 正在使用 gwt 编辑 ValueProxy (pojos)(不持久化实体)。

B = 其他可以访问数据库(休眠),由 A 通过无状态 EJB 访问。

我制作了一份名为“PersistentArticle.java”的文章(不包含任何休眠注释,简单的pojo)(包含所有休眠注释逻辑)。两个类具有相同的属性和方法。

编辑文章后,它到达服务器端 A,然后我通过 ejb 消息将对象发送到服务器 B。在 B 中,我从 Article 类创建 PersistentArticle 的实例并尝试持久化。如果任何验证出错,它会生成 javax.validation.ConstraintViolationException。

问题是我不知道如何将服务器 B 生成的 ValidationException 与服务器 A 中的 requestFavtory 和 EditorFramework 绑定,所以我可以在表单中显示错误。(在正常情况下,这是由服务器 A 中的 requestfactory 自动完成的)

回到客户端,我在

public void onFailure(ServerFailure oError) 方法来自请求的接收者,而不是在

方法 onConstraintViolation(Set< ConstraintViolation< ? >> oErrors,这是最理想的。

我有可能尝试做什么吗?你有什么建议吗 ?

英语不是我的母语;请原谅我的任何错误。

谢谢先进。

0 投票
1 回答
345 浏览

java - GWT CompositeEditor - 动态切换的编辑器未正确添加到链中

我有一个值类型Commission,它是更大的编辑器图表的一部分:

我想要实现的是最初只显示commissionType枚举的下拉列表,然后选择适当的子编辑器来根据所选值编辑其余字段:

已选择 CommissionType.UNIT_RATE

已选择 CommissionType.STANDING_CHARGE

我之前使用 an实现了多个子类型编辑器(请参阅此处的问题AbstractSubTypeEditor),但这种情况略有不同,因为我没有编辑子类,它们都编辑相同的基本Commission类型,并且由于某种原因,相同的方法似乎不适用于多个编辑器编辑相同的具体类型。

我目前有两个子编辑器(实现Editor<Commission>IsWidget通过自定义界面IsCommissionEditorWidget),但它们本身有不同的子编辑器,因为Money可以是便士或英镑,乘数可以代表天或月,以及其他变化。

委员会编辑

我已经查看了这个问题中的类似问题,并尝试创建一个CompositeEditor<Commission, Commission, Editor<Commission>>.

这就是我到目前为止所得到的(注意注释掉的部分是通过实现和LeafValueEditor<Commission>手动调用setValue()and getValue()onamount和来获得我想要的功能的黑客方式):multipliercontractMonths

这是IsCommissionEditorWidget定义每个子编辑器的合同的界面,也可以添加到面板中:

UnitRateCommissionEditor

当用户选择CommissionType.UNIT_RATE时,我想将其添加到编辑器链中以应用于剩余的 3 个字段:

常设收费委员会编辑

什么时候CommissionType.STANDING_CHARGE选择我想要这个(UiBinders 也有点不同,但主要区别是MoneyPoundsBox不是MoneyPenceBox):

目前flush(),父类型的 (正在编辑的包含 的类型Commission)返回一个带有未定义amountmultiplier的佣金contractMonths。我可以让这些值传入和传出的唯一方法是手动将其编码(注释代码)。

  • 我的副编辑器EditorChain是否正确附加?

编辑 1:提出的解决方案

我决定创建一个新的中间类,分别包装每个子类型的佣金,就像AbstractSubTypeEditor我在这个问题中所做的那样

委员会编辑

仍然是 a CompositeEditor,但它只有一个或零个子编辑器,它只会是 a CommissionSubtypeEditor

AbstractSubTypeEditor

这门课归功于 Florent Bayle 。我不认为我可以在没有多态子类型的情况下使用它,但它似乎工作得很好。本质上允许包装子编辑器,如下所示CommissionSubtypeEditor

佣金子类型编辑器

UnitRateCommissionEditor 和 StandingChargeCommissionEditor

既简单又实用Editor<Commission>

差不多好了...

这确实有效,并且类似于我很早就尝试使用AbstractSubtypeEditorsCompositeEditor本身时尝试的方法。我认为那里的问题是编辑无法自行调用setValue()。我对吗?

非常感谢评论、批评和建议。

0 投票
1 回答
277 浏览

gwt - GWT 嵌套编辑器 - 未正确刷新或给出循环检测错误

我正在创建一个类似于这个的规则构建器:

在此处输入图像描述

可以有两种类型的规则对象:

  • JoinMetadataCondition:这包含连接的类型(“and”或“or”)以及要加入的其他元数据条件列表
  • LeafMetadataCondition:这包含一个规则定义(变量、运算符、值)

这两个条件都实现了MetadataCondition接口。

方法一

我使用了三个不同的编辑器来尝试编辑规则,但我得到了一个循环检测错误,这是有道理的,因为规则是递归的。以下是三位编辑。

元数据条件编辑器

这使用了这里这里描述的 AbstractSubTypeEditor

这是规则编辑器的入口点。它将被赋予顶级元数据条件,并从那里附加相关的编辑器。

加入元数据条件编辑器

用于编辑 JoinMetadataCondition 对象

公共类 JoinMetadataConditionEditor 扩展 Composite 实现 Editor { interface Binder 扩展 UiBinder {}

叶元数据条件编辑器

最后是用于 LeafMetadataCondition 的编辑器

问题

问题是:如何避免循环检测错误或以有效的方式构建这种递归?

注意:我愿意接受新的方法。我尝试了其他一些方法,例如为每个子编辑器初始化驱动程序并将它们全部设为 CompositeEditor。这已编译并加载,但是当需要刷新驱动程序时,即使似乎调用了 flush() 方法但父编辑器没有使用这些值,子编辑器的值也没有正确构造。

方法二

第二种方法涉及使用 CompositeEditor 并让子编辑器创建自己的驱动程序,然后刷新这些驱动程序以创建最终结果。

元数据条件编辑器

加入元数据条件编辑器

问题

第二种方法似乎几乎奏效了。问题是,当我刷新驱动程序时,子驱动程序也会被刷新,但由于某种原因,父编辑器实际上并未包含子编辑器的值。

当我有一个嵌套的 Join 条件时,上面的日志语句会生成以下输出:

如您所见,主编辑器 (111) 实际上并不包含其子编辑器的内容。任何想法为什么会这样?