GWT 的 Editor 框架非常方便,它不仅可以用于编辑POJO,还可以用于只读显示。
但是,我不完全确定进行内联编辑的最佳做法是什么。
假设我有一个PersonProxy
,我有一Presenter-View
对用于显示和编辑PersonProxy
. 默认情况下,此 Presenter-View 应该以PersonProxy
只读模式显示,如果用户按下编辑按钮,它应该允许用户编辑PersonProxy
对象。
我想出的解决方案是创建两个编辑器(PersonEditEditor
和PersonDisplayEditor
),它们都通过添加UiBinder
到View
. PersonEditEditor
contains
ValueBoxEditorDecorator
s 和contains PersonDisplayEditor
normal Labels
。
最初我显示PersonDisplayEditor
和隐藏PersonEditEditor
。
在View
我为每个编辑器创建两个RequestFactoryEditorDriver
并使其可以Presenter
通过View
界面访问。我还在接口中定义了一个setState()
方法View
。
当Presenter
我第一次调用时显示PersonDisplayDriver.display()
和setState(DISPLAYING)
。
当用户单击编辑按钮时,我会调用PersonEditDriver.edit()
并setState(EDITING)
从我的Presenter
.
setState(EDITING)
将隐藏PersonDisplayEditor
并使其PersonEditEditor
可见。
我不确定这是否是最好的方法。如果不是,推荐的内联编辑方法是什么?在编辑器上进行单元测试的最佳方法是什么?