package com.vaadin.tests.minitutorials.v7a2; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import com.vaadin.ui.AbstractComponentContainer; import com.vaadin.ui.Component; public class WidgetContainer extends AbstractComponentContainer { List<Component> children = new ArrayList<>(); @Override public void addComponent(Component c) { children.add(c); super.addComponent(c); } @Override public void removeComponent(Component c) { children.remove(c); super.removeComponent(c); } @Override public void replaceComponent(Component oldComponent, Component newComponent) { int index = children.indexOf(oldComponent); if (index != -1) { children.remove(index); children.add(index, newComponent); fireComponentDetachEvent(oldComponent); fireComponentAttachEvent(newComponent); markAsDirty(); } } @Override public int getComponentCount() { return children.size(); } @Override public Iterator<Component> iterator() { return children.iterator(); } }