You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Vladimir Velikiy (Created) (JIRA)" <ji...@apache.org> on 2012/04/04 10:01:00 UTC

[jira] [Created] (TAP5-1895) ValidationDecorator.insideLabel(...) is called after the removal of PropertyContext in PropertyEditor

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


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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1895) ValidationDecorator.insideLabel(...) is called after the removal of PropertyContext in PropertyEditor

Posted by "Vladimir Velikiy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Velikiy updated TAP5-1895:
-----------------------------------

    Fix Version/s: 5.4
                   5.3.3
    
> 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
>              Labels: label, validationdecorator
>             Fix For: 5.3.3, 5.4
>
>         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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1895) ValidationDecorator.insideLabel(...) is called after the removal of PropertyContext in PropertyEditor

Posted by "Vladimir Velikiy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Velikiy updated TAP5-1895:
-----------------------------------

    Fix Version/s: 5.4
                   5.3.3
    
> 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
>              Labels: label, validationdecorator
>             Fix For: 5.3.3, 5.4
>
>         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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1895) ValidationDecorator.insideLabel(...) is called after the removal of PropertyContext in PropertyEditor

Posted by "Vladimir Velikiy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Velikiy updated TAP5-1895:
-----------------------------------

    Attachment: TAP5-1895.patch

The patch is attached
                
> 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
>              Labels: label, validationdecorator
>             Fix For: 5.3.3, 5.4
>
>         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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (TAP5-1895) ValidationDecorator.insideLabel(...) is called after the removal of PropertyContext in PropertyEditor

Posted by "Vladimir Velikiy (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/TAP5-1895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Vladimir Velikiy updated TAP5-1895:
-----------------------------------

    Attachment: TAP5-1895.patch

The patch is attached
                
> 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
>              Labels: label, validationdecorator
>             Fix For: 5.3.3, 5.4
>
>         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: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira