javax.swing.plaf.basic
Class BasicSplitPaneUI.BasicHorizontalLayoutManager

java.lang.Object
  extended byjavax.swing.plaf.basic.BasicSplitPaneUI.BasicHorizontalLayoutManager
All Implemented Interfaces:
LayoutManager, LayoutManager2
Direct Known Subclasses:
BasicSplitPaneUI.BasicVerticalLayoutManager
Enclosing class:
BasicSplitPaneUI

public class BasicSplitPaneUI.BasicHorizontalLayoutManager
extends Object
implements LayoutManager2

LayoutManager for JSplitPanes that have an orientation of HORIZONTAL_SPLIT.

This inner class is marked "public" due to a compiler bug. This class should be treated as a "protected" inner class. Instantiate it only within subclasses of BasicSplitPaneUI.


Field Summary
private  int axis
          Axis, 0 for horizontal, or 1 for veritcal.
protected  Component[] components
           
private  boolean doReset
          True if resetToPreferredSizes has been invoked.
private  int lastSplitPaneSize
          Size of the splitpane the last time laid out.
protected  int[] sizes
           
 
Constructor Summary
(package private) BasicSplitPaneUI.BasicHorizontalLayoutManager()
           
(package private) BasicSplitPaneUI.BasicHorizontalLayoutManager(int axis)
           
 
Method Summary
 void addLayoutComponent(Component comp, Object constraints)
          Adds the specified component to the layout, using the specified constraint object.
 void addLayoutComponent(String place, Component component)
          Adds the component at place.
