还原在GWT(撤消)实施(Revert (Undo) implementation in GWT)

2019-08-06 03:26发布

我们正在努力建设使用GWT的GUI框架。 我们发现很难实现框架中取消功能。

需要的功能是这样的:

我们有会弹出窗口,网格等CRUD屏幕。 当用户更改GUI任何东西,然后)点击取消(应该给他一个通知消息说,事情已经改变。

办法,我们曾尝试:

目前,我们正在努力保持关键VS整个POJO对象的值的HashMap和试图将其与之比较的是,当用户改变一些东西,被更新的模式。 但是,这是在加入大量的有害代码在每一个POJO,当用户直接从后端增加了数据无法按预期工作。

是否有实现这一功能,任何优雅的方式? 请注意在我们的应用程序GWT *(https://developers.google.com/web-toolkit/doc/latest/DevGuideUiEditors)的* 我们不使用编辑器的框架

例:假设我有这样一个POJO:

public class Person {

    List<Address> address;
    PhoneNumber phoneData;


    // and so on along with getters and setters

}

我将如何写这一个通用的clone方法? 即使我能做到,不知怎的,这将导致大量的代码在每一个POJO(我们的应用程序有数百人),这看起来不正确。

请注意,由于东西GUI被改变以实现现场结合我们的POJO,即会更新。

Answer 1:

所以,你已经“保存”,并在您的形式“取消”按钮?

我建议你改变观念。 立即更新您的对象属性在OnChange事件处理程序用户编辑他们(Gmail中,JIRA和其他许多现代应用程序)。

保存所有更新到会话堆栈UpdateAction对象,让用户撤消每一个属性修改调用UpdateAction.undo()方法。

其优点是:

  1. 这样的设计更方便用户比“点击‘编辑友好’ - 更新 - 点击‘保存’,”情景。

  2. 你不需要单独的查看/编辑表单/弹出对话框 - 只是一个单一的形式既查看和编辑。



文章来源: Revert (Undo) implementation in GWT