@Override public boolean isEmpty(List<FileItem> items, DataRecord record, PagesContext pagesContext) { boolean isEmpty = true; Iterator<FieldTemplate> itFields = null; if (fieldTemplates != null) { itFields = this.fieldTemplates.iterator(); } if (itFields != null && itFields.hasNext()) { FieldDisplayer fieldDisplayer = null; FieldTemplate fieldTemplate = null; while (itFields.hasNext() || !isEmpty) { fieldTemplate = itFields.next(); if (fieldTemplate != null) { String fieldType = fieldTemplate.getTypeName(); String fieldDisplayerName = fieldTemplate.getDisplayerName(); try { if (!StringUtil.isDefined(fieldDisplayerName)) { fieldDisplayerName = getTypeManager().getDisplayerName(fieldType); } fieldDisplayer = getTypeManager().getDisplayer(fieldType, fieldDisplayerName); if (fieldDisplayer != null) { String itemName = fieldTemplate.getFieldName(); String itemValue = null; if (Field.TYPE_FILE.equals(fieldType)) { FileItem image = getParameter(items, itemName); if (image != null && !image.isFormField() && StringUtil.isDefined(image.getName())) { isEmpty = false; } } else { if (fieldDisplayerName.equals("checkbox")) { itemValue = getParameterValues(items, itemName); } else { itemValue = getParameterValue(items, itemName); } if (StringUtil.isDefined(itemValue)) { isEmpty = false; } } } } catch (FormException fe) { SilverTrace.error("form", "XmlSearchForm.isEmpty", "form.EXP_UNKNOWN_FIELD", null, fe); } catch (Exception e) { SilverTrace.error("form", "XmlSearchForm.isEmpty", "form.EXP_UNKNOWN_FIELD", null, e); } } } } return isEmpty; }
/** * Checks the type of the field is as expected. The field must be of type file. * * @param typeName the name of the type. * @param contextCall the context of the call: which is the caller of this method. This parameter * is used for trace purpose. */ private void checkFieldType(final String typeName, final String contextCall) { if (!Field.TYPE_FILE.equals(typeName)) { SilverTrace.info("form", contextCall, "form.INFO_NOT_CORRECT_TYPE", Field.TYPE_FILE); } }