0

動的な数のプレゼンター ウィジェットを追加する方法はありますか? 個々のプレゼンターは問題なく追加できますが、コレクションを追加するにはどうすればよいですか。UiBinder XML にプレースホルダーがあります

ui.xml

 <g:LayoutPanel ui:field="collection"/>

意見

@Override
public void setInSlot(Object slot, Widget content) {
    if (slot == TicketPresenter.DYNAMIC_COLLECTION_SLOT) {
        collection.clear();
        collection.add(content);
    } 
}

プレゼンター

setInSlot(DYNAMIC_COLLECTION_SLOT, collectionPresenter);

しかし、私はリスト プレゼンターを持ち、それらすべてをコレクション パネルに追加できるようにしたいと考えています。これは可能ですか?これを行うためにコンポジットを作成できることはわかっていますが、プレゼンター ウィジェットを使用したいと考えています。

4

2 に答える 2

0
public void addListOfWidgets(List<Widget> content) {
    collection.clear();
    for (Widget widget : content) {
        collection.add(widget);
    }
}
于 2012-11-01T19:07:32.023 に答える
0

通常、ビューではオーバーライドするだけでなく、

@Override
public void setInSlot(Object slot, Widget content) 

だけでなく、

@Override
public void addToSlot(Object slot, Widget content) 

したがって、Widget コレクションを繰り返し処理し、各ウィジェットに対して addToSlot を呼び出すことができます。addToSLot impl は次のようになります

@Override
public void addToSlot(Object slot, Widget content) {
    if (slot == TicketPresenter.DYNAMIC_COLLECTION_SLOT) {
        collection.add(content);
    } 
}

これは、追加操作でレイアウト コンテナーをクリアする必要がないことを意味します。

于 2012-11-01T21:27:21.137 に答える