Module javafx.base
Package javafx.beans.binding

## Class When

- java.lang.Object
- - javafx.beans.binding.When

-     public class When
      extends Object

  Starting point for a binding that calculates a ternary expression.

  A ternary expression has the basic form `new When(cond).then(value1).otherwise(value2);`. The expression `cond` needs to be a `ObservableBooleanValue`. Based on the value of `cond`, the binding contains the value of `value1` (if `cond.getValue() == true`) or `value2` (if `cond.getValue() == false`). The values `value1` and `value2` have to be of the same type. They can be constant values or implementations of `ObservableValue`.

  Since:
    JavaFX 2.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `When.BooleanConditionBuilder` | An intermediate class needed while assembling the ternary expression.
    `class` | `When.NumberConditionBuilder` | If-then-else expression returning a number.
    `class` | `When.ObjectConditionBuilder<T>` | An intermediate class needed while assembling the ternary expression.
    `class` | `When.StringConditionBuilder` | An intermediate class needed while assembling the ternary expression.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `When​(ObservableBooleanValue condition)` | The constructor of `When`.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `When.BooleanConditionBuilder` | `then​(boolean thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    `When.NumberConditionBuilder` | `then​(double thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    `When.NumberConditionBuilder` | `then​(float thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    `When.NumberConditionBuilder` | `then​(int thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    `When.NumberConditionBuilder` | `then​(long thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    `When.StringConditionBuilder` | `then​(String thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    `When.BooleanConditionBuilder` | `then​(ObservableBooleanValue thenValue)` | Defines the `ObservableBooleanValue` which value is returned by the ternary expression if the condition is `true`.
    `When.NumberConditionBuilder` | `then​(ObservableNumberValue thenValue)` | Defines the `ObservableNumberValue` which value is returned by the ternary expression if the condition is `true`.
    `<T> When.ObjectConditionBuilder<T>` | `then​(ObservableObjectValue<T> thenValue)` | Defines the `ObservableObjectValue` which value is returned by the ternary expression if the condition is `true`.
    `When.StringConditionBuilder` | `then​(ObservableStringValue thenValue)` | Defines the `ObservableStringValue` which value is returned by the ternary expression if the condition is `true`.
    `<T> When.ObjectConditionBuilder<T>` | `then​(T thenValue)` | Defines a constant value of the ternary expression, that is returned if the condition is `true`.

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

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

- - ### Constructor Detail

    - #### When

          public When​(ObservableBooleanValue condition)

      The constructor of `When`.
      Parameters:
        `condition` - the condition of the ternary expression

  - ### Method Detail

    - #### then

          public When.NumberConditionBuilder then​(ObservableNumberValue thenValue)

      Defines the `ObservableNumberValue` which value is returned by the ternary expression if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.NumberConditionBuilder then​(double thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.NumberConditionBuilder then​(float thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.NumberConditionBuilder then​(long thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.NumberConditionBuilder then​(int thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.BooleanConditionBuilder then​(ObservableBooleanValue thenValue)

      Defines the `ObservableBooleanValue` which value is returned by the ternary expression if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.BooleanConditionBuilder then​(boolean thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.StringConditionBuilder then​(ObservableStringValue thenValue)

      Defines the `ObservableStringValue` which value is returned by the ternary expression if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public When.StringConditionBuilder then​(String thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public <T> When.ObjectConditionBuilder<T> then​(ObservableObjectValue<T> thenValue)

      Defines the `ObservableObjectValue` which value is returned by the ternary expression if the condition is `true`.
      Type Parameters:
        `T` - the type of the intermediate result
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch

    - #### then

          public <T> When.ObjectConditionBuilder<T> then​(T thenValue)

      Defines a constant value of the ternary expression, that is returned if the condition is `true`.
      Type Parameters:
        `T` - the type of the intermediate result
      Parameters:
        `thenValue` - the value
      Returns:
        the intermediate result which still requires the otherwise-branch