Module javafx.graphics
Package javafx.css

## Class StyleableObjectProperty<T>

- java.lang.Object
- - javafx.beans.binding.ObjectExpression<T>
  - - javafx.beans.property.ReadOnlyObjectProperty<T>
    - - javafx.beans.property.ObjectProperty<T>
      - - javafx.beans.property.ObjectPropertyBase<T>
        - - javafx.css.StyleableObjectProperty<T>

- All Implemented Interfaces:
    `Observable`, `Property<T>`, `ReadOnlyProperty<T>`, `ObservableObjectValue<T>`, `ObservableValue<T>`, `WritableObjectValue<T>`, `WritableValue<T>`, `StyleableProperty<T>`
  Direct Known Subclasses:
    `SimpleStyleableObjectProperty`

      public abstract class StyleableObjectProperty<T>
      extends ObjectPropertyBase<T>
      implements StyleableProperty<T>

  This class extends `ObjectPropertyBase` and provides a partial implementation of a `StyleableProperty`. The method `StyleableProperty.getCssMetaData()` is not implemented. This class is used to make a `ObjectProperty`, that would otherwise be implemented as a `ObjectPropertyBase`, styleable by CSS.
  Since:
    JavaFX 8.0
  See Also:
    `ObjectPropertyBase`, `CssMetaData`, `StyleableProperty`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StyleableObjectProperty()` | The constructor of the `StyleableObjectProperty`.
    `StyleableObjectProperty​(T initialValue)` | The constructor of the `StyleableObjectProperty`.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `applyStyle​(StyleOrigin origin, T v)` | This method is called from CSS code to set the value of the property.
    `void` | `bind​(ObservableValue<? extends T> observable)` | Create a unidirection binding for this `Property`.
    `StyleOrigin` | `getStyleOrigin()` | Tells the origin of the value of the property.
    `void` | `set​(T v)` | Set the wrapped value.

    - ### Methods inherited from class javafx.beans.property.ObjectPropertyBase

      `addListener, addListener, fireValueChangedEvent, get, invalidated, isBound, removeListener, removeListener, toString, unbind`

    - ### Methods inherited from class javafx.beans.property.ObjectProperty

      `bindBidirectional, setValue, unbindBidirectional`

    - ### Methods inherited from class javafx.beans.binding.ObjectExpression

      `asString, asString, asString, getValue, isEqualTo, isEqualTo, isNotEqualTo, isNotEqualTo, isNotNull, isNull, objectExpression`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface javafx.beans.value.ObservableValue

      `getValue`

    - ### Methods inherited from interface javafx.beans.property.ReadOnlyProperty

      `getBean, getName`

    - ### Methods inherited from interface javafx.css.StyleableProperty

      `getCssMetaData`

    - ### Methods inherited from interface javafx.beans.value.WritableValue

      `getValue, setValue`

- - ### Constructor Detail

    - #### StyleableObjectProperty

          public StyleableObjectProperty()

      The constructor of the `StyleableObjectProperty`.

    - #### StyleableObjectProperty

          public StyleableObjectProperty​(T initialValue)

      The constructor of the `StyleableObjectProperty`.
      Parameters:
        `initialValue` - the initial value of the wrapped `Object`

  - ### Method Detail

    - #### applyStyle

          public void applyStyle​(StyleOrigin origin,
                                 T v)

      This method is called from CSS code to set the value of the property.
      Specified by:
        `applyStyle` in interface `StyleableProperty<T>`
      Parameters:
        `origin` - the origin
        `v` - the value

    - #### bind

          public void bind​(ObservableValue<? extends T> observable)

      Create a unidirection binding for this `Property`.

      Note that JavaFX has all the bind calls implemented through weak listeners. This means the bound property can be garbage collected and stopped from being updated.

      Specified by:
        `bind` in interface `Property<T>`
      Overrides:
        `bind` in class `ObjectPropertyBase<T>`
      Parameters:
        `observable` - The observable this `Property` should be bound to.

    - #### set

          public void set​(T v)

      Set the wrapped value. Should be equivalent to `WritableValue.setValue(java.lang.Object)`
      Specified by:
        `set` in interface `WritableObjectValue<T>`
      Overrides:
        `set` in class `ObjectPropertyBase<T>`
      Parameters:
        `v` - The new value
      See Also:
        `WritableObjectValue.get()`

    - #### getStyleOrigin

          public StyleOrigin getStyleOrigin()

      Tells the origin of the value of the property. This is needed to determine whether or not CSS can override the value.
      Specified by:
        `getStyleOrigin` in interface `StyleableProperty<T>`
      Returns:
        the style origin