GridLayoutManager (final RadComponent[] selection) { final int[] x = new int[selection.length]; final int[] y = new int[selection.length]; final int[] colSpans = new int[selection.length]; final int[] rowSpans = new int[selection.length]; for (int i = selection.length - 1; i >= 0; i--) { x[i] = selection[i].getX(); y[i] = selection[i].getY(); rowSpans[i] = selection[i].getHeight(); colSpans[i] = selection[i].getWidth(); } final Couple<Integer> pair = layoutInGrid(x, y, rowSpans, colSpans); for (int i = 0; i < selection.length; i++) { final RadComponent component = selection[i]; final GridConstraints constraints = component.getConstraints(); constraints.setRow(y[i]); constraints.setRowSpan(rowSpans[i]); constraints.setColumn(x[i]); constraints.setColSpan(colSpans[i]); } return new GridLayoutManager(pair.first.intValue(), pair.second.intValue()); }