in gwt-util/src/main/java/jetbrains/jetpad/mapper/gwt/DomUtil.java [96:130]
static <ElementT extends WithElement> List<ElementT> withElementChildren(final List<Node> base) {
final List<ElementT> items = new ArrayList<>();
return new AbstractList<ElementT>() {
@Override
public ElementT get(int index) {
return items.get(index);
}
@Override
public ElementT set(int index, ElementT element) {
ElementT result = items.set(index, element);
base.set(index, result.getElement());
return result;
}
@Override
public void add(int index, ElementT element) {
items.add(index, element);
base.add(index, element.getElement());
}
@Override
public ElementT remove(int index) {
ElementT result = items.remove(index);
base.remove(index);
return result;
}
@Override
public int size() {
return items.size();
}
};
}