- 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の間には1対1の関係があります。 通常、NodeのCssMetaDataにはその祖先のCssMetaDataが含まれます。 たとえば、RectangleのCssMetaDataには、ShapeのCssMetaDataの他にNodeのCssMetaDataも含まれます。 CSSの処理中、CSSエンジンはNodeのCssMetaDataに対して繰り返され、各propertyの解析済値を検索し、解析済値を変換し、StyleablePropertyの値を設定します。Node.getCssMetaData()メソッドは、List<CssMetaData>を取得するために呼び出されます。 このメソッドは頻繁に呼び出され、呼出しごとにリストを作成するのではなく、より効率的に静的リストを返します。 一般に、CssMetaDataを持つNodeクラスは静的メソッド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
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 protectedCssMetaData(String property, StyleConverter<?,V> converter)指定したパラメータとnullのinitialValueを使用し、継承はfalseに設定し、サブプロパティは指定しないでCssMetaDataを構築します。protectedCssMetaData(String property, StyleConverter<?,V> converter, V initialValue)指定したパラメータを使用し、継承はfalseに設定し、サブプロパティは指定しないでCssMetaDataを構築します。protectedCssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)指定したパラメータを使用し、サブプロパティは指定しないでCssMetaDataを構築します。protectedCssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)指定したパラメータを使用し、サブプロパティは指定しないでCssMetaDataを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 booleanequals(Object obj)2つのCssMetaDataオブジェクトは、そのproperty値が等しい場合は等しいとみなされます。StyleConverter<?,V>getConverter()VgetInitialValue(S styleable)CssMetaDataの初期値はコード内のStyleablePropertyのデフォルト値に対応します。StringgetProperty()abstract StyleableProperty<V>getStyleableProperty(S styleable)特定のNodeの対応するStyleablePropertyを返します。List<CssMetaData<? extends Styleable,?>>getSubProperties()サブプロパティは、このプロパティの構成プロパティを参照します(ある場合)。booleanisInherits()trueの場合、このプロパティの値は、このプロパティの親の計算済の値と同じです。abstract booleanisSettable(S styleable)特定のノードの対応するプロパティが設定可能かどうかをチェックします。voidset(S styleable, V value, StyleOrigin origin)非推奨。このメソッドはCSSコードから呼び出されなくなりました。
-
-
-
コンストラクタの詳細
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)
指定したパラメータを使用し、サブプロパティは指定しないでCssMetaDataを構築します。- パラメータ:
property- CSSプロパティconverter- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverterinitialValue- 対応するStyleablePropertyの初期値またはデフォルト値inherits- このプロパティがCSS継承を使用する場合はtruesubProperties- このプロパティのサブプロパティ。 たとえば、-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- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverterinitialValue- 対応するStyleablePropertyの初期値またはデフォルト値inherits- このプロパティがCSS継承を使用する場合はtrue
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
指定したパラメータを使用し、継承はfalseに設定し、サブプロパティは指定しないでCssMetaDataを構築します。- パラメータ:
property- CSSプロパティconverter- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverterinitialValue- 対応するStyleablePropertyの初期値またはデフォルト値
-
CssMetaData
protected CssMetaData(String property, StyleConverter<?,V> converter)
指定したパラメータとnullのinitialValueを使用し、継承はfalseに設定し、サブプロパティは指定しないでCssMetaDataを構築します。- パラメータ:
property- CSSプロパティconverter- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverter
-
-
メソッドの詳細
-
set
@Deprecated(since="8") public void set(S styleable, V value, StyleOrigin origin)
非推奨。このメソッドはCSSコードから呼び出されなくなりました。StyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)を使用特定のノードの対応するプロパティの値を設定します。- パラメータ:
styleable- プロパティ値が設定されるStyleablevalue- プロパティに設定される値origin- 起源
-
isSettable
public abstract boolean isSettable(S styleable)
特定のノードの対応するプロパティが設定可能かどうかをチェックします。 このメソッドは、特定のプロパティに対してスタイルが検索される前に呼び出されます。 これは抽象メソッドであるため、コードではプロパティを拡張せずにプロパティが設定可能かどうかをチェックできます。 一般に、プロパティがnullでなく、バインドされてもいなければ、そのプロパティは設定可能です。- パラメータ:
styleable- プロパティ値が設定されるStyleable- 戻り値:
- プロパティが設定可能な場合はtrue。
-
getStyleableProperty
public abstract StyleableProperty<V> getStyleableProperty(S styleable)
特定のNodeの対応するStyleablePropertyを返します。 このメソッドを呼び出すとプロパティが拡張されることに注意してください。- パラメータ:
styleable- プロパティが返されるStyleable- 戻り値:
- 特定のStyleableについて、このCssMetaDataに対応するStyleableProperty
-
getProperty
public final String getProperty()
- 戻り値:
- CSSプロパティ名
-
getConverter
public final StyleConverter<?,V> getConverter()
- 戻り値:
- CSS値からJavaオブジェクトへの変換を処理するCSSコンバータ
-
getInitialValue
public V getInitialValue(S styleable)
CssMetaDataの初期値はコード内のStyleablePropertyのデフォルト値に対応します。 たとえば、Shape.fillのデフォルト値はColor.BLACKで、Shape.StyleableProperties.FILLのinitialValueもColor.BLACKです。ただし、例外もあります。 initialValueは、Nodeの状態によって異なる場合があります。 ScrollBarのデフォルトの向きは水平です。 ただし、ScrollBarが垂直の場合は、このメソッドはOrientation.VERTICALを返す必要があります。 そうでない場合、初期値が適用されるときに、垂直のScrollBarが誤って水平のScrollBarに設定されます。
- パラメータ:
styleable- スタイル可能な- 戻り値:
- プロパティの初期値。nullの場合があります。
-
getSubProperties
public final List<CssMetaData<? extends Styleable,?>> getSubProperties()
サブプロパティは、このプロパティの構成プロパティを参照します(ある場合)。 たとえば、-fx-font-weightは-fx-fontのサブプロパティです。- 戻り値:
- サブ・プロパティのリスト
-
isInherits
public final boolean isInherits()
trueの場合、このプロパティの値は、このプロパティの親の計算済の値と同じです。- 戻り値:
- 継承がtrueでない限り、デフォルトではfalse
- 関連項目:
- CSS継承
-
-