Event when CSS is applied
Tom Eugelink
tbee at tbee.org
Wed Feb 18 06:46:38 UTC 2015
Sure! I'm very curious what can be done better.
https://github.com/JFXtras/jfxtras-labs/blob/8.0/src/main/java/jfxtras/labs/internal/scene/control/skin/gauge/linear/SimpleMetroArcGaugeSkin.java
You can also checkout the sources, you should be able to run SimpleMetroArcGaugeTrial1.java without any other dependencies. Some of the other classes will have compilation errors, but the gauge should run.
Tom
On 17-2-2015 23:15, Tomas Mikula wrote:
> Maybe if you can post the relevant part of your layoutChildren method
> so that others can look if they can suggest an improvement.
>
> Tomas
>
> On Tue, Feb 17, 2015 at 5:05 PM, Tom Eugelink <tbee at tbee.org> wrote:
>> On 17-2-2015 20:01, David Grieve wrote:
>>> On 2/17/15 1:30 PM, Tom Eugelink wrote:
>>>> The control is a codewise polish up one of Gerrit's gauges (with
>>>> permission!) and pulled into JFXtras (with tests and all). For an idea on
>>>> what we are talking about:
>>>> https://www.youtube.com/watch?v=RH5X1uBu1d8
>>>>
>>>> The process of centering the Text in that circle is a bit more complex.
>>>> 1. The value may vary between a min and max value.
>>>> 2. I want the Text to automatically utilize the maximum available space,
>>>> but not change size when a longer or shorter text is shown.
>>>>
>>>> To do this I have two additional Text nodes that have the same styling as
>>>> the Text node (so these are on the scene, but not visible, otherwise CSS is
>>>> not applied). These two text nodes get the maximum and minimum possible
>>>> value set. Then on these two some pythagoras is applied and in that way one
>>>> can determine the scale factor so that the value will never be rendered
>>>> outside of the circle. Then the actual to-be-rendered value can be placed
>>>> into the Text node and positioned in the centre of the circle.
>>>>
>>>> The problem is that a lot of these calculations depend on the CSS
>>>> styling. What font is set? Bold or not? So I can only do these calculcation
>>>> after the CSS has been applied. This unfortunately is not yet the case when
>>>> the skin is instantiated. This means that if I do not used the
>>>> layoutChildren, the initial presentation is totally off, untill the first
>>>> min/max/value is set.
>>> Have you looked at the javadoc for Node#applyCss()?
>>
>> I did just now and tried calling that and layout when the skin is being
>> instantiated, but apparently things are not setup right yet.
>>
>> Maybe layoutChildren with bound checking is the way to go.
More information about the openjfx-dev
mailing list