src/main/java/org/efaps/ui/wicket/components/footer/AjaxSubmitCloseButton.java
private boolean evalFormElement(final AjaxRequestTarget _target,
                                    final StringBuilder _html,
                                    final UIForm _uiform)
        throws EFapsException
    {
        AjaxSubmitCloseButton.LOG.trace("entering evalFormElement");
        boolean ret = true;
        for (final Element element : _uiform.getElements()) {
            if (element.getType().equals(ElementType.FORM)) {
                final FormElement formElement = (FormElement) element.getElement();
                for (final Iterator<FormRow> uiRowIter = formElement.getRowModels(); uiRowIter.hasNext();) {
                    for (final IUIElement object : uiRowIter.next().getValues()) {

                    }
                }
            } else if (element.getType().equals(ElementType.SUBFORM)) {
                final UIFieldForm uiFieldForm = (UIFieldForm) element.getElement();
                final boolean tmp = evalFormElement(_target, _html, uiFieldForm);
                ret = ret ? tmp : ret;
            } else if (element.getType().equals(ElementType.TABLE)) {
                final UIFieldTable uiFieldTable = (UIFieldTable) element.getElement();
                final List<UITableHeader> headers = uiFieldTable.getHeaders();
                for (final UIRow uiRow : uiFieldTable.getValues()) {
                    uiRow.getUserinterfaceId();
                    final Iterator<UITableHeader> headerIter = headers.iterator();
                    for (final IFilterable filterable : uiRow.getCells()) {
                        headerIter.next();
                    }
                }
            }
        }
        return ret;
    }
private boolean evalFormElement(final AjaxRequestTarget _target,
                                    final StringBuilder _html,
                                    final UIForm _uiform)
        throws EFapsException
    {
        AjaxSubmitCloseButton.LOG.trace("entering evalFormElement");
        boolean ret = true;
        for (final Element element : _uiform.getElements()) {
            if (element.getType().equals(ElementType.FORM)) {
                final FormElement formElement = (FormElement) element.getElement();
                for (final Iterator<FormRow> uiRowIter = formElement.getRowModels(); uiRowIter.hasNext();) {
                    for (final IUIElement object : uiRowIter.next().getValues()) {

                    }
                }
            } else if (element.getType().equals(ElementType.SUBFORM)) {
                final UIFieldForm uiFieldForm = (UIFieldForm) element.getElement();
                final boolean tmp = evalFormElement(_target, _html, uiFieldForm);
                ret = ret ? tmp : ret;
            } else if (element.getType().equals(ElementType.TABLE)) {
                final UIFieldTable uiFieldTable = (UIFieldTable) element.getElement();
                final List<UITableHeader> headers = uiFieldTable.getHeaders();
                for (final UIRow uiRow : uiFieldTable.getValues()) {
                    uiRow.getUserinterfaceId();
                    final Iterator<UITableHeader> headerIter = headers.iterator();
                    for (final IFilterable filterable : uiRow.getCells()) {
                        headerIter.next();
                    }
                }
            }
        }
        return ret;
    }
Recursive method to validate the elements of the form.
@param _target   AjaxRequestTarget
@param _html     StringBuilder for the warning message
@param _uiform   UIForm to start the validation
@return true if validation was valid, else false
@throws EFapsException on error