[
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