org.flexdock.docking

## Interface DockableFactory

- All Known Implementing Classes:
    DockableFactory.Stub

      public interface DockableFactory

  This interface is designed to provide an API for allowing the `DockingManager` to obtain `Dockable` instances on the fly. It has a single method, `getDockableComponent(String dockableId)`, responsible for returning `Component` instances, possibly creating and registering `Dockables` in the process. Implementations of this interface will be application-specific and may be plugged into the `DockingManager` via the call `DockingManager.setDockableFactory(myFactory)`. Throughout the framework, FlexDock makes many calls to `DockingManager.getDockable(String id)` under the assumption that at some point, the requested `Dockable` instance has been registered via `DockingManager.registerDockable(Dockable dockable)`. In the event that a `Dockable` with the specified ID has never been formally registered, the `DockingManager` will check for a factory via `DockingManager.getDockableFactory()`. If a factory is present, its `getDockableComponent()` method is invoked. If a valid `Component` is returned from `getDockableComponent()`, the DockingManager will attempt to register it as a `Dockable` and return the `Dockable`. `DockableFactory` implementations are especially useful for applications with persisted layouts where the `Dockables` required during a layout restoration may be constructed automatically on demand by the framework.
  Author:
    Christopher Butler

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface and Description
    --- | ---
    `static class` | `DockableFactory.Stub` An empty implementation of `DockableFactory`.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Dockable` | `getDockable(java.lang.String dockableId)` Returns a `Dockable` for the specified Dockable ID, possibly creating and registering it in the process.
    `java.awt.Component` | `getDockableComponent(java.lang.String dockableId)` Returns a `Component` for the specified Dockable ID, possibly creating and registering a `Dockable` in the process.

- - ### Method Detail

    - #### getDockableComponent

          java.awt.Component getDockableComponent(java.lang.String dockableId)

      Returns a `Component` for the specified Dockable ID, possibly creating and registering a `Dockable` in the process.
      Parameters:
        `dockableId` - the ID for the requested dockable `Component`
      Returns:
        the `Component` for the specified ID

    - #### getDockable

          Dockable getDockable(java.lang.String dockableId)

      Returns a `Dockable` for the specified Dockable ID, possibly creating and registering it in the process.
      Parameters:
        `dockableId` - the ID for the requested `Dockable`
      Returns:
        the `Dockable` for the specified ID