Changeset 5033

Show
Ignore:
Timestamp:
07/03/08 13:56:00 (6 months ago)
Author:
joonas.lehtinen@…
Message:

Corrections for #1867

Location:
trunk/src/com/itmill/toolkit/ui
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/com/itmill/toolkit/ui/AbstractComponent.java

    r5030 r5033  
    1414 
    1515import com.itmill.toolkit.Application; 
    16 import com.itmill.toolkit.data.Validator.EmptyValueException; 
    1716import com.itmill.toolkit.event.EventRouter; 
    1817import com.itmill.toolkit.event.MethodEventSource; 
    19 import com.itmill.toolkit.terminal.CompositeErrorMessage; 
    2018import com.itmill.toolkit.terminal.ErrorMessage; 
    2119import com.itmill.toolkit.terminal.PaintException; 
     
    627625                final ErrorMessage error = getErrorMessage(); 
    628626                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); 
    635628                } 
    636629            } else { 
  • trunk/src/com/itmill/toolkit/ui/Form.java

    r5030 r5033  
    1616import com.itmill.toolkit.data.Validatable; 
    1717import com.itmill.toolkit.data.Validator; 
    18 import com.itmill.toolkit.data.Validator.EmptyValueException; 
    1918import com.itmill.toolkit.data.Validator.InvalidValueException; 
    2019import com.itmill.toolkit.data.util.BeanItem; 
     
    172171            formFooter.paint(target); 
    173172        } 
    174          
    175         // AbstractComponent.paint() does not paint EmptyValueExceptions and 
    176         // filters them out, but Form wants to paint them, so we have to 
    177         // see if the error was skipped. 
    178         // Efficiency note: also AbstractComponent.paint() calls 
    179         // 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); 
    185173    } 
    186174 
     
    196184     */ 
    197185    public ErrorMessage getErrorMessage() { 
     186 
    198187        // Reimplement the checking of validation error by using 
    199188        // getErrorMessage() recursively instead of validate(). 
    200189        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) { 
    211204                } 
    212             } catch (ClassCastException ignored) { 
    213             } 
    214         } 
    215          
    216         // The rest is reimplementation of the latter part of 
    217         // AbstractField.getErrorMessage() 
    218          
     205            } 
     206        } 
     207 
    219208        // Check if there are any systems errors 
    220209        final ErrorMessage superError = super.getErrorMessage();