0

我有一个类 Selector<T> 扩展 ListBox 并实现 HasValue<T>(因此 HasValueChangeHandlers<T>)然后我有:

@Override
public HandlerRegistration addValueChangeHandler(ValueChangeHandler<T> handler) {
  return addHandler(handler, ValueChangeEvent.getType());
}

我有一个 Selector 的子类 MessageListBox,它为某些特殊对象的 Selector 添加了一些额外的功能。然后我在我的一个小部件中......

@UiField MessageListBox<Column> filterColumnSelect;
...
@UiHandler("filterColumnSelect")
void handleSelectColumn(ChangeEvent event) {
  ((Button) add).setEnabled(filterColumnSelect.hasSelection());
}

这可行,但我想更改方法以实际收听 ValueChangeEvent,因为代码中有一些地方我生成了一个(虽然我已经找到了如何创建原始 ChangeEvents,但我宁愿不这样做这里)。所以,然后我将代码更改为...

@UiField MessageListBox<Column> filterColumnSelect;
...
@UiHandler("filterColumnSelect")
void handleSelectColumn(ValueChangeEvent<Column> event) {
  ((Button) add).setEnabled(filterColumnSelect.hasSelection());
}

但现在 GWT 无法编译:[错误] 字段 'filterColumnSelect' 没有关联的 'addValueChangeHandler' 方法。

嗯...是的,它是从 Selector 继承的,并且所有这些类都是公共的。是什么赋予了?

另外,作为说明,我也查看了 ValueListBox,但是我需要它不支持的某些功能,所以它已经过时了。

4

1 回答 1

2

这是一个已知的错误。它已经修复,将在 GWT 2.6 中发布。

于 2013-09-08T09:41:40.953 回答