events - 从值更改事件中获取旧(以前)的值

标签 events gwt gwt2

为什么无法从 ValueChangeEvent 获取旧值?人们期望值(value)变更事件能够同时提供旧值(value)和新值(value)。

是否有任何内置事件类型可以让我通知值更改并包含旧值和新值?有没有简单的方法来实现这样的自定义事件而不需要太多的努力?

最佳答案

好的,我通过实现应用程序中使用的自定义类型解决了这个问题:

public class ValueChange<T> {

  private final T oldValue;
  private final T newValue;

  public ValueChange(T oldValue, T newValue) {
    this.oldValue = oldValue;
    this.newValue = newValue;
  }

  public T getOldValue() {
    return oldValue;
  }

  public T getNewValue() {
    return newValue;
  }

}

现在在我们的事件源(例如自定义控件)中,我们可以通过这种方式实现接口(interface):

implements HasValueChangeHandlers<ValueChange<ValueType>> 

并且可以通过这种方式从我们的源触发事件:

private void fireValueChangeEvent(ValueType oldValue, ValueType newValue) {
    ValueChangeEvent.fire(this, new ValueChange<ValueType>(oldValue, newValue));
}

因此我们可以在处理程序端访问旧值和新值。不需要实现新的事件类型、处理程序类型等。我们可以继续使用 ValueChangeEvent,它们在语义上对于我们的用例来说是正确的。

关于events - 从值更改事件中获取旧(以前)的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11450626/

相关文章:

javascript - 事件处理程序被禁用的时间比预期的要长

javascript - 静态表更改的 DOM 监听器

ajax - 我应该显示我的 Ajax 驱动的 GWT 站点的单独版本来搜索机器人吗?

gwt - 依赖注入(inject)在 gwt 2.1 中不起作用

gwt2 - 带滚动条的 TabLayoutPanel

c# - 在 HtmlEditor WinForms 上拦截粘贴事件

android - 单击 ListView 项目会更改项目内元素的状态?

java - 如何在GWT CellTree中选择父节点时选择所有子节点?

Java 到 JavaScript 编译器

javascript - 合并 GWT 生成的文件