public UiTopoLayout parent(UiTopoLayoutId parentId) {
        if (isRoot()) {
            throw new IllegalArgumentException(E_ROOT_PARENT);
        }
        // TODO: consider checking ancestry chain to prevent loops

        parent = parentId;
        return this;
    }
@Test
    public void setParentOnOther() {
        mkOtherLayout();
        layout.parent(OTHER_ID);
        assertEquals("wrong parent", OTHER_ID, layout.parent());

        layout.parent(null);
        assertEquals("non-null parent", null, layout.parent());
    }