gpt4 book ai didi

GWT 如何放弃编辑器上的更改

转载 作者:行者123 更新时间:2023-12-02 19:53:08 25 4
gpt4 key购买 nike

编辑器有办法放弃对其属性所做的更改吗?这是在客户端。没有坚持。

我有:

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

我在 ListEditor 上使用这个编辑器,因为你知道你的编辑器中有一个列表

 ListEditor<ClaseProxy, ClaseEditor>

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

但是在用户单击“取消”时,如果属性发生一些更改,编辑器会刷新(延迟)更改代理。

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

谢谢

最佳答案

如果您使用的是 SimpleBeanEditorDriver,您可以对 edit 方法进行新的调用,而无需先调用 flush

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

如果您不想恢复所有编辑器,而只想恢复其中一个,请记住在每次接受的编辑器更改时调用 flush,以便能够恢复到最后一个 冲洗点。请注意,flush 调用是本地的,并不一定必须对应于对持久层的调用。

示例代码

private Bean currentObject;

/**
* Start editing the given object.
*/
public void edit(Bean object) {
this.currentObject = object;
this.driver.edit(object);
}

/**
* Call this every time an editor is in a consistent state.
* (e.g. onBlur event if validation succeeds)
*/
private void save() {
this.driver.flush(); // saves editors' state into currentObject
}

/**
* Call this to cancel changes on all editing editors.
* (e.g. onBlur event if validation fails)
*/
private void revert() {
this.driver.edit(currentObject); // reloads currentObject into editors
}

/**
* Stores all pending changes to the server.
* Remember to validate all editors.
*/
public void commit() {
Bean object = this.driver.flush();
Server.persist(object);
}

关于GWT 如何放弃编辑器上的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10145466/

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