## org.flexdock.docking
Interface RegionChecker

All Known Implementing Classes:
  DefaultRegionChecker

    public interface RegionChecker

This interface provides an API for determining the desired regional bounds for a `Dockable` component. Implementing classes are responsible for determining the bounds and proportional sizes for both docking regions and sibling components. As a `Dockable` is dragged across a `DockingPort` containing another embedded `Dockable`, a determination must be made as to where the dragged `Dockable` will be docked within the target `DockingPort` based upon the current mouse position relative to the embedded `Dockable` underneath the mouse. Classes that implement this interface are responsible for making such determinations. For example, if a `Dockable` is dragged over another `Dockable` embedded within a `DockingPort`, and the current mouse position is near the top edge of the embedded `Dockable`, the current `RegionChecker` is responsible for determining whether the user is attempting to dock in the `north`, `east`, `west`, or `center` of the embedded `Dockable`. The visual `DragPreview` displayed to the end user should reflect this determination. Once the docking operation is complete and the layout has been split between both `Dockables`, the actual percentage of space allotted to the new `Dockable` in the layout, referred to as the "sibling", is also determined by the current `RegionChecker` implementation.

Author:
  Christopher Butler, Mateusz Szczap

Field Summary
`static float` `DEFAULT_REGION_SIZE` Default region size.
`static float` `DEFAULT_SIBLING_SIZE` Default sibling size.
`static java.lang.String` `DEFAULT_SIBLING_SIZE_KEY` A key to find a system property that will override the default sibling size in this interface.
`static float` `MAX_REGION_SIZE` Default maximum region size.
`static float` `MAX_SIBILNG_SIZE` Default maximum sibling size.
`static float` `MIN_REGION_SIZE` Default minimum region size.
`static float` `MIN_SIBILNG_SIZE` Default minimum sibling size.

Method Summary
`java.awt.Rectangle` `getEastRegion(java.awt.Component component)` Returns the rectangular bounds within the specified component that represent it's `DockingConstants.EAST_REGION`.
`java.awt.Rectangle` `getNorthRegion(java.awt.Component component)` Returns the rectangular bounds within the specified component that represent it's `DockingConstants.NORTH_REGION`.
`java.lang.String` `getRegion(java.awt.Component component, java.awt.Point point)` Returns the docking region of the supplied `Component` that contains the coordinates of the specified `Point`.
`java.awt.Rectangle` `getRegionBounds(java.awt.Component component, java.lang.String region)` Returns the rectangular bounds within the specified component that represent the specified region.
`float` `getRegionSize(java.awt.Component component, java.lang.String region)` Returns a percentage representing the amount of space allotted for the specified region within the specified `Component`.
`java.awt.Rectangle` `getSiblingBounds(java.awt.Component component, java.lang.String region)` A `Rectangle` representing the actual amount of space to allot for sibling `Components` should they be docked into the specified region.
`float` `getSiblingSize(java.awt.Component component, java.lang.String region)` Returns a percentage representing the amount of space allotted for sibling `Components` to be docked within the specified region of the supplied `Component`.
`java.awt.Rectangle` `getSouthRegion(java.awt.Component component)` Returns the rectangular bounds within the specified component that represent it's `DockingConstants.SOUTH_REGION`.
`java.awt.Rectangle` `getWestRegion(java.awt.Component component)` Returns the rectangular bounds within the specified component that represent it's `DockingConstants.WEST_REGION`.

Field Detail

### MAX_REGION_SIZE

    static final float MAX_REGION_SIZE

  Default maximum region size.

  See Also:
    Constant Field Values

### MIN_REGION_SIZE

    static final float MIN_REGION_SIZE

  Default minimum region size.

  See Also:
    Constant Field Values

### MAX_SIBILNG_SIZE

    static final float MAX_SIBILNG_SIZE

  Default maximum sibling size.

  See Also:
    Constant Field Values

### MIN_SIBILNG_SIZE

    static final float MIN_SIBILNG_SIZE

  Default minimum sibling size.

  See Also:
    Constant Field Values

### DEFAULT_REGION_SIZE

    static final float DEFAULT_REGION_SIZE

  Default region size.

  See Also:
    Constant Field Values

### DEFAULT_SIBLING_SIZE

    static final float DEFAULT_SIBLING_SIZE

  Default sibling size.

  See Also:
    Constant Field Values

### DEFAULT_SIBLING_SIZE_KEY

    static final java.lang.String DEFAULT_SIBLING_SIZE_KEY

  A key to find a system property that will override the default sibling size in this interface.

  See Also:
    `DEFAULT_SIBLING_SIZE`, Constant Field Values

Method Detail

### getRegion

    java.lang.String getRegion(java.awt.Component component,
                               java.awt.Point point)

  Returns the docking region of the supplied `Component` that contains the coordinates of the specified `Point`. Valid return values are those regions defined in `DockingConstants` and include `CENTER_REGION`, `NORTH_REGION`, `SOUTH_REGION`, `EAST_REGION`, `WEST_REGION`, or `UNKNOWN_REGION`.

  Parameters:
    `component` - the `Component` whose region is to be examined.
    `point` - the coordinates whose region is to be determined.
  Returns:
    the docking region containing the specified `Point`.

