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
`static class` `FloatManager.Stub`

### Field Summary

Fields
`static FloatManager` `DEFAULT_STUB`

### Method Summary

Methods
`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)