问题标签 [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.
gwt - 如何允许单项/子编辑器 GWT 编辑器从包含它的 ListEditor 中删除自己?例如点击删除按钮
在尝试使用 GWT 的ListEditor
系统时,我找不到一个工作示例,其中列表中每个项目的 UI 都有一个删除/删除按钮。
我发现的例子都像这个[1] 并且有一个EditorSource.create()
实现创建每个项目Editor
,并且似乎连接了一个处理程序以通过listEditor.getList().remove(index)
.
但是,删除处理程序的匿名实现在子编辑器创建时围绕 index 的值关闭,这会导致IndexOutOfBoundExceptions
或错误的项目被删除,因为每次删除都会更改其后所有项目的索引。
我把头发拉了一会儿,试图看看我在示例中缺少什么以防止这种情况发生,但据我所知,他们确实都有这个问题,所以虽然修复相当简单,但我仍然会发布它在这里,因此人们至少可以找到一个正确删除项目的示例。
[1] 我认为我发现的所有示例都源自我链接的示例,尽管该示例在 remove() 中特别具有更多逻辑,并且可能一直在做一些事情来避免问题,例如以某种方式更正列表顺序,我还没有深入研究该项目中的其他代码。
gwt - 带有 UiBinder 和 UiEditors 框架的 Gwt 平台(GWT 编辑器)
我在 gwt 的编辑器框架中挣扎。主要是因为文档很蹩脚-没有受伤的感觉-只是说。
现在我遇到无法在编辑器上执行按钮事件的问题。这是我的错误:
我不确定我做错了什么。我没有找到任何好的例子。我希望有人会帮忙。
这是我的代码:
编辑
主持人
看法
查看.ui.xml
用户界面处理程序
validation - 如何使用 Presenter 类中的编辑器和验证框架在 GWT 材质输入上显示表单验证约束消息?
我用:
约束验证后,我想显示错误消息。这由 gwt 材料输入支持,例如MaterialTextBox
使用方法: materialTextBox.setError("Please provide your name");
问题是它只能从视图类执行:
但是我在 中执行了所有编辑器/验证操作Presenter
,并且没有可以使用的任何 View 连接:
我认为我应该添加一个接口,我将在其中声明访问视图输入的方法。并执行该操作。但我不知道怎么做。请帮我。
java - 将 GWT 编辑器框架与 CellList 一起使用
我想将 GWT 编辑器框架与 CellList 一起使用。我的数据模型如下所示:
在这里使用 GWTP 是我的演示者的一部分:
我的视图类:
当我点击保存按钮并editorDriver.flush()
在我的演示者中执行操作时,我只能name
从视图的CarDto
. 功能列表始终为空。
featuresEditor
我必须像这样手动更改值:
为了在我刷新列表后获得更改。这意味着我必须设置两个列表来维护数据:
这似乎不正确。
当 dataProvider 列表更改时,如何实现 ListEditor 正确更新?如何正确设置编辑器以使用List<String>
由 a 处理的CellList
?
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,这是最理想的。
我有可能尝试做什么吗?你有什么建议吗 ?
英语不是我的母语;请原谅我的任何错误。
谢谢先进。
java - GWT CompositeEditor - 动态切换的编辑器未正确添加到链中
我有一个值类型Commission
,它是更大的编辑器图表的一部分:
我想要实现的是最初只显示commissionType
枚举的下拉列表,然后选择适当的子编辑器来根据所选值编辑其余字段:
我之前使用 an实现了多个子类型编辑器(请参阅此处的问题AbstractSubTypeEditor
),但这种情况略有不同,因为我没有编辑子类,它们都编辑相同的基本Commission
类型,并且由于某种原因,相同的方法似乎不适用于多个编辑器编辑相同的具体类型。
我目前有两个子编辑器(实现Editor<Commission>
和IsWidget
通过自定义界面IsCommissionEditorWidget
),但它们本身有不同的子编辑器,因为Money
可以是便士或英镑,乘数可以代表天或月,以及其他变化。
委员会编辑
我已经查看了这个问题中的类似问题,并尝试创建一个CompositeEditor<Commission, Commission, Editor<Commission>>
.
这就是我到目前为止所得到的(注意注释掉的部分是通过实现和LeafValueEditor<Commission>
手动调用setValue()
and getValue()
onamount
和来获得我想要的功能的黑客方式):multiplier
contractMonths
这是IsCommissionEditorWidget
定义每个子编辑器的合同的界面,也可以添加到面板中:
UnitRateCommissionEditor
当用户选择CommissionType.UNIT_RATE
时,我想将其添加到编辑器链中以应用于剩余的 3 个字段:
常设收费委员会编辑
什么时候CommissionType.STANDING_CHARGE
选择我想要这个(UiBinders 也有点不同,但主要区别是MoneyPoundsBox
不是MoneyPenceBox
):
目前flush()
,父类型的 (正在编辑的包含 的类型Commission
)返回一个带有未定义amount
和multiplier
的佣金contractMonths
。我可以让这些值传入和传出的唯一方法是手动将其编码(注释代码)。
- 我的副编辑器
EditorChain
是否正确附加?
编辑 1:提出的解决方案
我决定创建一个新的中间类,分别包装每个子类型的佣金,就像AbstractSubTypeEditor
我在这个问题中所做的那样。
委员会编辑
仍然是 a CompositeEditor
,但它只有一个或零个子编辑器,它只会是 a CommissionSubtypeEditor
:
AbstractSubTypeEditor
这门课归功于 Florent Bayle 。我不认为我可以在没有多态子类型的情况下使用它,但它似乎工作得很好。本质上允许包装子编辑器,如下所示CommissionSubtypeEditor
。
佣金子类型编辑器
UnitRateCommissionEditor 和 StandingChargeCommissionEditor
既简单又实用Editor<Commission>
:
差不多好了...
这确实有效,并且类似于我很早就尝试使用AbstractSubtypeEditor
sCompositeEditor
本身时尝试的方法。我认为那里的问题是编辑无法自行调用setValue()
。我对吗?
非常感谢评论、批评和建议。
gwt - GWT 嵌套编辑器 - 未正确刷新或给出循环检测错误
我正在创建一个类似于这个的规则构建器:
可以有两种类型的规则对象:
- JoinMetadataCondition:这包含连接的类型(“and”或“or”)以及要加入的其他元数据条件列表
- LeafMetadataCondition:这包含一个规则定义(变量、运算符、值)
这两个条件都实现了MetadataCondition接口。
方法一
我使用了三个不同的编辑器来尝试编辑规则,但我得到了一个循环检测错误,这是有道理的,因为规则是递归的。以下是三位编辑。
元数据条件编辑器
这使用了这里和这里描述的 AbstractSubTypeEditor
这是规则编辑器的入口点。它将被赋予顶级元数据条件,并从那里附加相关的编辑器。
加入元数据条件编辑器
用于编辑 JoinMetadataCondition 对象
公共类 JoinMetadataConditionEditor 扩展 Composite 实现 Editor { interface Binder 扩展 UiBinder {}
叶元数据条件编辑器
最后是用于 LeafMetadataCondition 的编辑器
问题
问题是:如何避免循环检测错误或以有效的方式构建这种递归?
注意:我愿意接受新的方法。我尝试了其他一些方法,例如为每个子编辑器初始化驱动程序并将它们全部设为 CompositeEditor。这已编译并加载,但是当需要刷新驱动程序时,即使似乎调用了 flush() 方法但父编辑器没有使用这些值,子编辑器的值也没有正确构造。
方法二
第二种方法涉及使用 CompositeEditor 并让子编辑器创建自己的驱动程序,然后刷新这些驱动程序以创建最终结果。
元数据条件编辑器
加入元数据条件编辑器
问题
第二种方法似乎几乎奏效了。问题是,当我刷新驱动程序时,子驱动程序也会被刷新,但由于某种原因,父编辑器实际上并未包含子编辑器的值。
当我有一个嵌套的 Join 条件时,上面的日志语句会生成以下输出:
如您所见,主编辑器 (111) 实际上并不包含其子编辑器的内容。任何想法为什么会这样?