[ 
https://issues.apache.org/jira/browse/TAP5-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Howard M. Lewis Ship closed TAP5-1895.
--------------------------------------

       Resolution: Won't Fix
    Fix Version/s:     (was: 5.3.3)
                       (was: 5.4)
         Assignee: Howard M. Lewis Ship

ValidationDecorator is deprecated in 5.4 and will soon be removed.
                
> ValidationDecorator.insideLabel(...) is called after the removal of 
> PropertyContext in PropertyEditor
> -----------------------------------------------------------------------------------------------------
>
>                 Key: TAP5-1895
>                 URL: https://issues.apache.org/jira/browse/TAP5-1895
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-core
>    Affects Versions: 5.3.2
>            Reporter: Vladimir Velikiy
>            Assignee: Howard M. Lewis Ship
>              Labels: label, validationdecorator
>         Attachments: TAP5-1895.patch
>
>
> I want to add css class to label if field is required in my custom 
> ValidationDecorator:
>    
> @Override
>     public void insideLabel(Field field, Element labelElement) {
>         if(field == null) return;
>         if(field.isRequired()) {
>             labelElement.addClassName("required-label");
>         }
>         if(inError(field)) {
>             labelElement.addClassName(CSSClassConstants.ERROR);
>         }
>     }
> It does not work with BeanEditForm component. The problem arises because 
> method ValidationDecorator.insideLabel(...) is called in Label component 
> after removal of PropertyContext from Environment (PropertyContext is needed 
> for get the validator and call isRequired() method):
> @HeartbeatDeferred
>     private void updateAttributes()
>     {
>         String fieldId = field.getClientId();
>         labelElement.forceAttributes("for", fieldId);
>         decorator.insideLabel(field, labelElement);
>     }
> The solution for this problem would be to move the call to 
> decorator.insideLabel (field, labelElement) to the beginRender method in 
> Label component. Label decorating does not need to wait for rendering field 
> element and only needs a label element.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to