String (final GuiEditor editor, final List<RadComponent> components) { final XmlWriter writer = new XmlWriter(); writer.startElement(ELEMENT_SERIALIZED, Utils.FORM_NAMESPACE); for (final RadComponent component : components) { final Point shift; if (component.getParent() != null) { shift = SwingUtilities.convertPoint( component.getParent().getDelegee(), component.getX(), component.getY(), editor.getRootContainer().getDelegee() ); } else { shift = new Point(0, 0); } component.getX(); writer.startElement("item"); writer.addAttribute(ATTRIBUTE_X, shift.x); writer.addAttribute(ATTRIBUTE_Y, shift.y); if (component.getParent() != null) { final String parentLayout = component.getParent().getLayoutManager().getName(); if (parentLayout != null) { writer.addAttribute(ATTRIBUTE_PARENT_LAYOUT, parentLayout); } } component.write(writer); writer.endElement(); } writer.endElement(); return writer.getText(); }