我有一个文本字段,我想在用户输入内容时定期保存它。我想将其连接到我现有的 RequestFactoryEditorDriver 框架中,但我想不出办法来做到这一点。问题是我必须等待所有 driver.flush().fire()
调用返回才能再次调用 edit()
,所以在同时数据将不可编辑。
到目前为止,我最好的解决方案是在代理之上创建一个完整的层。它会等到它即将保存,然后编辑代理,复制更改,并保留代理,但那时我失去了编辑器框架的大部分好处。大家有更好的想法吗?
最佳答案
我相信另一件事会起作用,并且可能不会比 Ray 的答案涉及更多的工作(实际上可能更少):不要编辑要保存的对象,而是编辑它的副本(使用 RequestContext 创建) .create()
),在编辑之前进行复制,然后在触发之前刷新并复制回您的 bean(在另一个 RequestContext
中)。
然而,由于与服务器的异步通信,这假定不会发生并发编辑(用户可以继续编辑,如果其他人同时编辑同一对象,您必须检测并解决“冲突”) 。
要制作副本,请使用 AutoBeanUtils.getAutoBean 从 RF 代理中获取 bean,然后使用 AutoBeanVisitor 访问所有属性并将其值复制到另一个代理/autobean 中。
关于gwt - 使用 RequestFactoryEditorDriver 动态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5145301/