org.mlc.swing.layout
Class ContainerLayout

java.lang.Object
  extended by org.mlc.swing.layout.ContainerLayout
All Implemented Interfaces:
java.awt.LayoutManager, java.awt.LayoutManager2

public class ContainerLayout
extends java.lang.Object
implements java.awt.LayoutManager2

This class acts as a surogate layout manager for the JGoodies (www.jgoodies.com) FormLayout manager. This layout manager enables us to associate names with components and then define the constraints for the component elsewhere (like xml)

Since:
Ptolemy II 8.0
Version:
$Id: ContainerLayout.java 57044 2010-01-27 22:41:05Z cxh $
Author:
Michael Connor

Field Summary
(package private)  java.util.List<java.lang.String> columnSpecs
           
(package private)  java.util.LinkedHashMap<java.lang.String,CellConstraints> componentConstraints
           
(package private)  java.util.Map<java.lang.String,ComponentDef> componentNameToComponentDef
           
(package private)  java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> componentNameToCustomProps
           
(package private)  java.util.Map<java.awt.Component,java.lang.String> componentsToNames
           
(package private)  FormLayout formLayout
           
(package private)  java.lang.String name
           
(package private)  java.util.List<java.lang.String> rowSpecs
           
 
Constructor Summary
ContainerLayout(java.lang.String name, java.lang.String columnSpecs, java.lang.String rowSpecs)
           
 
Method Summary
 void addCellConstraints(java.lang.String name, CellConstraints constraints)
           
 void addColumnSpec(int index, java.lang.String columnSpec)
           
 void addColumnSpec(java.lang.String columnSpec)
           
 void addComponent(java.lang.String componentName, ComponentDef componentDef, CellConstraints constraints)
           
 void addLayoutComponent(java.awt.Component comp, java.lang.Object constraints)
           
 void addLayoutComponent(java.lang.String name, java.awt.Component comp)
           
 void addRowSpec(int index, java.lang.String rowSpec)
           
 void addRowSpec(java.lang.String rowSpec)
           
private  void buildLayout()
           
 void constraintsChanged(java.lang.String name, CellConstraints constraints)
           
private  java.lang.String delimit(java.util.List<java.lang.String> values)
           
 java.util.LinkedHashMap<java.lang.String,CellConstraints> getCellConstraints()
           
 CellConstraints getCellConstraints(java.lang.String name)
           
 int getColumnCount()
           
 java.lang.String getColumnSpec(int index)
           
 java.util.List<java.lang.String> getColumnSpecs()
           
 java.lang.String getColumnSpecsString()
           
 java.awt.Component getComponentByName(java.lang.String name)
          Returns the component with the given name or null if not found
 CellConstraints getComponentConstraints(java.awt.Component component)
           
 ComponentDef getComponentDef(java.lang.String componentName)
           
 java.lang.String getComponentName(java.awt.Component component)
           
protected  java.util.Map<java.awt.Component,java.lang.String> getComponentsToNames()
           
 java.util.Map<java.lang.String,java.lang.Object> getCustomProperties(java.lang.String componentName)
          Returns custom properties for the component.
 float getLayoutAlignmentX(java.awt.Container target)
           
 float getLayoutAlignmentY(java.awt.Container target)
           
 FormLayout.LayoutInfo getLayoutInfo(java.awt.Container container)
           
 java.lang.String getName()
          Returns the value of the name property
 int getRowCount()
           
 java.lang.String getRowSpec(int index)
           
 java.util.List<java.lang.String> getRowSpecs()
           
 java.lang.String getRowSpecsString()
           
 void invalidateLayout(java.awt.Container target)
           
 void layoutContainer(java.awt.Container parent)
           
static void main(java.lang.String[] args)
           
 java.awt.Dimension maximumLayoutSize(java.awt.Container target)
           
 java.awt.Dimension minimumLayoutSize(java.awt.Container parent)
           
 java.awt.Dimension preferredLayoutSize(java.awt.Container parent)
           
 CellConstraints removeCellConstraints(java.lang.String name)
           
 java.lang.String removeColumnSpec(int index)
           
 void removeLayoutComponent(java.awt.Component comp)
           
 java.lang.String removeRowSpec(int index)
           
 void setCellConstraints(java.lang.String componentName, CellConstraints constraints)
           
 void setColumnSpec(int index, java.lang.String columnSpec)
           
 void setName(java.lang.String name)
          Registers the value of the name property
 void setProperty(java.lang.String componentName, java.lang.String property, java.lang.Object value)
          Set a user defined property for this component so that the tool can manage the properties of the component thus reducing the burden on the user
 void setRowSpec(int index, java.lang.String rowSpec)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rowSpecs

java.util.List<java.lang.String> rowSpecs

columnSpecs

java.util.List<java.lang.String> columnSpecs

componentConstraints

java.util.LinkedHashMap<java.lang.String,CellConstraints> componentConstraints

componentsToNames

java.util.Map<java.awt.Component,java.lang.String> componentsToNames

componentNameToCustomProps

java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.Object>> componentNameToCustomProps

componentNameToComponentDef

java.util.Map<java.lang.String,ComponentDef> componentNameToComponentDef

formLayout

FormLayout formLayout

name

java.lang.String name
Constructor Detail

