gpt4 book ai didi

用于只读和编辑模式的 GWT 编辑器

转载 作者:行者123 更新时间:2023-12-01 12:52:53 24 4
gpt4 key购买 nike

GWT 的编辑器框架非常好用,它不仅可以用于编辑POJO,还可以用于只读显示。

但是,我并不完全确定进行内联编辑的最佳做法是什么。

假设我有一个 PersonProxy 并且我有一对 Presenter-View 用于显示和编辑 PersonProxy。此 Presenter-View 应该默认以只读模式显示 PersonProxy,如果用户按下 edit 按钮,它应该允许用户编辑 PersonProxy 对象。

我想出的解决方案是创建两个编辑器(PersonEditEditorPersonDisplayEditor),它们都通过 UiBinder 添加到 查看PersonEditEditor 包含ValueBoxEditorDecoratorPersonDisplayEditor 包含正常的 Labels
最初我显示 PersonDisplayEditor 并隐藏 PersonEditEditor

View 中,我为每个编辑器创建了两个 RequestFactoryEditorDriver 并使其可通过 ViewPresenter 访问> 界面。我还在 View 接口(interface)中定义了一个 setState() 方法。

当第一次显示 Presenter 时,我调用 PersonDisplayDriver.display()setState(DISPLAYING)

当用户点击 Edit 按钮时,我从我的 Presenter 调用 PersonEditDriver.edit()setState(EDITING)
setState(EDITING) 将隐藏 PersonDisplayEditor 并使 PersonEditor 可见。

我不确定这是否是最佳方法。如果不是,推荐的内联编辑方法是什么?对编辑器进行单元测试的最佳方法是什么?

最佳答案

如果您能够负担得起开发 2 个不同的 View ,那就去做吧,它会给您最大的灵 active 。

我们在我们的应用程序中所做的,我们无法负担开发和维护两个 View 的成本,是将两个状态烘焙到我们的编辑器中,例如可以是标签或文本框的自定义组件(在大多数情况下,我们只需将文本框设置为只读并应用一些样式来隐藏框边框)。
为了检测我们处于哪种模式,因为我们使用 RequestFactoryEditorDriver(就像你一样),我们让我们的编辑器实现 HasRequestContext:接收 null此处的值表示使用了驱动程序的 display() 方法,因此我们处于只读模式。另一种方法是使用 EditorVisitor 和一些 HasReadOnly 接口(interface)(顺便说一句,这正是 RequestFactoryEditorDriver 为传递 RequestContextHasRequestContext 编辑器)。

关于用于只读和编辑模式的 GWT 编辑器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11193751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com