Module org.jfree.chart3d
Package org.jfree.chart3d.table

# Class FlowElement

java.lang.Object
org.jfree.chart3d.table.AbstractTableElement
org.jfree.chart3d.table.FlowElement

All Implemented Interfaces:
  `Serializable`, `ContainerElement`, `TableElement`

public class FlowElement extends AbstractTableElement implements ContainerElement, Serializable
A table element that displays a list of sub-elements in a flow layout.
NOTE: This class is serializable, but the serialization format is subject to change in future releases and should not be relied upon for persisting instances of this class.

See Also:
  - Serialized Form

## Field Summary

### Fields inherited from interface org.jfree.chart3d.table.TableElement

`CLASS`

## Constructor Summary

Constructors
Constructor
Description
`FlowElement()`
Creates a new instance (equivalent to `new FlowElement(HAlign.CENTER, 2)`).
`FlowElement(HAlign alignment, int hgap)`
Creates a new instance with the specified attributes.

## Method Summary

Modifier and Type
Method
Description
`void`
`addElement(TableElement element)`
Adds a sub-element to the list.
`void`
`draw(Graphics2D g2, Rectangle2D bounds)`
Draws the element within the specified bounds.
`void`
`draw(Graphics2D g2, Rectangle2D bounds, TableElementOnDraw onDrawHandler)`
Draws the element within the specified bounds.
`boolean`
`equals(Object obj)`
Tests this element for equality with an arbitrary object.
`List<TableElement>`
`getElements()`
Returns a (new) list containing the elements in this flow layout.
`int`
`getHGap()`
Returns the horizontal gap between elements, specified in Java2D units.
`HAlign`
`getHorizontalAlignment()`
Returns the horizontal alignment of items within rows.
`List<Rectangle2D>`
`layoutElements(Graphics2D g2, Rectangle2D bounds, Map<String,Object> constraints)`
Calculates the layout of the elements for the given bounds and constraints.
`Dimension2D`
`preferredSize(Graphics2D g2, Rectangle2D bounds, Map<String,Object> constraints)`
Returns the preferred size of the element (including insets).
`void`
`receive(TableElementVisitor visitor)`
Receives a visitor.
`void`
`setHGap(int gap)`
Sets the horizontal gap between elements.
`void`
`setHorizontalAlignment(HAlign alignment)`
Sets the horizontal alignment.

### Methods inherited from class org.jfree.chart3d.table.AbstractTableElement

`getBackground, getInsets, getProperty, getRefPoint, getTag, preferredSize, setBackground, setBackgroundColor, setInsets, setProperty, setRefPoint, setTag`

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

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

### Methods inherited from interface org.jfree.chart3d.table.TableElement

`getProperty, getRefPoint, preferredSize, setProperty`

## Constructor Details

### FlowElement

public FlowElement()
Creates a new instance (equivalent to `new FlowElement(HAlign.CENTER, 2)`).

### FlowElement

public FlowElement(HAlign alignment, int hgap)
Creates a new instance with the specified attributes.

Parameters:
  `alignment` - the horizontal alignment of the elements within each row (`null` not permitted).
  `hgap` - the gap between elements.
Since:
  1.1

## Method Details

### getHGap

public int getHGap()
Returns the horizontal gap between elements, specified in Java2D units. The default value is `2`.

Returns:
  The horizontal gap.

### setHGap

public void setHGap(int gap)
Sets the horizontal gap between elements.

Parameters:
  `gap` - the gap (in Java2D units).

### getHorizontalAlignment

public HAlign getHorizontalAlignment()
Returns the horizontal alignment of items within rows. The default value is `HAlign.CENTER`.

Returns:
  The horizontal alignment (never `null`).
Since:
  1.1

### setHorizontalAlignment

public void setHorizontalAlignment(HAlign alignment)
Sets the horizontal alignment.

Parameters:
  `alignment` - the alignment (`null` not permitted).
Since:
  1.1

### getElements

public List<TableElement> getElements()
Returns a (new) list containing the elements in this flow layout.

Returns:
  A list containing the elements (possibly empty, but never `null`).

### addElement

public void addElement(TableElement element)
Adds a sub-element to the list.

Specified by:
  `addElement` in interface `ContainerElement`
Parameters:
  `element` - the element (`null` not permitted).

### receive

public void receive(TableElementVisitor visitor)
Receives a visitor. The implementation ensures that the vistor visits all the elements belonging to the flow.

Specified by:
  `receive` in interface `TableElement`
Parameters:
  `visitor` - the visitor (`null` not permitted).
Since:
  1.2

### preferredSize

public Dimension2D preferredSize(Graphics2D g2, Rectangle2D bounds, Map<String,Object> constraints)
Returns the preferred size of the element (including insets).

Specified by:
  `preferredSize` in interface `TableElement`
Specified by:
  `preferredSize` in class `AbstractTableElement`
Parameters:
  `g2` - the graphics target.
  `bounds` - the bounds.
  `constraints` - the constraints (ignored for now).
Returns:
  The preferred size.

### layoutElements

public List<Rectangle2D> layoutElements(Graphics2D g2, Rectangle2D bounds, Map<String,Object> constraints)
Calculates the layout of the elements for the given bounds and constraints.

Specified by:
  `layoutElements` in interface `TableElement`
Parameters:
  `g2` - the graphics target (`null` not permitted).
  `bounds` - the bounds (`null` not permitted).
  `constraints` - the constraints (not used here).
Returns:
  A list of positions for the sub-elements.

### draw

public void draw(Graphics2D g2, Rectangle2D bounds)
Draws the element within the specified bounds.

Specified by:
  `draw` in interface `TableElement`
Parameters:
  `g2` - the graphics target (`null` not permitted).
  `bounds` - the bounds (`null` not permitted).

### draw

public void draw(Graphics2D g2, Rectangle2D bounds, TableElementOnDraw onDrawHandler)
Draws the element within the specified bounds.

Specified by:
  `draw` in interface `TableElement`
Parameters:
  `g2` - the graphics target (`null` not permitted).
  `bounds` - the bounds (`null` not permitted).
  `onDrawHandler` - an object that will receive notification before and after the element is drawn (`null` permitted).
Since:
  1.3

### equals

public boolean equals(Object obj)
Tests this element for equality with an arbitrary object.

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