Class CompoundSelector
java.lang.Object
javafx.css.Selector
javafx.css.CompoundSelector
public final class CompoundSelector extends Selector
A compound selector which behaves according to the CSS standard. The selector is composed of one or more
Selectors, along with an array of CompoundSelectorRelationships indicating the required relationship at each stage. There must be exactly one less Combinator than there are selectors. For example, the parameters [selector1, selector2, selector3] and [Combinator.CHILD, Combinator.DESCENDANT] will match a component when all of the following conditions hold:
- The component itself is matched by selector3
- The component has an ancestor which is matched by selector2
- The ancestor matched in step 2 is a direct CHILD of a component matched by selector1
selector1 > selector2 selector3. The greater-than (>) between selector1 and selector2 specifies a direct CHILD, whereas the whitespace between selector2 and selector3 corresponds to Combinator.DESCENDANT.- Since:
- 9
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
applies |
Gets whether this Selector applies to the given Styleable. |
boolean |
applies |
Gets whether this Selector applies to the given Styleable. |
Match |
createMatch() |
Creates a Match. |
List<SimpleSelector> |
getSelectors() |
The selectors that make up this compound selector |
boolean |
stateMatches |
Determines whether the current state of the Node and its parents matches the pseudo-classes defined (if any) for this selector. |
protected final void |
writeBinary |
Writes Selector data in binary form to given DataOutputStream. |
Methods declared in class javafx.css.Selector
createSelector, getOrdinal, getRule, setOrdinal
Method Details
getSelectors
public List<SimpleSelector> getSelectors()
The selectors that make up this compound selector
- Returns:
- Immutable List<SimpleSelector>
createMatch
public Match createMatch()
Description copied from class:
SelectorCreates a
Match.- Specified by:
-
createMatchin classSelector - Returns:
- a match, never
null
applies
public boolean applies(Styleable styleable)
Description copied from class:
SelectorGets whether this
Selector applies to the given Styleable.- Specified by:
-
appliesin classSelector - Parameters:
-
styleable- theStyleableto match - Returns:
-
trueif thisSelectorapplies to the givenStyleable
applies
public boolean applies(Styleable styleable, Set<PseudoClass>[] triggerStates, int depth)
Description copied from class:
SelectorGets whether this
Selector applies to the given Styleable. It is the same as the Selector.applies(javafx.css.Styleable) method except it also returns PseudoClass state that it finds along the way.- Specified by:
-
appliesin classSelector - Parameters:
-
styleable- theStyleableto match -
triggerStates- a set ofPseudoClassstates -
depth- depth of theNodeheirarchy to look for - Returns:
-
trueif thisSelectorand a set ofPseudoClassapplies to the givenStyleable
stateMatches
public boolean stateMatches(Styleable styleable, Set<PseudoClass> states)
Description copied from class:
SelectorDetermines whether the current state of the
Node and its parents matches the pseudo-classes defined (if any) for this selector.- Specified by:
-
stateMatchesin classSelector - Parameters:
-
styleable- the styleable -
states- the state - Returns:
-
trueif the current state of the node and its parents matches the pseudo-classes defined (if any) for this selector
writeBinary
protected final void writeBinary(DataOutputStream os, StyleConverter.StringStore stringStore) throws IOException
Description copied from class:
SelectorWrites
Selector data in binary form to given DataOutputStream.- Overrides:
-
writeBinaryin classSelector - Parameters:
-
os-DataOutputStreamto writeSelectordata to -
stringStore- unused - Throws:
-
IOException- if writing toDataOutputStreamfails
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.