/*
* Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package javafx.css;
import javafx.beans.
NamedArg;
import javafx.beans.property.
SimpleLongProperty;
/**
* This class extends {@code SimpleLongProperty} and provides a full
* implementation of a {@code StyleableProperty}.
*
* This class is used to make a {@link javafx.beans.property.LongProperty},
* that would otherwise be implemented as a {@link SimpleLongProperty},
* style‑able by CSS.
*
* @see javafx.beans.property.SimpleLongProperty
* @see CssMetaData
* @see StyleableProperty
* @see StyleableLongProperty
* @since JavaFX 8.0
*/
public class
SimpleStyleableLongProperty extends
StyleableLongProperty {
private static final
Object DEFAULT_BEAN = null;
private static final
String DEFAULT_NAME = "";
private final
Object bean;
private final
String name;
private final
CssMetaData<? extends
Styleable,
Number>
cssMetaData;
/**
* The constructor of the {@code SimpleStyleableLongProperty}.
* @param cssMetaData
* the CssMetaData associated with this {@code StyleableProperty}
*/
public
SimpleStyleableLongProperty(@
NamedArg("cssMetaData")
CssMetaData<? extends
Styleable,
Number>
cssMetaData) {
this(
cssMetaData,
DEFAULT_BEAN,
DEFAULT_NAME);
}
/**
* The constructor of the {@code SimpleStyleableLongProperty}.
*
* @param cssMetaData
* the CssMetaData associated with this {@code StyleableProperty}
* @param initialValue
* the initial value of the wrapped {@code Object}
*/
public
SimpleStyleableLongProperty(@
NamedArg("cssMetaData")
CssMetaData<? extends
Styleable,
Number>
cssMetaData, @
NamedArg("initialValue")
Long initialValue) {
this(
cssMetaData,
DEFAULT_BEAN,
DEFAULT_NAME,
initialValue);
}
/**
* The constructor of the {@code SimpleStyleableLongProperty}.
*
* @param cssMetaData
* the CssMetaData associated with this {@code StyleableProperty}
* @param bean
* the bean of this {@code LongProperty}
* @param name
* the name of this {@code LongProperty}
*/
public
SimpleStyleableLongProperty(@
NamedArg("cssMetaData")
CssMetaData<? extends
Styleable,
Number>
cssMetaData, @
NamedArg("bean")
Object bean, @
NamedArg("name")
String name) {
this.
bean =
bean;
this.
name = (
name == null) ?
DEFAULT_NAME :
name;
this.
cssMetaData =
cssMetaData;
}
/**
* The constructor of the {@code SimpleStyleableLongProperty}.
*
* @param cssMetaData
* the CssMetaData associated with this {@code StyleableProperty}
* @param bean
* the bean of this {@code LongProperty}
* @param name
* the name of this {@code LongProperty}
* @param initialValue
* the initial value of the wrapped {@code Object}
*/
public
SimpleStyleableLongProperty(@
NamedArg("cssMetaData")
CssMetaData<? extends
Styleable,
Number>
cssMetaData, @
NamedArg("bean")
Object bean, @
NamedArg("name")
String name, @
NamedArg("initialValue")
Long initialValue) {
super(
initialValue);
this.
bean =
bean;
this.
name = (
name == null) ?
DEFAULT_NAME :
name;
this.
cssMetaData =
cssMetaData;
}
/**
* {@inheritDoc}
*/
@
Override
public
Object getBean() {
return
bean;
}
/**
* {@inheritDoc}
*/
@
Override
public
String getName() {
return
name;
}
/** {@inheritDoc} */
@
Override
public final
CssMetaData<? extends
Styleable,
Number>
getCssMetaData() {
return
cssMetaData;
}
}