[ 
https://issues.apache.org/jira/browse/PIVOT-783?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13075971#comment-13075971
 ] 

Chris Bartlett commented on PIVOT-783:
--------------------------------------

Bill, as Greg posted on the dev mailing list, this is by design.  Decorators 
are applied when Component are painted, so if a repaint doesn't happen, the 
decorator will not be reapplied.

A quick workaround would be to subclass ScaleDecorator and provide each 
instance with a target Component, and then explicitly request a repaint() of 
the target Component in the setScale() method.

> Calling setScale on scaleDecorator doesn't update the display
> -------------------------------------------------------------
>
>                 Key: PIVOT-783
>                 URL: https://issues.apache.org/jira/browse/PIVOT-783
>             Project: Pivot
>          Issue Type: Bug
>          Components: wtk
>    Affects Versions: 2.0
>            Reporter: Bill van Melle
>            Priority: Minor
>             Fix For: 2.0.1
>
>
> When you call setScale on a scaleDecorator that's already in the display 
> tree, the display does not update. You can't see the effect of the change 
> until something else causes a repaint. 
> Looking at the code, isn't this an issue for decorators in general? I don't 
> see any mechanism for decorators to notify the component (or components?) 
> that they are attached to that they've changed. If you're not going to 
> notify, then shouldn't decorators be immutable objects? (Of course, that 
> would break a lot of code.) 
> FWIW, a demonstration: 
> <Window title="Scale change" maximized="true"
>   xmlns:bxml="http://pivot.apache.org/bxml";
>   xmlns:effects="org.apache.pivot.wtk.effects"
>   xmlns="org.apache.pivot.wtk">
>   <BoxPane orientation="vertical" preferredWidth="300">
>     <PushButton buttonData="Change">
>       <buttonPressListeners>
>         function buttonPressed(button) {
>           scaleDecorator.setScale(2.0);
>         }
>       </buttonPressListeners>
>     </PushButton>
>     <Label text="This text should get twice as big when I push the button">
>       <decorators>
>         <effects:ScaleDecorator bxml:id="scaleDecorator" 
>           horizontalAlignment="left" verticalAlignment="top" />
>       </decorators>
>     </Label>
>   </BoxPane>
> </Window>

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to