Object[] args = new Object[1];
for (Field formField : formFields) {
String fieldName = formField.getName();
if ( fieldName != null ) {
Property modelProperty = this.beanDescriptor.getProperty( fieldName );
if ( modelProperty != null ) {
String fieldValue = null;
if ( formField instanceof ComboBox ) {
fieldValue = ((ComboBox) formField).getValue();
}
else {
fieldValue = formField.getValueAsString();
}
Class<?> propertyType = modelProperty.getType();
if ( propertyType.equals( String.class ) ) {
args[0] = fieldValue;
}
else if ( "int".equals( propertyType.getName() ) ) {
if ( fieldValue.length() > 0 ) {
args[0] = Integer.parseInt( fieldValue );
}
else {
args[0] = 0;
}
}
else if ( "long".equals( propertyType.getName() ) ) {
if ( fieldValue.length() > 0 ) {
args[0] = Long.parseLong( fieldValue );
}
else {
args[0] = 0;
}
}
else if ( "boolean".equals( propertyType.getName() ) ) {
args[0] = Boolean.parseBoolean( fieldValue );
}
try {
Method mutatorMethod = modelProperty.getMutatorMethod();
mutatorMethod.invoke( this.model, args );
}
catch (Exception e) {
GWT.log( e.getMessage(), e );
}