- 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
-
-
コンストラクタのサマリー
コンストラクタ 修飾子 コンストラクタ 説明 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()
オブジェクトの文字列表現を返します。
-
-
-
コンストラクタの詳細
-
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継承
-
equals
public boolean equals(Object obj)
2つのCssMetaDataオブジェクトは、そのproperty
値が等しい場合は等しいとみなされます。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- 比較対象の参照オブジェクト。- 戻り値:
- objが等しい場合はtrue、そうでない場合はfalse
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()
次のクラスからコピーされた説明:Object
オブジェクトのハッシュ・コード値を返します。 このメソッドは、HashMap
によって提供されるハッシュ表などの、ハッシュ表の利点のためにサポートされています。hashCode
の一般的な規則は次のとおりです。- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
equals
の比較で使用される情報が変更されていなければ、hashCode
メソッドは常に同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。 equals(Object)
メソッドに従って2つのオブジェクトが等しい場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって同じ整数の結果が生成される必要があります。Object.equals(java.lang.Object)
メソッドに従って2つのオブジェクトが等しくない場合は、2つの各オブジェクトに対するhashCode
メソッドの呼出しによって異なる整数の結果が生成される必要はありません。 ただし、プログラマは、等しくないオブジェクトに対して異なる整数の結果を生成すると、ハッシュ表のパフォーマンスが向上する可能性があることに注意するようにしてください。
クラス
Object
によって定義されたhashCodeメソッドは、可能なかぎり、異なるオブジェクトに対して異なる整数を返します。 (hashCodeは、ある時点におけるオブジェクト・メモリー・アドレスの関数として実装されても実装されなくてもよい。)- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- Javaアプリケーションの実行中に同じオブジェクトに対して複数回呼び出された場合は常に、このオブジェクトに対する
-
toString
public String toString()
次のクラスからコピーされた説明:Object
オブジェクトの文字列表現を返します。 一般に、toString
メソッドは、このオブジェクトをテキストで表す文字列を返します。 この結果は、人間が読める簡潔で有益な情報であるべきです。 すべてのサブクラスで、このメソッドをオーバーライドすることをお勧めします。クラス
Object
のtoString
メソッドは、オブジェクトがインスタンスになっている元のクラスの名前、アットマーク文字@
、およびオブジェクトのハッシュ・コードの符号なし16進数表現から構成される文字列を返します。 つまり、このメソッドは次の値と等しい文字列を返します。getClass().getName() + '@' + Integer.toHexString(hashCode())
-
-