org.flexdock.docking.defaults
Class StandardBorderManager

java.lang.Object
  extended by org.flexdock.docking.defaults.StandardBorderManager
All Implemented Interfaces:
BorderManager

public class StandardBorderManager
extends 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(Border border)
          Creates a new StandardBorderManager with the specified assigned border.
 
Method Summary
 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(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(Border border)
Creates a new StandardBorderManager with the specified assigned border.

Parameters:
border - the currently assigned border.
Method Detail

getBorder

public Border getBorder()
Returns the currently assigned border.

Returns:
the currently assigned border.

setBorder

public void setBorder(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)