in gwt-util/src/main/java/jetbrains/jetpad/mapper/gwt/elemental/DomUtil.java [24:68]
public static List<Node> nodeChildren(final Node n) {
return new AbstractList<Node>() {
@Override
public Node get(int index) {
return n.getChildNodes().item(index);
}
@Override
public Node set(int index, Node element) {
if (element.getParentElement() != null) {
throw new IllegalStateException();
}
Node child = get(index);
n.replaceChild(child, element);
return child;
}
@Override
public void add(int index, Node element) {
if (element.getParentElement() != null) {
throw new IllegalStateException();
}
if (index == size()) {
n.appendChild(element);
} else {
Node prev = get(index);
n.insertBefore(prev, element);
}
}
@Override
public Node remove(int index) {
Node child = n.getChildNodes().item(index);
n.removeChild(child);
return child;
}
@Override
public int size() {
return n.getChildNodes().getLength();
}
};
}