org.flexdock.docking.floating.policy

## Interface FloatPolicy

- All Known Implementing Classes:
    DefaultFloatPolicy, FloatPolicy.NullFloatPolicy

      public interface FloatPolicy

  This interface describes a set of method used to determine how floating events should be handled. Classes implementing this interface should be plugged into to the `FloatPolicyManager` to affect floating behavior of the framework at runtime.
  Author:
    Christopher Butler

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `FloatPolicy.NullFloatPolicy` Provides a default implementation of the FloatPolicy interface.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isFloatDropAllowed(DockingEvent evt)` Indicates whether floating should be allowed for the specified `DockingEvent` at the end of a drag operation.
    `boolean` | `isFloatingAllowed(Dockable dockable)` Returns `true` if floating should be allowed for the specified `Dockable`.

- - ### Method Detail

    - #### isFloatingAllowed

          boolean isFloatingAllowed(Dockable dockable)

      Returns `true` if floating should be allowed for the specified `Dockable`. This method will be invoked by the `FloatPolicyManager` at the beginning of a drag operation to determine whether or not floating support will be enabled for the `Dockable` as a result of the drag. If this method returns `false`, floating will not be allowed for the drag operation against the specified `Dockable`.
      Parameters:
        `dockable` - the `Dockable` to be checked for floating support
      Returns:
        `true` if floating should be allowed for the specified `Dockable`; `false` otherwise.

    - #### isFloatDropAllowed

          boolean isFloatDropAllowed(DockingEvent evt)

      Indicates whether floating should be allowed for the specified `DockingEvent` at the end of a drag operation. The `FloatPolicyManager` will catch all attempts to float a `Dockable` at the end of a drag operation and invoke this method on all installed `FloatPolicies`. If any of them returns `false`, the docking operation will be canceled.
      Parameters:
        `evt` - the `DockingEvent` to be checked for drop-to-float support
      Returns:
        `true` if floating should be allowed for the specified `DockingEvent`; `false` otherwise.