Changeset 5033
- Timestamp:
- 07/03/08 13:56:00 (6 months ago)
- Location:
- trunk/src/com/itmill/toolkit/ui
- Files:
-
- 2 modified
-
AbstractComponent.java (modified) (2 diffs)
-
Form.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/com/itmill/toolkit/ui/AbstractComponent.java
r5030 r5033 14 14 15 15 import com.itmill.toolkit.Application; 16 import com.itmill.toolkit.data.Validator.EmptyValueException;17 16 import com.itmill.toolkit.event.EventRouter; 18 17 import com.itmill.toolkit.event.MethodEventSource; 19 import com.itmill.toolkit.terminal.CompositeErrorMessage;20 18 import com.itmill.toolkit.terminal.ErrorMessage; 21 19 import com.itmill.toolkit.terminal.PaintException; … … 627 625 final ErrorMessage error = getErrorMessage(); 628 626 if (error != null) { 629 // Do not display empty value errors for 630 // empty required fields. 631 if (!(error instanceof EmptyValueException || 632 (error instanceof CompositeErrorMessage && 633 ((CompositeErrorMessage)error).hasErrorMessageClass(EmptyValueException.class)))) 634 error.paint(target); 627 error.paint(target); 635 628 } 636 629 } else { -
trunk/src/com/itmill/toolkit/ui/Form.java
r5030 r5033 16 16 import com.itmill.toolkit.data.Validatable; 17 17 import com.itmill.toolkit.data.Validator; 18 import com.itmill.toolkit.data.Validator.EmptyValueException;19 18 import com.itmill.toolkit.data.Validator.InvalidValueException; 20 19 import com.itmill.toolkit.data.util.BeanItem; … … 172 171 formFooter.paint(target); 173 172 } 174 175 // AbstractComponent.paint() does not paint EmptyValueExceptions and176 // filters them out, but Form wants to paint them, so we have to177 // see if the error was skipped.178 // Efficiency note: also AbstractComponent.paint() calls179 // getErrorMessage(), which is a bit heavy call.180 final ErrorMessage error = getErrorMessage();181 if (error instanceof EmptyValueException ||182 (error instanceof CompositeErrorMessage &&183 ((CompositeErrorMessage)error).hasErrorMessageClass(EmptyValueException.class)))184 error.paint(target);185 173 } 186 174 … … 196 184 */ 197 185 public ErrorMessage getErrorMessage() { 186 198 187 // Reimplement the checking of validation error by using 199 188 // getErrorMessage() recursively instead of validate(). 200 189 ErrorMessage validationError = null; 201 for (final Iterator i = propertyIds.iterator(); i.hasNext();) { 202 try { 203 AbstractComponent field = (AbstractComponent) fields.get(i 204 .next()); 205 validationError = field.getErrorMessage(); 206 if (validationError != null) { 207 // Skip empty errors 208 if (validationError.toString().isEmpty()) 209 continue; 210 break; 190 if (isValidationVisible()) { 191 for (final Iterator i = propertyIds.iterator(); i.hasNext();) { 192 try { 193 AbstractComponent field = (AbstractComponent) fields.get(i 194 .next()); 195 validationError = field.getErrorMessage(); 196 if (validationError != null) { 197 // Skip empty errors 198 if ("".equals(validationError.toString())) { 199 continue; 200 } 201 break; 202 } 203 } catch (ClassCastException ignored) { 211 204 } 212 } catch (ClassCastException ignored) { 213 } 214 } 215 216 // The rest is reimplementation of the latter part of 217 // AbstractField.getErrorMessage() 218 205 } 206 } 207 219 208 // Check if there are any systems errors 220 209 final ErrorMessage superError = super.getErrorMessage();