ContainerLayout

public ContainerLayout(java.lang.String name,
                       java.lang.String columnSpecs,
                       java.lang.String rowSpecs)
Method Detail

buildLayout

private void buildLayout()
                  throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

delimit

private java.lang.String delimit(java.util.List<java.lang.String> values)

getComponentsToNames

protected java.util.Map<java.awt.Component,java.lang.String> getComponentsToNames()

setName

public void setName(java.lang.String name)
Registers the value of the name property

Parameters:
name - The value of the property

getName

public java.lang.String getName()
Returns the value of the name property

Returns:
The value

getCustomProperties

public java.util.Map<java.lang.String,java.lang.Object> getCustomProperties(java.lang.String componentName)
Returns custom properties for the component. If no custom props exist then an empty map will be returned.


setProperty

public void setProperty(java.lang.String componentName,
                        java.lang.String property,
                        java.lang.Object value)
Set a user defined property for this component so that the tool can manage the properties of the component thus reducing the burden on the user


setCellConstraints

public void setCellConstraints(java.lang.String componentName,
                               CellConstraints constraints)

getCellConstraints

public java.util.LinkedHashMap<java.lang.String,CellConstraints> getCellConstraints()

addComponent

public void addComponent(java.lang.String componentName,
                         ComponentDef componentDef,
                         CellConstraints constraints)

getComponentDef

public ComponentDef getComponentDef(java.lang.String componentName)

getColumnSpecsString

public java.lang.String getColumnSpecsString()

getRowSpecsString

public java.lang.String getRowSpecsString()

getRowCount

public int getRowCount()

getColumnCount

public int getColumnCount()

getRowSpecs

public java.util.List<java.lang.String> getRowSpecs()

getColumnSpecs

public java.util.List<java.lang.String> getColumnSpecs()

constraintsChanged

public void constraintsChanged(java.lang.String name,
                               CellConstraints constraints)

getCellConstraints

public CellConstraints getCellConstraints(java.lang.String name)

addCellConstraints

public void addCellConstraints(java.lang.String name,
                               CellConstraints constraints)

removeCellConstraints

public CellConstraints removeCellConstraints(java.lang.String name)

addColumnSpec

public void addColumnSpec(java.lang.String columnSpec)
                   throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

getRowSpec

public java.lang.String getRowSpec(int index)

getColumnSpec

public java.lang.String getColumnSpec(int index)

setRowSpec

public void setRowSpec(int index,
                       java.lang.String rowSpec)
                throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

setColumnSpec

public void setColumnSpec(int index,
                          java.lang.String columnSpec)
                   throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

addRowSpec

public void addRowSpec(java.lang.String rowSpec)
                throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

removeRowSpec

public java.lang.String removeRowSpec(int index)

removeColumnSpec

public java.lang.String removeColumnSpec(int index)

addRowSpec

public void addRowSpec(int index,
                       java.lang.String rowSpec)
                throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

addColumnSpec

public void addColumnSpec(int index,
                          java.lang.String columnSpec)
                   throws java.lang.IllegalArgumentException
Throws:
java.lang.IllegalArgumentException

getComponentName

public java.lang.String getComponentName(java.awt.Component component)

getComponentByName

public java.awt.Component getComponentByName(java.lang.String name)
Returns the component with the given name or null if not found


getComponentConstraints

public CellConstraints getComponentConstraints(java.awt.Component component)

addLayoutComponent

public void addLayoutComponent(java.lang.String name,
                               java.awt.Component comp)
Specified by:
addLayoutComponent in interface java.awt.LayoutManager

getLayoutAlignmentX

public float getLayoutAlignmentX(java.awt.Container target)
Specified by:
getLayoutAlignmentX in interface java.awt.LayoutManager2

getLayoutAlignmentY

public float getLayoutAlignmentY(java.awt.Container target)
Specified by:
getLayoutAlignmentY in interface java.awt.LayoutManager2

getLayoutInfo

public FormLayout.LayoutInfo getLayoutInfo(java.awt.Container container)

invalidateLayout

public void invalidateLayout(java.awt.Container target)
Specified by:
invalidateLayout in interface java.awt.LayoutManager2

layoutContainer

public void layoutContainer(java.awt.Container parent)
Specified by:
layoutContainer in interface java.awt.LayoutManager

maximumLayoutSize

public java.awt.Dimension maximumLayoutSize(java.awt.Container target)
Specified by:
maximumLayoutSize in interface java.awt.LayoutManager2

minimumLayoutSize

public java.awt.Dimension minimumLayoutSize(java.awt.Container parent)
Specified by:
minimumLayoutSize in interface java.awt.LayoutManager

preferredLayoutSize

public java.awt.Dimension preferredLayoutSize(java.awt.Container parent)
Specified by:
preferredLayoutSize in interface java.awt.LayoutManager

removeLayoutComponent

public void removeLayoutComponent(java.awt.Component comp)
Specified by:
removeLayoutComponent in interface java.awt.LayoutManager

addLayoutComponent

public void addLayoutComponent(java.awt.Component comp,
                               java.lang.Object constraints)
Specified by:
addLayoutComponent in interface java.awt.LayoutManager2

main

public static void main(java.lang.String[] args)