我有一种编辑方式可以放弃对其属性进行的更改吗?这在客户端。没有毅力。
我有:
public class ClaseEditor extends PopupPanel implements Editor<ClaseProxy> {
@UiField ValidatedTextBox tema;
@UiField ValidatedTextBox catedratico;
}
我在ListEditor上使用这个编辑器,因为你知道
中有一个编辑器列表 ListEditor<ClaseProxy, ClaseEditor>
如果用户创建一个,那么可以,如果用户编辑它。我有一个保存或取消选项,我保存好,只需隐藏编辑器,所做的更改都可以。
但是在用户单击“取消”时,如果属性上有一些更改,则编辑器刷新(lazely)会更改为代理。
是的我可以将起始值存储在字符串上,然后使用texbox上的setValue()进行恢复。但还有其他一些方法(编辑器API)可以阻止这种情况吗?
谢谢
答案 0 :(得分:0)
是。在取消按钮上,执行fire()而不构建任何请求。编辑器从不影响原始代理,它是不可变的。 flush只给你一个副本(除非你使用RequestFactoryEditorDriver然后它返回你用driver.edit(proxy,ctx)
发送到它的上下文。如果用户想再次编辑,没有请求的fire()清除编辑代理副本它不会得到它已被编辑的错误。
答案 1 :(得分:0)
如果您使用SimpleBeanEditorDriver
,则可以使用edit
方法拨打新电话,而无需先拨打flush
。
SimpleBeanEditorDriver
类从bean读取edit
上的编辑器,并从编辑器读取flush
上的bean。
如果您不想还原所有编辑器,但只需要其中一个编辑器,请记住在每个接受的编辑器更改时调用flush
,以便能够恢复到最后{{1点。请注意,flush
来电是本地的,并且不一定必须与对持久层的调用相对应。
示例代码
flush