2012-03-08 8 views
1

私はUiBinderを使用してGWTで開発されたアプリケーションで作業しています。 一つのビューでは、私は複数選択を許可する必要があるListBoxを持っています。UiBinderを使用してGWTでMultipleSelect ListBoxを取得する方法

現在、アプリケーションはListBoxで複数選択を有効にするにはsetMultipleSelect(boolean isMultipleSelect)メソッドを使用しています。 このメソッドは廃止予定です。コンストラクタListBox(boolean isMultipleSelect)を使用することをお勧めします。

問題は、私がリストボックスを構築していないことです。バインディング時にそれが行われるかどうかです(私は実際にどのように動作しているのか分かりません)。

私のコードは、そのようなものです:

interface ViewUiBinder extends UiBinder<Widget, View> {} 

private static ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); 

private Widget widget; 
@UiField 
ListBox listBox; 

@Inject 
public View() { 
    widget = uiBinder.createAndBindUi(this); 
    listBox.setMultipleSelected(true); 
} 

誰もが複数選択コンストラクタコンストラクタでリストボックスを初期化し、それを動作させる方法を知っていますか?

おかげで、

マチュー

答えて

1

私はUiFieldためprovided = true注釈paramenterを使用してフィールドを初期化します。あなたは、フィールドでのリストボックスを初期化したいのですが、Viewコンストラクタで、あなたは、DE-大文字のを使用してUIウィジェットの豆のような特性のいずれかにアクセスすることができuiBinder.createAndBinUi(this);

@UiField(provided = true) 
ListBox listBox = new ListBox(true); 
+0

ありがとう、私はこれを試してみるつもりです。それが動作しているかどうかを知らせます。 – clavelm

+0

私はプロジェクトで十分に見えませんでしたが、すでに別のプレゼンターで使用されていました。 – clavelm

0

前の文を設定していない場合UiBinderテンプレート内のプロパティ名。それは次のようになります。

<g:ListBox ui:field="listBox" multipleSelect="true" /> 

私はそれが絶対に必要になるまでprovided=true注釈パラメータを避ける傾向にあり、それがこのケースではありません。

+1

しかし、それは、廃止されたsetMultipleSelectedメソッドを呼び出すのと同じですか?そうではありませんか? – clavelm

+0

@clavelm:メソッドsetMultipleSelectedを呼び出すのと同じですが、避けたいので、私はこの解決策を提案しませんでした;-) –

+0

読解は失敗します。しかし、あなたはまだIE6の考慮事項をコードする必要がある場合は、私の心からの哀悼の意を表します。 – Jason482

関連する問題