uk.ac.starlink.table.gui

## Class ProgressBarTableSink

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

- All Implemented Interfaces:
    TableSink

      public class ProgressBarTableSink
      extends java.lang.Object
      implements TableSink

  TableSink implementation which messages a progress bar with row updates.
  Since:
    26 Aug 2010

- - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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(java.lang.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.
    `javax.swing.JProgressBar` | `getProgressBar()` Returns the progress bar used by this object.

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

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

- - ### Constructor Detail

    - #### ProgressBarTableSink

          public ProgressBarTableSink(javax.swing.JProgressBar progBar)

      Constructs a default sink.
      Parameters:
        `progBar` - progress bar to message

    - #### ProgressBarTableSink

          public ProgressBarTableSink(javax.swing.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 Detail

    - #### 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(java.lang.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 javax.swing.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.