if (ObjectUtils.contains(keyColumns, col))
continue;
// Get the value from the input control
Object value = null;
String field = getRequestFieldName(col);
InputControl control = null;
if (record.isFieldReadOnly(col)==false)
control = InputControlManager.getControl(col.getControlType());
// Get Value from Control first
if (control!=null && (value=control.getFieldValue(field, action, locale, col))!=null)
{ // Check for Error
if (value instanceof InputControl.FieldValueError)
{
InputControl.FieldValueError fieldError = (InputControl.FieldValueError)value;
// Error
String errorValue = fieldError.getValue();
addFieldError(field, col, fieldError, errorValue);
setRecordFieldValue(i, errorValue, false);
valid = false;
continue;
}
// Check Value
if (value.equals(InputControl.NULL_VALUE) && col.isRequired())
{ // Oops, columns is required
InputControl.FieldValueError fieldError = new InputControl.FieldValueError(WebErrors.InputValueRequired, null, "", control.getClass());
addFieldError(field, col, fieldError, value);
valid = false;
continue;
}
// Set Value