Reloading stylesheets
David Grieve
david.grieve at oracle.com
Wed Dec 11 09:19:37 PST 2013
There is clearly a bug there somewhere. Would you mind filing an issue on javafx-jira.kenai.com?
On Dec 11, 2013, at 11:51 AM, ngalarneau at abinitio.com wrote:
> Hi David,
>
> I have stylesheet SWITCHING working fine. I can switch between 2 different
> stylesheets on disk without tearing down & rebuilding my Scene. To do this
> I simply do:
> scene.stylesheets.clear()
> scene.stylesheets.add(differentStylesheet)
> and the changes show up immediately (I'm assuming those 2 lines cause a
> .css recalculation & a pulse).
>
> I would like to get stylesheet RELOADING to work in my JavaFX 8 app. By
> this I mean picking up changes in a single .css file. This would allow the
> developers to tweak the stylesheet & reload to see the effects
> immediately.
>
> Unfortunately, it feels like the Filename of the stylesheet is the Key in
> a cache that isn't getting cleared by my code above. Nothing visible
> happens when I do:
> scene.stylesheets.clear()
> scene.stylesheets.add(sameStylesheet)
>
> Given your description below, my impression is that RELOADING should also
> work...
>
> Thank you for any suggestions,
>
> Neil
>
>
>
>
> From: David Grieve <david.grieve at oracle.com>
> To: Werner Lehmann <lehmann at media-interactive.de>
> Cc: openjfx-dev at openjdk.java.net
> Date: 12/10/2013 11:10 AM
> Subject: Re: Reloading stylesheets
> Sent by: openjfx-dev-bounces at openjdk.java.net
>
>
>
> The way it works in 8.0 is that there is a cache of loaded stylesheets.
> When a scene or parent adds a stylesheet, the stylesheet is added to the
> cache. Any other scene or parent that uses the same stylesheet will get
> the one from cache. If a scene or parent later removes the stylesheet, the
> stylesheet is removed from the cache and the css style cache for any scene
> or parent that referenced that stylesheet is cleared (since the set of
> styles may have changed). Any scene or parent that referenced the now
> removed stylesheet is told to reapply its styles. Since the stylesheet is
> no longer in cache, it will be re-parsed (or reloaded if there is a binary
> version of the stylesheet) when it is called for by a scene or parent.
>
> The way it worked in 2.x was an abomination.
>
> On Dec 10, 2013, at 10:30 AM, Werner Lehmann
> <lehmann at media-interactive.de> wrote:
>
>> Interesting. Assuming the stylesheets are still cached, how would it
> know when to reload and not use the cached sheet? Or has sheet processing
> been optimized so much that caching is not necessary anymore...
>>
>> On 10.12.2013 16:15, Tom Schindl wrote:
>>> No on FX8 you need to remove and readd them! So the only thing
> different
>>> is that you omit the reload-call on FX8.
>
>
>
>
>
> NOTICE from Ab Initio: This email (including any attachments) may contain
> information that is subject to confidentiality obligations or is legally
> privileged, and sender does not waive confidentiality or privilege. If
> received in error, please notify the sender, delete this email, and make
> no further use, disclosure, or distribution.
More information about the openjfx-dev
mailing list