org.jfree.chart.block

## Class BlockContainer

- java.lang.Object
- - org.jfree.chart.block.AbstractBlock
  - - org.jfree.chart.block.BlockContainer

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, Block, org.jfree.ui.Drawable, org.jfree.util.PublicCloneable

Direct Known Subclasses:
  LegendItemBlockContainer

    public class BlockContainer
    extends AbstractBlock
    implements Block, java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable

A container for a collection of `Block` objects. The container uses an `Arrangement` object to handle the position of each block.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`BlockContainer()` Creates a new instance with default settings.
`BlockContainer(Arrangement arrangement)` Creates a new instance with the specified arrangement.

### Method Summary

Methods
`void` `add(Block block)` Adds a block to the container.
`void` `add(Block block, java.lang.Object key)` Adds a block to the container.
`org.jfree.ui.Size2D` `arrange(java.awt.Graphics2D g2, RectangleConstraint constraint)` Arranges the contents of the block, within the given constraints, and returns the block size.
`void` `clear()` Clears all the blocks from the container.
`java.lang.Object` `clone()` Returns a clone of the container.
`void` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)` Draws the container and all the blocks within it.
`java.lang.Object` `draw(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area, java.lang.Object params)` Draws the block within the specified area.
`boolean` `equals(java.lang.Object obj)` Tests this container for equality with an arbitrary object.
`Arrangement` `getArrangement()` Returns the arrangement (layout) manager for the container.
`java.util.List` `getBlocks()` Returns an unmodifiable list of the `Block` objects managed by this arrangement.
`boolean` `isEmpty()` Returns `true` if there are no blocks in the container, and `false` otherwise.
`void` `setArrangement(Arrangement arrangement)` Sets the arrangement (layout) manager.

### Methods inherited from class org.jfree.chart.block.AbstractBlock

`arrange, calculateTotalHeight, calculateTotalWidth, drawBorder, getBorder, getBounds, getContentXOffset, getContentYOffset, getFrame, getHeight, getID, getMargin, getPadding, getWidth, setBorder, setBorder, setBounds, setFrame, setHeight, setID, setMargin, setMargin, setPadding, setPadding, setWidth, toContentConstraint, trimBorder, trimMargin, trimPadding, trimToContentHeight, trimToContentWidth`

### Methods inherited from class java.lang.Object

`finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.jfree.chart.block.Block

`arrange, getBounds, getID, setBounds, setID`

### Constructor Detail

#### BlockContainer

    public BlockContainer()

Creates a new instance with default settings.

#### BlockContainer

    public BlockContainer(Arrangement arrangement)

Creates a new instance with the specified arrangement.

Parameters:
  `arrangement` - the arrangement manager (`null` not permitted).

### Method Detail

#### getArrangement

    public Arrangement getArrangement()

Returns the arrangement (layout) manager for the container.

Returns:
  The arrangement manager (never `null`).

#### setArrangement

    public void setArrangement(Arrangement arrangement)

Sets the arrangement (layout) manager.

Parameters:
  `arrangement` - the arrangement (`null` not permitted).

#### isEmpty

    public boolean isEmpty()

Returns `true` if there are no blocks in the container, and `false` otherwise.

Returns:
  A boolean.

#### getBlocks

    public java.util.List getBlocks()

Returns an unmodifiable list of the `Block` objects managed by this arrangement.

Returns:
  A list of blocks.

#### add

    public void add(Block block)

Adds a block to the container.

Parameters:
  `block` - the block (`null` permitted).

#### add

    public void add(Block block,
           java.lang.Object key)

Adds a block to the container.

Parameters:
  `block` - the block (`null` permitted).
  `key` - the key (`null` permitted).

#### clear

    public void clear()

Clears all the blocks from the container.

#### arrange

    public org.jfree.ui.Size2D arrange(java.awt.Graphics2D g2,
                              RectangleConstraint constraint)

Arranges the contents of the block, within the given constraints, and returns the block size.

Specified by:
  `arrange` in interface `Block`
Overrides:
  `arrange` in class `AbstractBlock`
Parameters:
  `g2` - the graphics device.
  `constraint` - the constraint (`null` not permitted).
Returns:
  The block size (in Java2D units, never `null`).

#### draw

    public void draw(java.awt.Graphics2D g2,
            java.awt.geom.Rectangle2D area)

Draws the container and all the blocks within it.

Specified by:
  `draw` in interface `org.jfree.ui.Drawable`
Parameters:
  `g2` - the graphics device.
  `area` - the area.

#### draw

    public java.lang.Object draw(java.awt.Graphics2D g2,
                        java.awt.geom.Rectangle2D area,
                        java.lang.Object params)

Draws the block within the specified area.

Specified by:
  `draw` in interface `Block`
Parameters:
  `g2` - the graphics device.
  `area` - the area.
  `params` - passed on to blocks within the container (`null` permitted).
Returns:
  An instance of `EntityBlockResult`, or `null`.

#### equals

    public boolean equals(java.lang.Object obj)

Tests this container for equality with an arbitrary object.

Overrides:
  `equals` in class `AbstractBlock`
Parameters:
  `obj` - the object (`null` permitted).
Returns:
  A boolean.

#### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

Returns a clone of the container.

Specified by:
  `clone` in interface `org.jfree.util.PublicCloneable`
Overrides:
  `clone` in class `AbstractBlock`
Returns:
  A clone.
Throws:
  `java.lang.CloneNotSupportedException` - if there is a problem cloning.