[ 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