org.flexdock.view

## Class View

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - org.flexdock.view.View

- All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, Dockable, DockingConstants, DockingListener, DockingMonitor

      public class View
      extends javax.swing.JComponent
      implements Dockable, DockingConstants

  The `View` class is slightly incompatible with `JComponent`. Similar to JFC/Swing top-level containers, a `View` contains only a content pane `Container` and a `Titlebar`. The content pane should contain all the components displayed by the `View`. As a convenience `add` and its variants, `remove(Component)` and `setLayout` have been overridden to forward to the `contentPane` as necessary. This means you can write:

       view.add(child);

  And the child will be added to the contentPane. The content pane will always be non-null. Attempting to set it to null will cause the View to throw an exception. The default content pane will not have a layout manager set.
  Author:
    Christopher Butler, Karl Schaefer
  See Also:
    `JFrame`, `JRootPane`, Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `View.ViewLayout`

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

    - ### Nested classes/interfaces inherited from interface org.flexdock.docking.event.DockingListener

      `DockingListener.Stub`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.awt.Container` | `contentPane`
    `protected boolean` | `contentPaneCheckingEnabled`
    `protected java.util.ArrayList` | `dockingListeners`
    `protected java.util.ArrayList` | `dragSources`
    `protected java.util.HashSet` | `frameDragSources`
    `protected Titlebar` | `titlepane`
    `static java.lang.String` | `uiClassID`

    - ### Fields inherited from class javax.swing.JComponent

      `accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface org.flexdock.docking.Dockable

      `DOCKABLE_INDICATOR`

    - ### Fields inherited from interface org.flexdock.docking.DockingConstants

      `ACTIVE_WINDOW, BOTTOM, CENTER, CENTER_REGION, CLOSE_ACTION, DEFAULT_PERSISTENCE_KEY, DOCKING_ID, EAST_REGION, HEAVYWEIGHT_DOCKABLES, HORIZONTAL, LEFT, MOUSE_PRESSED, NORTH_REGION, PERMANENT_FOCUS_OWNER, PIN_ACTION, REGION, RIGHT, SOUTH_REGION, TOP, UNINITIALIZED, UNINITIALIZED_RATIO, UNKNOWN_REGION, UNSPECIFIED_SIBLING_PREF, VERTICAL, WEST_REGION`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `View(java.lang.String persistentId)`
    `View(java.lang.String persistentId, java.lang.String title)`
    `View(java.lang.String persistentId, java.lang.String title, java.lang.String tabText)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAction(javax.swing.Action action)`
    `void` | `addAction(java.lang.String action)`
    `void` | `addDockingListener(DockingListener listener)`
    `protected void` | `addImpl(java.awt.Component comp, java.lang.Object constraints, int index)`
    `protected java.awt.Container` | `createContentPane()`
    `protected java.awt.LayoutManager` | `createLayout()`
    `protected Titlebar` | `createTitlebar()`
    `boolean` | `dock(Dockable dockable)` Implements the semantics for docking an external `Dockable` to this `Dockable` and returns a `boolean` indicating whether or not the docking operation was successful.
    `boolean` | `dock(Dockable dockable, java.lang.String relativeRegion)` Implements the semantics for docking an external `Dockable` to the specified region of this `Dockable` and returns a `boolean` indicating whether or not the docking operation was successful.
    `boolean` | `dock(Dockable dockable, java.lang.String relativeRegion, float ratio)` Implements the semantics for docking an external `Dockable` to the specified region of this `Dockable` with the specified layout ratio, returning a `boolean` indicating whether or not the docking operation was successful.
    `void` | `dockingCanceled(DockingEvent evt)` Fired when docking of a `Dockable` is canceled during the operation.
    `void` | `dockingComplete(DockingEvent evt)` Fired when docking of a `Dockable` has completed.
    `void` | `dragStarted(DockingEvent evt)` Fired when the dragging of a `Dockable` has begun.
    `void` | `dropStarted(DockingEvent evt)` Fired when the dropping of a `Dockable` has begun at the release of a drag-operation.
    `javax.swing.AbstractButton` | `getActionButton(java.lang.String actionName)`
    `java.awt.Component` | `getComponent()` Returns the Component that is to be dragged and docked.
    `java.awt.Container` | `getContentPane()`
    `DockingListener[]` | `getDockingListeners()`
    `DockingPort` | `getDockingPort()` Returns the DockingPort within which this Dockable is currently docked.
    `DockablePropertySet` | `getDockingProperties()` Returns a `DockablePropertySet` instance associated with this `Dockable`.
    `java.util.List` | `getDragSources()` Returns a `List` of the `Components` that are event sources for drag operations.
    `java.util.Set` | `getFrameDragSources()` Returns a `Set` of the `Components` that are used as frame drag sources.
    `static View` | `getInstance(java.lang.String viewId)`
    `int` | `getMinimizedConstraint()`
    `java.lang.String` | `getPersistentId()` Returns a `String` identifier that is unique within a JVM instance, but persistent across JVM instances.
    `protected java.lang.String` | `getPreferredTitlebarUIName()`
    `Dockable` | `getSibling(java.lang.String region)`
    `javax.swing.Icon` | `getTabIcon()`
    `java.lang.String` | `getTabText()`
    `java.lang.String` | `getTitle()`
    `Titlebar` | `getTitlebar()`
    `protected java.awt.Component` | `getTitlePane()`
    `java.lang.String` | `getUIClassID()`
    `Viewport` | `getViewport()`
    `ViewProps` | `getViewProperties()`
    `boolean` | `isActionBlocked(java.lang.String actionName)`
    `boolean` | `isActive()`
    `boolean` | `isActiveStateLocked()`
    `protected boolean` | `isContentPaneCheckingEnabled()`
    `boolean` | `isFloating()`
    `boolean` | `isMinimized()`
    `boolean` | `isTerritoryBlocked(Dockable dockable, java.lang.String region)`
    `protected java.lang.String` | `paramString()`
    `void` | `remove(java.awt.Component comp)`
    `void` | `removeDockingListener(DockingListener listener)`
    `void` | `setActionBlocked(java.lang.String actionName, boolean blocked)`
    `void` | `setActive(boolean b)`
    `void` | `setActiveStateLocked(boolean b)`
    `void` | `setContentPane(java.awt.Container c)` Sets the content pane for this view.
    `protected void` | `setContentPaneCheckingEnabled(boolean contentPaneCheckingEnabled)`
    `void` | `setIcon(javax.swing.Icon icon)`
    `void` | `setIcon(java.lang.String imgUri)`
    `void` | `setLayout(java.awt.LayoutManager manager)` Sets the `LayoutManager`.
    `void` | `setTabIcon(javax.swing.Icon icon)`
    `void` | `setTabText(java.lang.String tabText)`
    `void` | `setTerritoryBlocked(java.lang.String region, boolean blocked)`
    `void` | `setTitle(java.lang.String title)`
    `void` | `setTitle(java.lang.String title, boolean alsoTabText)`
    `void` | `setTitlebar(Titlebar titlebar)`
    `void` | `undockingComplete(DockingEvent evt)`
    `void` | `undockingStarted(DockingEvent evt)`
    `void` | `updateUI()`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

    - ### Methods inherited from interface org.flexdock.docking.Dockable

      `addPropertyChangeListener, getClientProperty, putClientProperty, removePropertyChangeListener`