### getNorthRegion

    java.awt.Rectangle getNorthRegion(java.awt.Component component)

  Returns the rectangular bounds within the specified component that represent it's `DockingConstants.NORTH_REGION`.

  Parameters:
    `component` - the `Component` whose north region is to be returned.
  Returns:
    the bounds containing the north region of the specified `Component`.

### getSouthRegion

    java.awt.Rectangle getSouthRegion(java.awt.Component component)

  Returns the rectangular bounds within the specified component that represent it's `DockingConstants.SOUTH_REGION`.

  Parameters:
    `component` - the `Component` whose south region is to be returned.
  Returns:
    the bounds containing the south region of the specified `Component`.

### getEastRegion

    java.awt.Rectangle getEastRegion(java.awt.Component component)

  Returns the rectangular bounds within the specified component that represent it's `DockingConstants.EAST_REGION`.

  Parameters:
    `component` - the `Component` whose east region is to be returned.
  Returns:
    the bounds containing the east region of the specified `Component`.

### getWestRegion

    java.awt.Rectangle getWestRegion(java.awt.Component component)

  Returns the rectangular bounds within the specified component that represent it's `DockingConstants.WEST_REGION`.

  Parameters:
    `component` - the `Component` whose west region is to be returned.
  Returns:
    the bounds containing the west region of the specified `Component`.

### getRegionBounds

    java.awt.Rectangle getRegionBounds(java.awt.Component component,
                                       java.lang.String region)

  Returns the rectangular bounds within the specified component that represent the specified region. Valid values for the `region` parameter are those regions defined in `DockingConstants` and include `NORTH_REGION`, `SOUTH_REGION`, `EAST_REGION`, and `WEST_REGION`. All other region values should result in this method returning a `null` reference.

  Parameters:
    `component` - the `Component` whose region bounds are to be returned.
    `region` - the specified region that is to be examined.
  Returns:
    the bounds containing the supplied region of the specified `Component`.

### getRegionSize

    float getRegionSize(java.awt.Component component,
                        java.lang.String region)

  Returns a percentage representing the amount of space allotted for the specified region within the specified `Component`. For example, a return value of 0.25F for NORTH_REGION implies that the top 25% of the supplied `Component's` bounds rectangle is to be interpreted as the `Component's` northern region. Valid values for the `region` parameter are those regions defined in `DockingConstants` and include `NORTH_REGION`, `SOUTH_REGION`, `EAST_REGION`, and `WEST_REGION`. All other region values should result in this method returning the constant `DEFAULT_SIBLING_SIZE`.

  Parameters:
    `component` - the `Component` whose region is to be examined.
    `region` - the specified region that is to be examined.
  Returns:
    the percentage of the specified `Component` allotted for the specified region.

### getSiblingBounds

    java.awt.Rectangle getSiblingBounds(java.awt.Component component,
                                        java.lang.String region)

  A `Rectangle` representing the actual amount of space to allot for sibling `Components` should they be docked into the specified region. This method differs from `getRegionBounds(Component c, String region)` in that `getRegionBounds()` determines the amount to space used to check whether a `Component's` docking will intersect with a particular region, whereas this method returns the actual amount of space said `Component` will take up after docking has been completed. Valid values for the `region` parameter are those regions defined in `DockingConstants` and include `NORTH_REGION`, `SOUTH_REGION`, `EAST_REGION`, and `WEST_REGION`. All other region values should result in this method returning the constant `DEFAULT_SIBLING_SIZE`.

  Parameters:
    `component` - the `Component` whose sibling bounds are to be returned.
    `region` - the specified region that is to be examined.
  Returns:
    the bounds containing the sibling bounds desired for `Components` docked into the specified region of the of the specified `Component`.

### getSiblingSize

    float getSiblingSize(java.awt.Component component,
                         java.lang.String region)

  Returns a percentage representing the amount of space allotted for sibling `Components` to be docked within the specified region of the supplied `Component`. This method differs from `getRegionSize(Component c, String region)` in that `getRegionSize()` determines the proportional space used to check whether a `Component's` docking will intersect with a particular region, whereas this method returns the proportional space said `Component` will take up after docking has been completed. Valid values for the `region` parameter are those regions defined in `DockingConstants` and include `NORTH_REGION`, `SOUTH_REGION`, `EAST_REGION`, and `WEST_REGION`. All other region values should result in this method returning the constant `DEFAULT_SIBLING_SIZE`.

  Parameters:
    `component` - the `Component` whose sibling proportions are to be returned.
    `region` - the specified region that is to be examined.
  Returns:
    the percentage of the specified `Component` allotted for sibling `Components` that are to be docked into the specified region.