0

ListBox を拡張し、HasValue<T> (したがって HasValueChangeHandlers<T>) を実装するクラス Selector<T> があります。

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

Selector のサブクラスである MessageListBox があります。これは、特定の特別なオブジェクトの Selector にいくつかの機能を追加します。次に、ウィジェットの1つに...

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

そして、これは機能しますが、代わりに ValueChangeEvent を実際にリッスンするようにメソッドを変更したいと思います。これは、コード内に ValueChangeEvent を生成する場所があるためです (生の ChangeEvent を作成する方法を見つけたので、むしろそれを行いたくありません)。ここ)。それで、コードを次のように変更します...

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

しかし、GWT は次のエラーでコンパイルに失敗します: [ERROR] フィールド 'filterColumnSelect' には 'addValueChangeHandler' メソッドが関連付けられていません。

ええと...はい、セレクターから継承し、これらのクラスはすべて公開されています。何が与えますか?

あと、メモとしてValueListBoxも見てみたのですが、必要な機能でサポートされていないのでアウトです。

4

1 に答える 1

2

これは既知のバグです。これはすでに修正されており、GWT 2.6 で出荷されます。

于 2013-09-08T09:41:40.953 に答える