org.flexdock.docking.state

## Interface FloatManager

- All Known Implementing Classes:
    FloatManager.Stub, Layout

      public interface FloatManager

  This interface defines the API used for floating and grouping `Dockables`. Classes implementing this interface will be responsible for sending `Dockables` into `DockingFrames` and managing the grouping of floating `Dockables`.
  Sending a `Dockable` into a floating `DockingFrame` is relatively straightforward when supplied the `Dockable` and a dialog owner. However, state must be maintained for each `FloatingGroup` to allow the system to track which `Dockables` share the same floating dialog. If a floating `Dockable` is closed and subsequently restored to its previous floating state, the `FloatManager` must be able to determine whether an existing dialog is already present or a new dialog must be created into which the `Dockable` may be restored. `FloatingGroups` are used to track which dialogs contain which `Dockables`. `FloatManager` implementations must manage the addition to and removal of `Dockables` from appropriate `FloatingGroups` and, in turn, use these `FloatingGroups` to resolve or create the necessary `DockingFrames` during float-operations.
  Author:
    Christopher Butler

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `FloatManager.Stub`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static FloatManager` | `DEFAULT_STUB`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addToGroup(Dockable dockable, java.lang.String groupId)`
    `DockingFrame` | `floatDockable(Dockable dockable, java.awt.Component frameOwner)`
    `DockingFrame` | `floatDockable(Dockable dockable, java.awt.Component frameOwner, java.awt.Rectangle screenBounds)`
    `FloatingGroup` | `getGroup(Dockable dockable)`
    `FloatingGroup` | `getGroup(java.lang.String groupName)`
    `void` | `removeFromGroup(Dockable dockable)`

- - ### Field Detail

    - #### DEFAULT_STUB

          static final FloatManager DEFAULT_STUB

  - ### Method Detail

    - #### getGroup

          FloatingGroup getGroup(java.lang.String groupName)

    - #### getGroup

          FloatingGroup getGroup(Dockable dockable)

    - #### addToGroup

          void addToGroup(Dockable dockable,
                        java.lang.String groupId)

    - #### removeFromGroup

          void removeFromGroup(Dockable dockable)

    - #### floatDockable

          DockingFrame floatDockable(Dockable dockable,
                                   java.awt.Component frameOwner)

    - #### floatDockable

          DockingFrame floatDockable(Dockable dockable,
                                   java.awt.Component frameOwner,
                                   java.awt.Rectangle screenBounds)