- - ### Field Detail

    - #### uiClassID

          public static final java.lang.String uiClassID

      See Also:
        Constant Field Values

    - #### titlepane

          protected Titlebar titlepane

    - #### contentPane

          protected java.awt.Container contentPane

    - #### contentPaneCheckingEnabled

          protected boolean contentPaneCheckingEnabled

    - #### dockingListeners

          protected java.util.ArrayList dockingListeners

    - #### dragSources

          protected java.util.ArrayList dragSources

    - #### frameDragSources

          protected java.util.HashSet frameDragSources

  - ### Constructor Detail

    - #### View

          public View(java.lang.String persistentId)

    - #### View

          public View(java.lang.String persistentId,
              java.lang.String title)

    - #### View

          public View(java.lang.String persistentId,
              java.lang.String title,
              java.lang.String tabText)

  - ### Method Detail

    - #### getInstance

          public static View getInstance(java.lang.String viewId)

    - #### createContentPane

          protected java.awt.Container createContentPane()

    - #### createLayout

          protected java.awt.LayoutManager createLayout()

    - #### createTitlebar

          protected Titlebar createTitlebar()

    - #### getContentPane

          public java.awt.Container getContentPane()

    - #### getTitlebar

          public Titlebar getTitlebar()

    - #### getDockingProperties

          public DockablePropertySet getDockingProperties()

      Description copied from interface: `Dockable`
      Returns a `DockablePropertySet` instance associated with this `Dockable`. Developers implementing the `Dockable` interface may or may not choose to provide their own `DockablePropertySet` implementation for use with this method. A default implementation is supplied by the framework and most `Dockable` implementations, including all implementations provided by the framework, will return the default `DockablePropertySet` via a call to `org.flexdock.docking.props.PropertyManager`. Developers are encouraged to take advantage of this by calling `PropertyManager.getDockablePropertySet(this)`.
      Specified by:
        `getDockingProperties` in interface `Dockable`
      Returns:
        the `DockablePropertySet` associated with this `Dockable` This method may not return a `null` reference.
      See Also:
        `DockablePropertySet`, `PropertyManager.getDockablePropertySet(Dockable)`

    - #### getViewProperties

          public ViewProps getViewProperties()

    - #### addAction

          public void addAction(javax.swing.Action action)

    - #### addAction

          public void addAction(java.lang.String action)

    - #### setIcon

          public void setIcon(javax.swing.Icon icon)

    - #### setIcon

          public void setIcon(java.lang.String imgUri)

    - #### setContentPane

          public void setContentPane(java.awt.Container c)
                              throws java.lang.IllegalArgumentException

      Sets the content pane for this view.
      Parameters:
        `c` - the container to use as the content pane.
      Throws:
        `java.lang.IllegalArgumentException` - if `c` is `null` or if `c` is the `titlepane`.
      See Also:
        `titlepane`, `getTitlePane()`

    - #### getPreferredTitlebarUIName

          protected java.lang.String getPreferredTitlebarUIName()

    - #### setTitlebar

          public void setTitlebar(Titlebar titlebar)

    - #### getTitlePane

          protected java.awt.Component getTitlePane()

    - #### setTitle

          public void setTitle(java.lang.String title)

    - #### setTitle

          public void setTitle(java.lang.String title,
                      boolean alsoTabText)

    - #### getTitle

          public java.lang.String getTitle()

    - #### updateUI

          public void updateUI()

      Overrides:
        `updateUI` in class `javax.swing.JComponent`

    - #### getUIClassID

          public java.lang.String getUIClassID()

      Overrides:
        `getUIClassID` in class `javax.swing.JComponent`

    - #### addImpl

          protected void addImpl(java.awt.Component comp,
                     java.lang.Object constraints,
                     int index)

      Overrides:
        `addImpl` in class `java.awt.Container`

    - #### remove

          public void remove(java.awt.Component comp)

      Overrides:
        `remove` in class `java.awt.Container`

    - #### getActionButton

          public javax.swing.AbstractButton getActionButton(java.lang.String actionName)

    - #### getComponent

          public java.awt.Component getComponent()

      Description copied from interface: `Dockable`
      Returns the Component that is to be dragged and docked. This may or may not be included in the list returned by `getDragSources()`.

      The framework performs indexing on the underlying `Component`. Consequently, this method may not return a `null` reference.

      Specified by:
        `getComponent` in interface `Dockable`
      Returns:
        the component wrapped by this dockable.

    - #### getDragSources

          public java.util.List getDragSources()

      Description copied from interface: `Dockable`
      Returns a `List` of the `Components` that are event sources for drag operations. The list may or may not include the Component returned by `getComponent()`.
      Specified by:
        `getDragSources` in interface `Dockable`
      Returns:
        a list containing the components that may be used to drag this dockable.

    - #### getFrameDragSources

          public java.util.Set getFrameDragSources()

      Description copied from interface: `Dockable`
      Returns a `Set` of the `Components` that are used as frame drag sources. When a `Dockable` is floated into an external frame, that frame may or may not have a titlebar for repositioning. The Components returned by this method will be setup with appropriate event listeners such that dragging them will serve to reposition the containing frame as if they were the frame titlebar. If a Component exists in both the Set returned by this method and the List returned by `getDragSources()`, the "frame reposition" behavior will supercede any "drag-to-dock" behavior while the Dockable is in a floating state.
      Specified by:
        `getFrameDragSources` in interface `Dockable`
      Returns:
        a set containing the components that may be used to drag the frame this dockable resides in, if the dockable is floating.

    - #### getPersistentId

          public java.lang.String getPersistentId()

      Description copied from interface: `Dockable`
      Returns a `String` identifier that is unique within a JVM instance, but persistent across JVM instances. This is used for configuration mangement, allowing the JVM to recognize a `Dockable` instance within an application instance, persist the ID, and recall it in later application instances. The ID should be unique within an appliation instance so that there are no collisions with other `Dockable` instances, but it should also be consistent from JVM to JVM so that the association between a `Dockable` instance and its ID can be remembered from session to session.

      The framework performs indexing on the persistent ID. Consequently, this method may not return a `null` reference.

      Specified by:
        `getPersistentId` in interface `Dockable`
      Returns:
        the persistence id for this dockable. This id ensures that only one copy of a given dockable will exist.

    - #### isTerritoryBlocked

          public boolean isTerritoryBlocked(Dockable dockable,
                                   java.lang.String region)

    - #### setTerritoryBlocked

          public void setTerritoryBlocked(java.lang.String region,
                                 boolean blocked)

    - #### getTabText

          public java.lang.String getTabText()

    - #### setTabText

          public void setTabText(java.lang.String tabText)

    - #### getTabIcon

          public javax.swing.Icon getTabIcon()

    - #### setTabIcon

          public void setTabIcon(javax.swing.Icon icon)

    - #### dock

          public boolean dock(Dockable dockable)

      Description copied from interface: `Dockable`
      Implements the semantics for docking an external `Dockable` to this `Dockable` and returns a `boolean` indicating whether or not the docking operation was successful.

      The framework already provides a default implementation for this method through `DockingManager.dock(Dockable dockable, Dockable parent)`. While users are free to provide their own implementation for this method, the recommended approach is to use the default implementation with the following line:

      `return DockingManager.dock(dockable, this);`

      Specified by:
        `dock` in interface `Dockable`
      Parameters:
        `dockable` - the `Dockable` to dock relative to this `Dockable`
      Returns:
        `true` if the docking operation was successful; `false` otherwise.
      See Also:
        `Dockable.dock(Dockable, String)`, `Dockable.dock(Dockable, String, float)`, `DockingManager.dock(Dockable, Dockable)`

    - #### getDockingPort

          public DockingPort getDockingPort()

      Description copied from interface: `Dockable`
      Returns the DockingPort within which this Dockable is currently docked. If not currently docked, this method will return null.
      Specified by:
        `getDockingPort` in interface `Dockable`
      Returns:
        the docking port this dockable resides in, or `null` if the dockable is not currently docked (i.e. in the middle of a drag operation).

    - #### getSibling

          public Dockable getSibling(java.lang.String region)

    - #### getViewport

          public Viewport getViewport()

    - #### dock

          public boolean dock(Dockable dockable,
                     java.lang.String relativeRegion)

      Description copied from interface: `Dockable`
      Implements the semantics for docking an external `Dockable` to the specified region of this `Dockable` and returns a `boolean` indicating whether or not the docking operation was successful. If the docking operation results in a split layout, this method should determine an appropriate ratio of available space to allot to the new sibling `Dockable`.

      The framework already provides a default implementation for this method through `DockingManager.dock(Dockable dockable, Dockable parent, String region)`. While users are free to provide their own implementation for this method, the recommended approach is to use the default implementation with the following line:

      `return DockingManager.dock(dockable, this, relativeRegion);`

      Specified by:
        `dock` in interface `Dockable`
      Parameters:
        `dockable` - the `Dockable` to dock relative to this `Dockable`
        `relativeRegion` - the docking region into which to dock the specified `Dockable`
      Returns:
        `true` if the docking operation was successful; `false` otherwise.
      See Also:
        `Dockable.dock(Dockable, String, float)`, `DockingManager.dock(Dockable, Dockable, String)`

    - #### dock

          public boolean dock(Dockable dockable,
                     java.lang.String relativeRegion,
                     float ratio)

      Description copied from interface: `Dockable`
      Implements the semantics for docking an external `Dockable` to the specified region of this `Dockable` with the specified layout ratio, returning a `boolean` indicating whether or not the docking operation was successful. If the docking operation results in a split layout, this method should use the specified `ratio` to determine the amount of available space to allot to the new sibling `Dockable`.

      The framework already provides a default implementation for this method through `DockingManager.dock(Dockable dockable, Dockable parent, String region, float proportion)`. While users are free to provide their own implementation for this method, the recommended approach is to use the default implementation with the following line:

      `return DockingManager.dock(dockable, this, relativeRegion, ratio);`

      Specified by:
        `dock` in interface `Dockable`
      Parameters:
        `dockable` - the `Dockable` to dock relative to this `Dockable`
        `relativeRegion` - the docking region into which to dock the specified `Dockable`
        `ratio` - the proportion of available space in the resulting layout to allot to the new sibling `Dockable`.
      Returns:
        `true` if the docking operation was successful; `false` otherwise.
      See Also:
        `DockingManager.dock(Dockable, Dockable, String, float)`

    - #### setActive

          public void setActive(boolean b)

    - #### isActive

          public boolean isActive()

    - #### setActiveStateLocked

          public void setActiveStateLocked(boolean b)

    - #### isActiveStateLocked

          public boolean isActiveStateLocked()

    - #### isMinimized

          public boolean isMinimized()

    - #### getMinimizedConstraint

          public int getMinimizedConstraint()

    - #### addDockingListener

          public void addDockingListener(DockingListener listener)

      Specified by:
        `addDockingListener` in interface `DockingMonitor`

    - #### getDockingListeners

          public DockingListener[] getDockingListeners()

      Specified by:
        `getDockingListeners` in interface `DockingMonitor`

    - #### removeDockingListener

          public void removeDockingListener(DockingListener listener)

      Specified by:
        `removeDockingListener` in interface `DockingMonitor`

    - #### dockingCanceled

          public void dockingCanceled(DockingEvent evt)

      Description copied from interface: `DockingListener`
      Fired when docking of a `Dockable` is canceled during the operation.
      Specified by:
        `dockingCanceled` in interface `DockingListener`
      Parameters:
        `evt` - the `DockingEvent` event which provides the source Dockable, the old DockingPort and the new DockingPort

    - #### dockingComplete

          public void dockingComplete(DockingEvent evt)

      Description copied from interface: `DockingListener`
      Fired when docking of a `Dockable` has completed.
      Specified by:
        `dockingComplete` in interface `DockingListener`
      Parameters:
        `evt` - the `DockingEvent` event which provides the source Dockable, the old DockingPort and the new DockingPort

    - #### dragStarted

          public void dragStarted(DockingEvent evt)

      Description copied from interface: `DockingListener`
      Fired when the dragging of a `Dockable` has begun.
      Specified by:
        `dragStarted` in interface `DockingListener`
      Parameters:
        `evt` - the `DockingEvent` event which provides the source Dockable, the old DockingPort and the new DockingPort

    - #### dropStarted

          public void dropStarted(DockingEvent evt)

      Description copied from interface: `DockingListener`
      Fired when the dropping of a `Dockable` has begun at the release of a drag-operation.
      Specified by:
        `dropStarted` in interface `DockingListener`
      Parameters:
        `evt` - the `DockingEvent` event which provides the source Dockable, the old DockingPort and the new DockingPort

    - #### undockingComplete

          public void undockingComplete(DockingEvent evt)

      Specified by:
        `undockingComplete` in interface `DockingListener`

    - #### undockingStarted

          public void undockingStarted(DockingEvent evt)

      Specified by:
        `undockingStarted` in interface `DockingListener`

    - #### setActionBlocked

          public void setActionBlocked(java.lang.String actionName,
                              boolean blocked)

    - #### isActionBlocked

          public boolean isActionBlocked(java.lang.String actionName)

    - #### isFloating

          public boolean isFloating()

    - #### paramString

          protected java.lang.String paramString()

      Overrides:
        `paramString` in class `javax.swing.JComponent`

    - #### isContentPaneCheckingEnabled

          protected boolean isContentPaneCheckingEnabled()

      Returns:
        the contentPaneCheckingEnabled

    - #### setContentPaneCheckingEnabled

          protected void setContentPaneCheckingEnabled(boolean contentPaneCheckingEnabled)

      Parameters:
        `contentPaneCheckingEnabled` - the contentPaneCheckingEnabled to set

    - #### setLayout

          public void setLayout(java.awt.LayoutManager manager)

      Sets the `LayoutManager`. Overridden to conditionally forward the call to the `contentPane`.
      Overrides:
        `setLayout` in class `java.awt.Container`
      Parameters:
        `manager` - the `LayoutManager`
      See Also:
        `setContentPaneCheckingEnabled(boolean)`