S
- Styleableの型V
- 解析済値の変換先の型public abstract class CssMetaData<S extends Styleable,V> extends Object
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();
}
StyleablePropertyFactory
修飾子 | コンストラクタと説明 |
---|---|
protected |
CssMetaData(String property, StyleConverter<?,V> converter)
指定したパラメータとnullのinitialValueを使用し、継承はfalseに設定し、サブプロパティは指定しないでCssMetaDataを構築します。
|
protected |
CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
指定したパラメータを使用し、継承はfalseに設定し、サブプロパティは指定しないでCssMetaDataを構築します。
|
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)
2つのCssMetaDataオブジェクトは、その
property 値が等しい場合は等しいとみなされます。 |
StyleConverter<?,V> |
getConverter() |
V |
getInitialValue(S styleable)
CssMetaDataの初期値はコード内のStyleablePropertyのデフォルト値に対応します。
|
String |
getProperty() |
abstract StyleableProperty<V> |
getStyleableProperty(S styleable)
特定のNodeの対応する
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() |
protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits, List<CssMetaData<? extends Styleable,?>> subProperties)
property
- CSSプロパティconverter
- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverterinitialValue
- 対応するStyleablePropertyの初期値またはデフォルト値inherits
- このプロパティがCSS継承を使用する場合はtruesubProperties
- このプロパティのサブプロパティ。たとえば、-fx-fontプロパティには、-fx-font-family、-fx-font-size、-fx-font-weightおよび-fx-font-styleのサブプロパティがあります。protected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue, boolean inherits)
property
- CSSプロパティconverter
- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverterinitialValue
- 対応するStyleablePropertyの初期値またはデフォルト値inherits
- このプロパティがCSS継承を使用する場合はtrueprotected CssMetaData(String property, StyleConverter<?,V> converter, V initialValue)
property
- CSSプロパティconverter
- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverterinitialValue
- 対応するStyleablePropertyの初期値またはデフォルト値protected CssMetaData(String property, StyleConverter<?,V> converter)
property
- CSSプロパティconverter
- CSSの解析済値をJavaオブジェクトに変換するために使用されるStyleConverter@Deprecated public void set(S styleable, V value, StyleOrigin origin)
StyleableProperty.applyStyle(javafx.css.StyleOrigin, java.lang.Object)
を使用してください。styleable
- プロパティ値が設定されるStyleablevalue
- プロパティに設定される値public abstract boolean isSettable(S styleable)
styleable
- プロパティ値が設定されるStyleablepublic abstract StyleableProperty<V> getStyleableProperty(S styleable)
StyleableProperty
を返します。このメソッドを呼び出すとプロパティが拡張されることに注意してください。styleable
- プロパティが返されるStyleablepublic final String getProperty()
public final StyleConverter<?,V> getConverter()
public V getInitialValue(S styleable)
ただし、例外もあります。initialValueは、Nodeの状態によって異なる場合があります。ScrollBarのデフォルトの向きは水平です。ただし、ScrollBarが垂直の場合は、このメソッドはOrientation.VERTICALを返す必要があります。そうでない場合、初期値が適用されるときに、垂直のScrollBarが誤って水平のScrollBarに設定されます。
public final List<CssMetaData<? extends Styleable,?>> getSubProperties()
public final boolean isInherits()
Copyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.