Spec-Zone.ru › OpenJavaFX 24

Класс CssMetaData<S extends Styleable,V>

java.lang.Object
javafx.css.CssMetaData<S,V>
Параметры типа:
S - Тип Styleable
V - Тип, в который преобразуется разобранное значение.
Прямые известные подклассы:
FontCssMetaData
public abstract class CssMetaData<S extends Styleable,V> extends Object
Экземпляр CssMetaData предоставляет информацию о CSS-стиле и предоставляет средства, позволяющие CSS устанавливать значение свойства. Он инкапсулирует имя CSS-свойства, тип, в который преобразуется значение CSS, и значение свойства по умолчанию.

CssMetaData является мостом между значением, которое может быть синтаксически представлено в файле .css, и StyleableProperty. Существует взаимно однозначное соответствие между CssMetaData и StyleableProperty. Как правило, CssMetaData узла будет включать CssMetaData его предков. Например, CssMetaData прямоугольника включает CssMetaData фигуры и также узла. Во время обработки CSS движок CSS итерирует по CssMetaData узла, находит разобранное значение каждого property, преобразует разобранное значение и устанавливает значение в StyleableProperty.

Метод Node.getCssMetaData() используется для получения списка List<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
См. также:
  • StyleablePropertyFactory

Краткое описание конструкторов

CssMetaData(String property, StyleConverter<?,V> converter)
CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)
CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)
Модификатор Конструктор Описание
protected
Создаёт CssMetaData с заданными параметрами, initialValue — null, inherit — false и без дочерних свойств.
protected
Создаёт CssMetaData с заданными параметрами, inherit — false и без дочерних свойств.
protected
Создаёт CssMetaData с заданными параметрами и без дочерних свойств.
protected
Создаёт CssMetaData с заданными параметрами и без дочерних свойств.

Краткое описание методов

Модификатор и тип Метод Описание
boolean equals(Object obj)
Два объекта CssMetaData считаются равными, если их значения property равны.
final StyleConverter<?,V> getConverter()
Получает CSS-конвертер, обрабатывающий преобразование значения CSS в Java-объект.
V getInitialValue(S styleable)
Начальное значение CssMetaData соответствует значению по умолчанию StyleableProperty в коде.
final String getProperty()
Получает имя CSS-свойства.
abstract StyleableProperty<V> getStyleableProperty(S styleable)
Возвращает соответствующий StyleableProperty для данного узла.
final List<CssMetaData<? extends Styleable,?>> getSubProperties()
Дочерние свойства относятся к составляющим свойствам данного свойства, если таковые имеются.
final boolean isInherits()
Если true, значение этого свойства такое же, как вычисленное значение этого свойства родителя.
abstract boolean isSettable(S styleable)
Проверяет, устанавливается ли соответствующее свойство на данном узле.
void set(S styleable, V value, StyleOrigin origin)
Устарело.
Этот метод больше не вызывается из CSS-кода.

Методы, объявленные в классе java.lang.Object

clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

CssMetaData

protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)
Создаёт CssMetaData с заданными параметрами и без дочерних свойств.
Параметры:
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)
Создаёт CssMetaData с заданными параметрами и без дочерних свойств.
Параметры:
property - свойство CSS
converter - StyleConverter, используемый для преобразования значения, прочитанного из CSS, в объект Java.
initialValue - начальное или значение по умолчанию соответствующего свойства StyleableProperty
inherits - true, если это свойство использует наследование CSS

CssMetaData

protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
Создаёт CssMetaData с заданными параметрами, наследование установлено в false и без дочерних свойств.
Параметры:
property - свойство CSS
converter - StyleConverter, используемый для преобразования значения, прочитанного из CSS, в объект Java.
initialValue - начальное или значение по умолчанию соответствующего свойства StyleableProperty

CssMetaData

protected CssMetaData(String property, StyleConverter<?,V> converter)
Создаёт CssMetaData с заданными параметрами, initialValue равно null, наследование установлено в false и без дочерних свойств.
Параметры:
property - свойство CSS
converter - StyleConverter, используемый для преобразования значения, прочитанного из CSS, в объект Java.

Подробное описание методов

set

@Deprecated(since="8") public void set(S styleable, V value, StyleOrigin origin)
Устарело.
Этот метод больше не вызывается из кода CSS. Используйте StyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)
Устанавливает значение соответствующего свойства в указанном узле.
Параметры:
styleable - Styleable, в котором устанавливается значение свойства
value - значение, которое устанавливается в свойство
origin - источник

isSettable

public abstract boolean isSettable(S styleable)
Проверяет, можно ли установить соответствующее свойство в указанном узле. Этот метод вызывается перед поиском стилей для данного свойства. Он является абстрактным, чтобы код мог проверить, можно ли установить свойство, не расширяя его. Как правило, свойство устанавливается, если оно не равно null или не привязано.
Параметры:
styleable - Styleable, в котором устанавливается значение свойства
Возвращает:
true, если свойство можно установить.

getStyleableProperty

public abstract StyleableProperty<V> getStyleableProperty(S styleable)
Возвращает соответствующее StyleableProperty для данного узла. Обратите внимание, что вызов этого метода приведёт к расширению свойства.
Параметры:
styleable - Styleable, для которого возвращается свойство
Возвращает:
StyleableProperty, соответствующее этому CssMetaData для данного Styleable

getProperty

public final String getProperty()
Возвращает имя свойства CSS.
Возвращает:
имя свойства CSS

getConverter

public final StyleConverter<?,V> getConverter()
Возвращает конвертер CSS, который обрабатывает преобразование значения CSS в объект Java.
Возвращает:
конвертер CSS

getInitialValue

public V getInitialValue(S styleable)
Начальное значение CssMetaData соответствует значению по умолчанию StyleableProperty в коде. Например, значение по умолчанию для Shape.fill — Color.BLACK, а initialValue для Shape.StyleableProperties.FILL также Color.BLACK.

Однако могут быть исключения. InitialValue может зависеть от состояния узла. У ScrollBar ориентация по умолчанию — горизонтальная. Если ScrollBar вертикальный, этот метод должен возвращать Orientation.VERTICAL. В противном случае вертикальный ScrollBar будет неправильно установлен на горизонтальный ScrollBar при применении начального значения.

Параметры:
styleable - styleable
Возвращает:
Начальное значение свойства, возможно null

getSubProperties

public final List<CssMetaData<? extends Styleable,?>> getSubProperties()
Дочерние свойства — это составляющие свойства этого свойства, если таковые имеются. Например, "-fx-font-weight" — это дочернее свойство "-fx-font".
Возвращает:
список дочерних свойств

isInherits

public final boolean isInherits()
Если true, значение этого свойства такое же, как вычисленное значение родительского свойства.
Возвращает:
false по умолчанию, если inherits не true
См. также:
  • Наследование CSS

equals

public boolean equals(Object obj)
Два объекта CssMetaData считаются равными, если их значения property равны.
Overrides:
equals в классе Object
Возвращает:
true, если obj равен, иначе false

Сообщить об ошибке или предложить улучшение
Авторские права © 2008, 2025, Oracle и/или его аффилированные лица. Все права защищены.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API