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.