package be.selckin.swu.repeater; import org.apache.wicket.Component; import org.apache.wicket.markup.repeater.RepeatingView; import org.apache.wicket.model.IModel; import java.util.Collection; import java.util.List; public abstract class SimpleRefreshingView<T> extends RepeatingView { private IModel<? extends Collection<? extends T>> model; protected SimpleRefreshingView(String id, IModel<? extends Collection<? extends T>> model) { super(id, model); this.model = model; } @Override protected void onBeforeRender() { super.onBeforeRender(); removeAll(); for (T item : model.getObject()) add(create(newChildId(), item)); } @Override public boolean isVisible() { return model.getObject() != null && !model.getObject().isEmpty(); } protected abstract Component create(String id, T item); }