Spec-Zone.ru › OpenJavaFX 8
javafx.css

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

java.lang.Object
  • javafx.css.CssMetaData<S,V>

Параметры типа:

S — тип Styleable

Прямые известные подклассы:

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

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

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

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

      clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Подробное описание конструкторов

    • CssMetaData

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

      Параметры:

      property — свойство CSS

    • CssMetaData

      protected CssMetaData(String property,
                            StyleConverter<?,V> converter,
                            V initialValue,
                            boolean inherits)
      Создаёт CssMetaData с заданными параметрами и без дочерних свойств.

      Параметры:

      property — свойство CSS

    • CssMetaData

      protected CssMetaData(String property,
                            StyleConverter<?,V> converter,
                            V initialValue)
      Создаёт CssMetaData с заданными параметрами, inherit — false и без дочерних свойств.

      Параметры:

      property — свойство CSS

    • CssMetaData

      protected CssMetaData(String property,
                            StyleConverter<?,V> converter)
      Создаёт CssMetaData с заданными параметрами, initialValue — null, inherit — false и без дочерних свойств.

      Параметры:

      property — свойство CSS

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

    • set

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

      Параметры:

      styleable — Styleable, на котором устанавливается значение свойства

    • 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

    • getConverter

      public final StyleConverter<?,V> getConverter()

      Возвращает:

      Преобразователь CSS, обрабатывающий преобразование значения CSS в Java-объект

    • getInitialValue

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

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

      Возвращает:

      Начальное значение свойства, возможно null

    • getSubProperties

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

      public final boolean isInherits()
      Если true, значение этого свойства совпадает с вычисленным значением этого свойства у родителя.

      См. также:

      Наследование CSS

    • equals

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

      Переопределяет:

      equals в классе Object

    • hashCode

      public int hashCode()

      Переопределяет:

      hashCode в классе Object

    • toString

      public String toString()

      Переопределяет:

      toString в классе Object

© 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