(package private)  void distributeSpace(int space, boolean keepHidden)
          Distributes space between the two components (divider won't get any extra space) based on the weighting.
protected  int getAvailableSize(Dimension containerSize, Insets insets)
          Returns the available width based on the container size and Insets.
protected  int getInitialLocation(Insets insets)
          Returns the left inset, unless the Insets are null in which case 0 is returned.
 float getLayoutAlignmentX(Container target)
          Returns the alignment along the x axis.
 float getLayoutAlignmentY(Container target)
          Returns the alignment along the y axis.
(package private)  int getMinimumSizeOfComponent(Component c)
          Returns the width of the passed in Components minimum size.
(package private)  int[] getMinimumSizes()
          Returns an array of the minimum sizes of the components.
protected  int getPreferredSizeOfComponent(Component c)
          Returns the width of the passed in Components preferred size.
(package private)  int[] getPreferredSizes()
          Returns an array of the minimum sizes of the components.
(package private)  int getSizeForPrimaryAxis(Dimension size)
          If the axis == 0, the width is returned, otherwise the height.
(package private)  int getSizeForPrimaryAxis(Insets insets, boolean isTop)
          Returns a particular value of the inset identified by the axis and isTop axis isTop 0 true - left 0 false - right 1 true - top 1 false - bottom
(package private)  int getSizeForSecondaryAxis(Dimension size)
          If the axis == 0, the width is returned, otherwise the height.
(package private)  int getSizeForSecondaryAxis(Insets insets, boolean isTop)
          Returns a particular value of the inset identified by the axis and isTop axis isTop 0 true - left 0 false - right 1 true - top 1 false - bottom
protected  int getSizeOfComponent(Component c)
          Returns the width of the passed in component.
protected  int[] getSizes()
          Returns the sizes of the components.
 void invalidateLayout(Container c)
          Does nothing.
 void layoutContainer(Container container)
          Does the actual layout.
 Dimension maximumLayoutSize(Container target)
          Returns the maximum layout size, which is Integer.MAX_VALUE in both directions.
 Dimension minimumLayoutSize(Container container)
          Returns the minimum size needed to contain the children.
 Dimension preferredLayoutSize(Container container)
          Returns the preferred size needed to contain the children.
 void removeLayoutComponent(Component component)
          Removes the specified component from our knowledge.
protected  void resetSizeAt(int index)
          Resets the size of the Component at the passed in location.
 void resetToPreferredSizes()
          Marks the receiver so that the next time this instance is laid out it'll ask for the preferred sizes.
(package private)  void resetToPreferredSizes(int availableSize)
          Resets the components to their preferred sizes.
protected  void setComponentToSize(Component c, int size, int location, Insets insets, Dimension containerSize)
          Sets the width of the component c to be size, placing its x location at location, y to the insets.top and height to the containersize.height less the top and bottom insets.
(package private)  void setDividerLocation(int leftSize, int availableSize)
          Resets the size of the first component to leftSize, and the right component to the remainder of the space.
protected  void setSizes(int[] newSizes)
          Sets the sizes to newSizes.
protected  void updateComponents()
          Determines the components.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sizes

protected int[] sizes

components

protected Component[] components

lastSplitPaneSize

private int lastSplitPaneSize
Size of the splitpane the last time laid out.


doReset

private boolean doReset
True if resetToPreferredSizes has been invoked.


axis

private int axis
Axis, 0 for horizontal, or 1 for veritcal.

Constructor Detail

BasicSplitPaneUI.BasicHorizontalLayoutManager

BasicSplitPaneUI.BasicHorizontalLayoutManager()

BasicSplitPaneUI.BasicHorizontalLayoutManager

BasicSplitPaneUI.BasicHorizontalLayoutManager(int axis)
Method Detail

layoutContainer

public void layoutContainer(Container container)
Does the actual layout.

Specified by:
layoutContainer in interface LayoutManager
Parameters:
container - the container to be laid out

addLayoutComponent

public void addLayoutComponent(String place,
                               Component component)
Adds the component at place. Place must be one of JSplitPane.LEFT, RIGHT, TOP, BOTTOM, or null (for the divider).

Specified by:
addLayoutComponent in interface LayoutManager
Parameters:
place - the string to be associated with the component
component - the component to be added

minimumLayoutSize

public Dimension minimumLayoutSize(Container container)
Returns the minimum size needed to contain the children. The width is the sum of all the childrens min widths and the height is the largest of the childrens minimum heights.

Specified by:
minimumLayoutSize in interface LayoutManager
Parameters:
container - the component to be laid out
See Also:
LayoutManager.preferredLayoutSize(java.awt.Container)

preferredLayoutSize

public Dimension preferredLayoutSize(Container container)
Returns the preferred size needed to contain the children. The width is the sum of all the childrens preferred widths and the height is the largest of the childrens preferred heights.

Specified by:
preferredLayoutSize in interface LayoutManager
Parameters:
container - the container to be laid out
See Also:
LayoutManager.minimumLayoutSize(java.awt.Container)

removeLayoutComponent

public void removeLayoutComponent(Component component)
Removes the specified component from our knowledge.

Specified by:
removeLayoutComponent in interface LayoutManager
Parameters:
component - the component to be removed

addLayoutComponent

public void addLayoutComponent(Component comp,
                               Object constraints)
Adds the specified component to the layout, using the specified constraint object.

Specified by:
addLayoutComponent in interface LayoutManager2
Parameters:
comp - the component to be added
constraints - where/how the component is added to the layout.

getLayoutAlignmentX

public float getLayoutAlignmentX(Container target)
Returns the alignment along the x axis. This specifies how the component would like to be aligned relative to other components. The value should be a number between 0 and 1 where 0 represents alignment along the origin, 1 is aligned the furthest away from the origin, 0.5 is centered, etc.

Specified by:
getLayoutAlignmentX in interface LayoutManager2

getLayoutAlignmentY

public float getLayoutAlignmentY(Container target)
Returns the alignment along the y axis. This specifies how the component would like to be aligned relative to other components. The value should be a number between 0 and 1 where 0 represents alignment along the origin, 1 is aligned the furthest away from the origin, 0.5 is centered, etc.

Specified by:
getLayoutAlignmentY in interface LayoutManager2

invalidateLayout

public void invalidateLayout(Container c)
Does nothing. If the developer really wants to change the size of one of the views JSplitPane.resetToPreferredSizes should be messaged.

Specified by:
invalidateLayout in interface LayoutManager2

maximumLayoutSize

public Dimension maximumLayoutSize(Container target)
Returns the maximum layout size, which is Integer.MAX_VALUE in both directions.

Specified by:
maximumLayoutSize in interface LayoutManager2
See Also:
Component.getMaximumSize(), LayoutManager

resetToPreferredSizes

public void resetToPreferredSizes()
Marks the receiver so that the next time this instance is laid out it'll ask for the preferred sizes.


resetSizeAt

protected void resetSizeAt(int index)
Resets the size of the Component at the passed in location.


setSizes

protected void setSizes(int[] newSizes)
Sets the sizes to newSizes.


getSizes

protected int[] getSizes()
Returns the sizes of the components.


getPreferredSizeOfComponent

protected int getPreferredSizeOfComponent(Component c)
Returns the width of the passed in Components preferred size.


getMinimumSizeOfComponent

int getMinimumSizeOfComponent(Component c)
Returns the width of the passed in Components minimum size.


getSizeOfComponent

protected int getSizeOfComponent(Component c)
Returns the width of the passed in component.


getAvailableSize

protected int getAvailableSize(Dimension containerSize,
                               Insets insets)
Returns the available width based on the container size and Insets.


getInitialLocation

protected int getInitialLocation(Insets insets)
Returns the left inset, unless the Insets are null in which case 0 is returned.


setComponentToSize

protected void setComponentToSize(Component c,
                                  int size,
                                  int location,
                                  Insets insets,
                                  Dimension containerSize)
Sets the width of the component c to be size, placing its x location at location, y to the insets.top and height to the containersize.height less the top and bottom insets.


getSizeForPrimaryAxis

int getSizeForPrimaryAxis(Dimension size)
If the axis == 0, the width is returned, otherwise the height.


getSizeForSecondaryAxis

int getSizeForSecondaryAxis(Dimension size)
If the axis == 0, the width is returned, otherwise the height.


getSizeForPrimaryAxis

int getSizeForPrimaryAxis(Insets insets,
                          boolean isTop)
Returns a particular value of the inset identified by the axis and isTop

axis isTop 0 true - left 0 false - right 1 true - top 1 false - bottom


getSizeForSecondaryAxis

int getSizeForSecondaryAxis(Insets insets,
                            boolean isTop)
Returns a particular value of the inset identified by the axis and isTop

axis isTop 0 true - left 0 false - right 1 true - top 1 false - bottom


updateComponents

protected void updateComponents()
Determines the components. This should be called whenever a new instance of this is installed into an existing SplitPane.


setDividerLocation

void setDividerLocation(int leftSize,
                        int availableSize)
Resets the size of the first component to leftSize, and the right component to the remainder of the space.


getPreferredSizes

int[] getPreferredSizes()
Returns an array of the minimum sizes of the components.


getMinimumSizes

int[] getMinimumSizes()
Returns an array of the minimum sizes of the components.


resetToPreferredSizes

void resetToPreferredSizes(int availableSize)
Resets the components to their preferred sizes.


distributeSpace

void distributeSpace(int space,
                     boolean keepHidden)
Distributes space between the two components (divider won't get any extra space) based on the weighting. This attempts to honor the min size of the components.

Parameters:
keepHidden - if true and one of the components is 0x0 it gets none of the extra space