GWT编辑器上的丢弃更改方式

时间:2012-04-13 17:27:23

标签: gwt editor

我有一种编辑方式可以放弃对其属性进行的更改吗?这在客户端。没有毅力。

我有:

public class ClaseEditor extends PopupPanel implements Editor<ClaseProxy> {
  @UiField ValidatedTextBox tema;
  @UiField ValidatedTextBox catedratico;
}

我在ListEditor上使用这个编辑器,因为你知道

中有一个编辑器列表
 ListEditor<ClaseProxy, ClaseEditor>

如果用户创建一个,那么可以,如果用户编辑它。我有一个保存或取消选项,我保存好,只需隐藏编辑器,所做的更改都可以。

但是在用户单击“取消”时,如果属性上有一些更改,则编辑器刷新(lazely)会更改为代理。

是的我可以将起始值存储在字符串上,然后使用texbox上的setValue()进行恢复。但还有其他一些方法(编辑器API)可以阻止这种情况吗?

谢谢

2 个答案:

答案 0 :(得分:0)

是。在取消按钮上,执行fire()而不构建任何请求。编辑器从不影响原始代理,它是不可变的。 flush只给你一个副本(除非你使用RequestFactoryEditorDriver然后它返回你用driver.edit(proxy,ctx)发送到它的上下文。如果用户想再次编辑,没有请求的fire()清除编辑代理副本它不会得到它已被编辑的错误。

答案 1 :(得分:0)

如果您使用SimpleBeanEditorDriver,则可以使用edit方法拨打新电话,而无需先拨打flush

SimpleBeanEditorDriver类从bean读取edit上的编辑器,并从编辑器读取flush上的bean。

如果您不想还原所有编辑器,但只需要其中一个编辑器,请记住在每个接受的编辑器更改时调用flush,以便能够恢复到最后{{1点。请注意,flush来电是本地的,并且不一定必须与对持久层的调用相对应。

示例代码

flush