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