gwt动态数量的演示者小部件

时间:2012-11-01 14:00:34

标签: google-app-engine gwt

有没有办法添加动态数量的演示者小部件?我可以添加个别演示者,但如何添加集合。我的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);

但我希望能够拥有一个List演示者并将它们全部添加到集合面板中。这可能吗?我知道我可以创建一个复合来执行此操作,但我想使用presenter小部件。

2 个答案:

答案 0 :(得分:0)

public void addListOfWidgets(List<Widget> content) {
    collection.clear();
    for (Widget widget : content) {
        collection.add(widget);
    }
}

答案 1 :(得分: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);
    } 
}

这意味着您无需在添加操作上清除布局容器。