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

Bill van Melle updated PIVOT-783:
---------------------------------

    Issue Type: Improvement  (was: Bug)

Okay, "Improvement" it is.

As for your parenthetical concern, I don't think there could be a loop.  A 
decorator would call invalidate only when one of its properties is changed, not 
when it's painted.

As for whether Pivot "needs" to be fixed, of course, I'd say yes, for an 
improved programmer's experience.  But if it is not to be fixed, perhaps the 
documentation on decorators could mention that their properties shouldn't be 
changed after being added to a component, or if they are, the programmer is 
responsible for calling repaint().  It was very non-obvious to me that 
decorators would behave differently from everything else in my component tree 
when it comes to changing their properties.

> 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: Improvement
>          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