Класс CssMetaData<S extends Styleable, V>
- Параметры типа:
-
S- Тип Styleable -
V- Тип, в который преобразуется разобранное значение.
- Непосредственные подклассы:
FontCssMetaData
public abstract class CssMetaData<S extends Styleable,V> extends Object
CssMetaData — это мост между значением, которое можно представить синтаксически в файле .css, и StyleableProperty. Существует взаимно однозначное соответствие между CssMetaData и StyleableProperty. Как правило, CssMetaData узла будет включать CssMetaData его предков. Например, CssMetaData прямоугольника включает CssMetaData фигуры и также узла. Во время обработки CSS движок CSS итерируется по CssMetaData узла, находит разобранное значение каждого property, преобразует разобранное значение и устанавливает значение в StyleableProperty.
Метод Node.getCssMetaData() используется для получения списка<CssMetaData>. Этот метод часто вызывается, и целесообразно возвращать статический список, а не создавать список каждый раз при вызове. По соглашению, классы узлов, имеющие CssMetaData, будут реализовывать статический метод getClassCssMetaData(), и принято, чтобы getCssMetaData() просто возвращал getClassCssMetaData(). Цель getClassCssMetaData() — позволить подклассам легко включать CssMetaData некоторого предка.
StyleablePropertyFactory значительно упрощает создание StyleableProperty и соответствующего CssMetaData.
Этот пример — типичная реализация.
private DoubleProperty gapProperty = new StyleableDoubleProperty(0) {
@Override
public CssMetaData<MyWidget,Number> getCssMetaData() {
return GAP_META_DATA;
}
@Override
public Object getBean() {
return MyWidget.this;
}
@Override
public String getName() {
return "gap";
}
};
private static final CssMetaData GAP_META_DATA =
new CssMetaData<MyWidget,Number>("-my-gap", StyleConverter.getSizeConverter(), 0d) {
@Override
public boolean isSettable(MyWidget node) {
return node.gapProperty == null || !node.gapProperty.isBound();
}
@Override
public StyleableProperty<Number> getStyleableProperty(MyWidget node) {
return (StyleableProperty<Number>)node.gapProperty;
}
};
private static final List<CssMetaData<? extends Node, ?>> cssMetaDataList;
static {
List<CssMetaData<? extends Node, ?>> temp =
new ArrayList<CssMetaData<? extends Node, ?>>(Control.getClassCssMetaData());
temp.add(GAP_META_DATA);
cssMetaDataList = Collections.unmodifiableList(temp);
}
public static List<CssMetaData<? extends Node, ?>> getClassCssMetaData() {
return cssMetaDataList;
}
@Override
public List<CssMetaData<? extends Node, ?>> getCssMetaData() {
return getClassCssMetaData();
}
- С:
- JavaFX 8.0
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает CssMetaData с заданными параметрами, initialValue равен null, inherit равен false и без дочерних свойств. |
|
protected |
Создает CssMetaData с заданными параметрами, inherit равен false и без дочерних свойств. |
|
protected |
Создает CssMetaData с заданными параметрами и без дочерних свойств. |
|
protected |
Создает CssMetaData с заданными параметрами и без дочерних свойств. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Два объекта CssMetaData считаются равными, если их значения property равны. |
final StyleConverter<?, |
getConverter() |
Получает преобразователь CSS, который обрабатывает преобразование из значения CSS в объект Java. |
V |
getInitialValue |
Начальное значение CssMetaData соответствует значению по умолчанию StyleableProperty в коде. |
final String |
getProperty() |
Получает имя свойства CSS. |
abstract StyleableProperty<V> |
getStyleableProperty |
Возвращает соответствующий StyleableProperty для данного узла. |
final List<CssMetaData<? extends Styleable, |
getSubProperties() |
Подсвойства относятся к составляющим свойствам этого свойства, если таковые имеются. |
final boolean |
isInherits() |
Если true, значение этого свойства такое же, как вычисленное значение родительского свойства. |
abstract boolean |
isSettable |
Проверяет, устанавливается ли соответствующее свойство на заданном узле. |
void |
set |
Устарело. Этот метод больше не вызывается из кода CSS. |
Подробное описание конструкторов
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)
- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования проанализированного значения CSS в объект Java. -
initialValue- начальное или значение по умолчанию соответствующего StyleableProperty -
inherits- true, если это свойство использует наследование CSS -
subProperties- дочерние свойства этого свойства. Например, свойство -fx-font имеет дочерние свойства -fx-font-family, -fx-font-size, -fx-font-weight и -fx-font-style.
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)
- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования проанализированного значения CSS в объект Java. -
initialValue- начальное или значение по умолчанию соответствующего StyleableProperty -
inherits- true, если это свойство использует наследование CSS
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования проанализированного значения CSS в объект Java. -
initialValue- начальное или значение по умолчанию соответствующего StyleableProperty
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter)
- Параметры:
-
property- свойство CSS -
converter- StyleConverter, используемый для преобразования проанализированного значения CSS в объект Java.
Подробное описание методов
set
@Deprecated(since="8") public void set(S styleable, V value, StyleOrigin origin)
StyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)
- Параметры:
-
styleable- Styleable, на котором устанавливается значение свойства -
value- значение, которому устанавливается свойство -
origin- источник
isSettable
public abstract boolean isSettable(S styleable)
- Параметры:
-
styleable- Styleable, на котором устанавливается значение свойства - Возвращает:
- true, если свойство может быть установлено.
getStyleableProperty
public abstract StyleableProperty<V> getStyleableProperty(S styleable)
StyleableProperty для данного узла. Обратите внимание, что вызов этого метода приведет к расширению свойства.- Параметры:
-
styleable- Styleable, для которого возвращается свойство - Возвращает:
- StyleableProperty, соответствующая этому CssMetaData для данного Styleable
getProperty
public final String getProperty()
- Возвращает:
- имя свойства CSS
getConverter
public final StyleConverter<?,V> getConverter()
- Возвращает:
- преобразователь CSS
getInitialValue
public V getInitialValue(S styleable)
Однако могут быть исключения. Начальное значение может зависеть от состояния узла. У ScrollBar ориентация по умолчанию - горизонтальная. Если ScrollBar вертикальный, этот метод должен возвращать Orientation.VERTICAL. В противном случае вертикальный ScrollBar неправильно устанавливался бы в горизонтальный ScrollBar при применении начального значения.
- Параметры:
-
styleable- styleable - Возвращает:
- Начальное значение свойства, возможно, null
getSubProperties
public final List<CssMetaData<? extends Styleable,?>> getSubProperties()
- Возвращает:
- список подсвойств
isInherits
public final boolean isInherits()
- Возвращает:
- false по умолчанию, если inherits не true
- См. также:
equals
public boolean equals(Object obj)
property равны.- Overrides:
-
equalsв классеObject - Возвращает:
- true, если obj равен, false в противном случае
© 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.