Debugging CSS

David Grieve david.grieve at oracle.com
Fri Apr 3 20:19:34 UTC 2015


When you add or remove style-classes, CSS for the node (and all its 
children) is totally re-calculated. This means that cached data for that 
node is tossed out and the node is styled from scratch, as if it were 
just added to the scene-graph.

You are much better off using pseudo-class state for what you are trying 
to do. Changes in pseudo-class state just causes evaluation of what 
styles are applied in that state, which is relatively low overhead 
compared to re-calculating styles.

To debug, you should try using Scenic View 
(http://fxexperience.com/scenic-view/)

You can also use the Node API Map<StyleableProperty<?>,List<Style>> 
impl_findStyles(Map<StyleableProperty<?>,List<Style>> styleMap). Note 
that this is deprecated API

On 4/3/15 2:13 PM, Tom Eugelink wrote:
> One addition: the move happens if, for example, "segment0-active" is 
> added to the skinnable. Even if that class is empty or even not 
> defined in the CSS.
>
> Tom
>
> On 3-4-2015 19:48, Tom Eugelink wrote:
>> I'm pushing the envelope a bit -I think- concerning the use of CSS. I 
>> have setup a control (gauge) in such a way that, depending on the 
>> position of the needle, certain CSS classes are added or removed from 
>> the control. For example a "errorSegment-active" class if the value 
>> comes into the 90-100 value in a 0-100 gauge. In this class a CSS 
>> variable -fx-error-indicator-visibility is set to "visible" and that 
>> again shows some kind of indicator on the gauge. Works great.
>>
>> What is strange is when this class is assigned to the control, a 
>> totally unrelated node (the value in the needle) suddenly moves out 
>> of position. I do not understand this, because the CSS only involves 
>> colors and visibility, never any transformation.
>> https://github.com/JFXtras/jfxtras-labs/blob/8.0/src/main/resources/jfxtras/labs/internal/scene/control/gauge/linear/SimpleMetroArcGauge.css 
>>
>>
>> Is there any way to debug what CSS settings are applied to nodes? I 
>> really would like to find out what causes that node to move.
>>
>> Tom
>



More information about the openjfx-dev mailing list