## org.flexdock.docking.defaults
Class StandardBorderManager

    java.lang.Object
      org.flexdock.docking.defaults.StandardBorderManager

All Implemented Interfaces:
  BorderManager

    public class StandardBorderManager

extends java.lang.Object
implements BorderManager

This class provides a standard implementation of the `BorderManager` interface. It is designed to avoid the negative visual effects caused by nesting docked components that have individual borders. It accomplishes this by establishing and maintaining a single border for all docked components This class encapsulates a `javax.swing.border.Border` instance, or a `null` border reference, for application to a `DefaultDockingPort` and its child components. If the `DefaultDockingPort` has no child component, then `managePortNullChild()` will apply the encapsulated border to the `DefaultDockingPort` itself, rendering the visible outline of an empty `DockingPort`. If the `DefaultDockingPort` has a generic `Component` as its child, excluding a `JTabbedPane` or `JSplitPane`, then the border for that component is set to `null` and the encapsulated border is applied to the `DockingPort` via `managePortSimpleChild()`. If the `DefaultDockingPort` has a `JTabbedPane` as its child, then a `null` border is set for the `JTabbedPane` and all of its child components, and the encapsulated border is applied to the `DockingPort`. This is accomplished by calling `managePortTabbedChild()`. Finally, `managePortSplitChild()` will manage the border for a `DefaultDockingPort` whose docked component is a `JSplitPane`. This method removes all borders from the `DefaultDockingPort` and the split pane divider and applies the encapsulated border to both left and right child components of the `JSplitPane`.

Author:
  Christopher Butler

Constructor Summary
`StandardBorderManager()` Creates a new `StandardBorderManager` with a `null` assigned border.
`StandardBorderManager(javax.swing.border.Border border)` Creates a new `StandardBorderManager` with the specified assigned border.

Method Summary
`javax.swing.border.Border` `getBorder()` Returns the currently assigned border.
`void` `managePortNullChild(DockingPort port)` Set the border on the supplied `DockingPort` to the currently assigned border.
`void` `managePortSimpleChild(DockingPort port)` Removes any border from the `DockingPort's` docked component and set the border on the `DockingPort` itself to the currently assigned border.
`void` `managePortSplitChild(DockingPort port)` Removes any border from the `DockingPort` itself and places the currently assigned border on the two child components of the `DockingPort's</code JSplitPane` child.
`void` `managePortTabbedChild(DockingPort port)` Removes any border from the `DockingPort's` docked `JTabbedPane` component and sets the border on the `DockingPort` itself to the currently assigned border.
`void` `setBorder(javax.swing.border.Border border)` Sets the assigned border.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### StandardBorderManager

    public StandardBorderManager()

  Creates a new `StandardBorderManager` with a `null` assigned border.

### StandardBorderManager

    public StandardBorderManager(javax.swing.border.Border border)

  Creates a new `StandardBorderManager` with the specified assigned border.

  Parameters:
    `border` - the currently assigned border.

Method Detail

### getBorder

    public javax.swing.border.Border getBorder()

  Returns the currently assigned border.

  Returns:
    the currently assigned border.

### setBorder

    public void setBorder(javax.swing.border.Border border)

  Sets the assigned border. Null values are acceptable.

  Parameters:
    `border` - the assigned border.

### managePortNullChild

    public void managePortNullChild(DockingPort port)

  Set the border on the supplied `DockingPort` to the currently assigned border.

  Specified by:
    `managePortNullChild` in interface `BorderManager`
  Parameters:
    `port` - the `DockingPort` whose layout borders are to be managed
  See Also:
    `BorderManager.managePortNullChild(DockingPort)`

### managePortSimpleChild

    public void managePortSimpleChild(DockingPort port)

  Removes any border from the `DockingPort's` docked component and set the border on the `DockingPort` itself to the currently assigned border.

  Specified by:
    `managePortSimpleChild` in interface `BorderManager`
  Parameters:
    `port` - the `DockingPort` whose layout borders are to be managed
  See Also:
    `BorderManager.managePortSimpleChild(DockingPort)`

### managePortSplitChild

    public void managePortSplitChild(DockingPort port)

  Removes any border from the `DockingPort` itself and places the currently assigned border on the two child components of the `DockingPort's</code JSplitPane` child.

  Specified by:
    `managePortSplitChild` in interface `BorderManager`
  Parameters:
    `port` - the `DockingPort` whose layout borders are to be managed
  See Also:
    `BorderManager.managePortSplitChild(DockingPort)`

### managePortTabbedChild

    public void managePortTabbedChild(DockingPort port)

  Removes any border from the `DockingPort's` docked `JTabbedPane` component and sets the border on the `DockingPort` itself to the currently assigned border.

  Specified by:
    `managePortTabbedChild` in interface `BorderManager`
  Parameters:
    `port` - the `DockingPort` whose layout borders are to be managed
  See Also:
    `BorderManager.managePortTabbedChild(DockingPort)`