2

typeahead ウィジェットを NavSearch に接続しようとしています。私はやりたい:

<b:Typeahead ui:field="typeahead">
  <b:NavSearch ui:field="navSearch"></b:NavSearch>
</b:Typeahead>

そして呼び出しますtypeahead.setWidget(navsearch.getTextBox())が、「Typeahead は TextBoxBase の子に設定する必要があります」というエラーがスローされます。これは、コンパイル時に呼び出したときに発生することを理解していますui_binder.createAndBindUi(this)

navsearch を切り替えてTextBox適切にスタイルを設定することで、これを回避できましたが、よりエレガントなソリューションを望んでいました。

4

1 に答える 1

1

Typeahead の setWidget は、特に TextBoxBase タイプのウィジェットをチェックするので、代替手段はないと思います!! 悲しいけど現実!

    public void setWidget(Widget w) {

    if (!(w instanceof TextBoxBase || w instanceof com.google.gwt.user.client.ui.TextBoxBase)) {
        throw new IllegalArgumentException("Typeahead should be set TextBoxBase childs");
    }

    super.setWidget(w);
}
于 2013-11-02T14:13:37.530 に答える