How exactly can you use pseudo-class state for this sort of change? I have a similar requirement in my own app. It always did feel a little 'heavy' when I added and removed style-classes, but it still seemed like the best way to trigger visual changes on my nodes. Though I guess one benefit is that by frequently changing the style-classes in a node I discovered leaks in ProgressBar that were subsquently exposed (RT-40384).
Scott On Fri, Apr 3, 2015 at 4:19 PM, David Grieve <[email protected]> wrote: > 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 >>> >> >> >
