public void parseElement(Element element) {
        this.id = element.getAttribute("id");
        String marginStr = element.getAttribute("margin");
        margin = Integer.parseInt(marginStr);
        this.helper = new FormLayoutHelper();

        NodeList components = element.getElementsByTagName("component");
        for (int i = 0; i < components.getLength(); i++) {
            Element componentElement = (Element) components.item(i);

            String componentId = componentElement.getAttribute("id");
            String componentType = componentElement.getAttribute("type");
            String componentText = componentElement.getAttribute("text");
            if (componentText == null || componentText.isEmpty()) {
                componentText = componentId;
            }

            Component component = null;
            switch (componentType) {
            case "JLabel":
                component = new JLabel(componentText);
                break;
            case "JTextField":
                component = new JTextField(10);
                break;
            case "JTextArea":
                component = new JTextArea(1, 1);
                break;
            case "JButton":
                component = new JButton(componentText);
                break;
            case "custom":
            default:
                break;
            }

            XMLLayoutData xmlLayoutData = getXMLayoutData(componentElement);

            this.componentsIdMap.put(componentId, component);
            this.componentsLayoutMap.put(componentId, xmlLayoutData);
        }
    }