# Class ProgressBarTableSink

java.lang.Object
uk.ac.starlink.table.gui.ProgressBarTableSink

All Implemented Interfaces:
  `TableSink`

public class ProgressBarTableSink extends Object implements TableSink
TableSink implementation which messages a progress bar with row updates.

Since:
  26 Aug 2010
Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`ProgressBarTableSink(JProgressBar progBar)`
Constructs a default sink.
`ProgressBarTableSink(JProgressBar progBar, int updateMillis, int showTableIndex)`
Constructs a sink with given parameters.

## Method Summary

Modifier and Type
Method
Description
`void`
`acceptMetadata(StarTable meta)`
Takes delivery of a row-less `StarTable` object which defines the metadata of the table to be transmitted.
`void`
`acceptRow(Object[] row)`
Takes delivery of one row of data.
`void`
`dispose()`
Ensure all resources are released and no further changes will be made to the progress bar.
`void`
`endRows()`
Signals that there are no more rows to be transmitted.
`JProgressBar`
`getProgressBar()`
Returns the progress bar used by this object.

### Methods inherited from class Object

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

## Constructor Details

### ProgressBarTableSink

public ProgressBarTableSink(JProgressBar progBar)
Constructs a default sink.

Parameters:
  `progBar` - progress bar to message

### ProgressBarTableSink

public ProgressBarTableSink(JProgressBar progBar, int updateMillis, int showTableIndex)
Constructs a sink with given parameters.

Parameters:
  `progBar` - progress bar to message
  `updateMillis` - time in milliseconds between progress bar updates
  `showTableIndex` - whether to prefix row count with table index in progress bar text: -1 for never, 0 for always, 1 for only 2nd and subsequent tables

## Method Details

### acceptMetadata

public void acceptMetadata(StarTable meta)
Description copied from interface: `TableSink`
Takes delivery of a row-less `StarTable` object which defines the metadata of the table to be transmitted. If the number of rows that will be transmitted via subsequent calls to `acceptRow` is known, this value should be made available as the row count of `meta` (`StarTable.getRowCount()`); if it is not known, the row count should be -1. However, this object should not attempt to read any of `meta`'s cell data.

The data to be transmitted in subsequent calls of `acceptRow` must match the metadata transmitted in this call in the same way that rows of a StarTable must match its own metadata (number and content clases of columns etc). If this sink cannot dispose of a table corresponding to `meta` then it may throw a TableFormatException - this may be the case if for instance `meta` has columns with types that this sink can't deal with.

Specified by:
  `acceptMetadata` in interface `TableSink`
Parameters:
  `meta` - table metadata object

### acceptRow

public void acceptRow(Object[] row)
Description copied from interface: `TableSink`
Takes delivery of one row of data. `row` is an array of objects comprising the contents of one row of the table being transmitted. The number and classes of the elements of `row` are described by the metadata object previously accepted.

Specified by:
  `acceptRow` in interface `TableSink`
Parameters:
  `row` - table data row

### endRows

public void endRows()
Description copied from interface: `TableSink`
Signals that there are no more rows to be transmitted.

Specified by:
  `endRows` in interface `TableSink`

### getProgressBar

public JProgressBar getProgressBar()
Returns the progress bar used by this object.

Returns:
  progress bar

### dispose

public void dispose()
Ensure all resources are released and no further changes will be made to the progress bar.