package klik.client.mvp.unitelementlist; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.user.client.ui.HTMLPanel; import com.google.gwt.user.client.ui.Widget; import com.google.inject.Inject; import com.gwtplatform.mvp.client.ViewImpl; public class UnitElementListView extends ViewImpl implements UnitElementListPresenter.MyView { public interface Binder extends UiBinder<Widget, UnitElementListView> { } private final Widget widget; @UiField HTMLPanel contentPanel; @Inject public UnitElementListView(final Binder binder) { widget = binder.createAndBindUi(this); } @Override public Widget asWidget() { return widget; } @Override public void addToSlot(Object slot, Widget content) { if (slot == UnitElementListPresenter.TYPE_UnitList) { if (content != null) { contentPanel.add(content); } } else { super.addToSlot(slot, content); } } @Override public void removeFromSlot(Object slot, Widget content) { if (slot == UnitElementListPresenter.TYPE_UnitList) { contentPanel.clear(); if (content != null) { for (int i = 0; i < contentPanel.getWidgetCount(); i++) { if (content.equals(contentPanel.getWidget(i))) { contentPanel.getWidget(i).removeFromParent(); } } } } else { super.removeFromSlot(slot, content); } } @Override public void setInSlot(Object slot, Widget content) { if (slot == UnitElementListPresenter.TYPE_UnitList) { contentPanel.clear(); if (content != null) { contentPanel.add(content); } } else { super.setInSlot(slot, content); } } }