void (final RadContainer container) { RadContainer parent = container.getParent(); GridConstraints containerConstraints = (GridConstraints) container.getConstraints().clone(); // ensure there will be enough rows and columns to fit the container contents for(int i=containerConstraints.getRowSpan(); i<container.getGridRowCount(); i++) { GridChangeUtil.splitRow(parent, containerConstraints.getRow()); } for(int i=containerConstraints.getColSpan(); i<container.getGridColumnCount(); i++) { GridChangeUtil.splitColumn(parent, containerConstraints.getColumn()); } ArrayList<RadComponent> contents = new ArrayList<>(); for(int i=container.getComponentCount()-1; i >= 0; i--) { contents.add(0, container.getComponent(i)); container.removeComponent(container.getComponent(i)); } if (contents.size() == 1) { contents.get(0).setCustomLayoutConstraints(container.getCustomLayoutConstraints()); } FormEditingUtil.deleteComponents(Collections.singletonList(container), false); for(RadComponent child: contents) { final GridConstraints childConstraints = child.getConstraints(); childConstraints.setRow(childConstraints.getRow() + containerConstraints.getRow()); childConstraints.setColumn(childConstraints.getColumn() + containerConstraints.getColumn()); parent.addComponent(child); child.revalidate(); } }