org.jfree.data.category

## Class SlidingCategoryDataset

- java.lang.Object
- - org.jfree.data.general.AbstractDataset
  - - org.jfree.data.category.SlidingCategoryDataset

All Implemented Interfaces:
  java.io.ObjectInputValidation, java.io.Serializable, java.lang.Cloneable, CategoryDataset, Dataset, KeyedValues2D, Values2D

    public class SlidingCategoryDataset
    extends AbstractDataset
    implements CategoryDataset

A `CategoryDataset` implementation that presents a subset of the categories in an underlying dataset. The index of the first "visible" category can be modified, which provides a means of "sliding" through the categories in the underlying dataset.

Since:
  1.0.10
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`SlidingCategoryDataset(CategoryDataset underlying, int firstColumn, int maxColumns)` Creates a new instance.

### Method Summary

Methods
`java.lang.Object` `clone()` Returns an independent copy of the dataset.
`boolean` `equals(java.lang.Object obj)` Tests this `SlidingCategoryDataset` for equality with an arbitrary object.
`int` `getColumnCount()` Returns the number of columns in the table.
`int` `getColumnIndex(java.lang.Comparable key)` Returns the index for the specified column key.
`java.lang.Comparable` `getColumnKey(int column)` Returns the column key for a given index.
`java.util.List` `getColumnKeys()` Returns the column keys.
`int` `getFirstCategoryIndex()` Returns the index of the first visible category.
`int` `getMaximumCategoryCount()` Returns the maximum category count.
`int` `getRowCount()` Returns the number of rows in the table.
`int` `getRowIndex(java.lang.Comparable key)` Returns the row index for a given key.
`java.lang.Comparable` `getRowKey(int row)` Returns the row key for a given index.
`java.util.List` `getRowKeys()` Returns the row keys.
`CategoryDataset` `getUnderlyingDataset()` Returns the underlying dataset that was supplied to the constructor.
`java.lang.Number` `getValue(java.lang.Comparable rowKey, java.lang.Comparable columnKey)` Returns the value for a pair of keys.
`java.lang.Number` `getValue(int row, int column)` Returns a value from the table.
`void` `setFirstCategoryIndex(int first)` Sets the index of the first category that should be used from the underlying dataset, and sends a `DatasetChangeEvent` to all registered listeners.
`void` `setMaximumCategoryCount(int max)` Sets the maximum category count and sends a `DatasetChangeEvent` to all registered listeners.

### Methods inherited from class org.jfree.data.general.AbstractDataset

`addChangeListener, fireDatasetChanged, getGroup, hasListener, notifyListeners, removeChangeListener, setGroup, validateObject`

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

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

### Methods inherited from interface org.jfree.data.general.Dataset

`addChangeListener, getGroup, removeChangeListener, setGroup`

### Constructor Detail

#### SlidingCategoryDataset

    public SlidingCategoryDataset(CategoryDataset underlying,
                          int firstColumn,
                          int maxColumns)

Creates a new instance.

Parameters:
  `underlying` - the underlying dataset (`null` not permitted).
  `firstColumn` - the index of the first visible column from the underlying dataset.
  `maxColumns` - the maximumColumnCount.

### Method Detail

#### getUnderlyingDataset

    public CategoryDataset getUnderlyingDataset()

Returns the underlying dataset that was supplied to the constructor.

Returns:
  The underlying dataset (never `null`).

#### getFirstCategoryIndex

    public int getFirstCategoryIndex()

Returns the index of the first visible category.

Returns:
  The index.
See Also:
  `setFirstCategoryIndex(int)`

#### setFirstCategoryIndex

    public void setFirstCategoryIndex(int first)

Sets the index of the first category that should be used from the underlying dataset, and sends a `DatasetChangeEvent` to all registered listeners.

Parameters:
  `first` - the index.
See Also:
  `getFirstCategoryIndex()`

#### getMaximumCategoryCount

    public int getMaximumCategoryCount()

Returns the maximum category count.

Returns:
  The maximum category count.
See Also:
  `setMaximumCategoryCount(int)`

#### setMaximumCategoryCount

    public void setMaximumCategoryCount(int max)

Sets the maximum category count and sends a `DatasetChangeEvent` to all registered listeners.

Parameters:
  `max` - the maximum.
See Also:
  `getMaximumCategoryCount()`

#### getColumnIndex

    public int getColumnIndex(java.lang.Comparable key)

Returns the index for the specified column key.

Specified by:
  `getColumnIndex` in interface `KeyedValues2D`
Parameters:
  `key` - the key.
Returns:
  The column index, or -1 if the key is not recognised.

#### getColumnKey

    public java.lang.Comparable getColumnKey(int column)

Returns the column key for a given index.

Specified by:
  `getColumnKey` in interface `KeyedValues2D`
Parameters:
  `column` - the column index (zero-based).
Returns:
  The column key.
Throws:
  `java.lang.IndexOutOfBoundsException` - if `row` is out of bounds.

#### getColumnKeys

    public java.util.List getColumnKeys()

Returns the column keys.

Specified by:
  `getColumnKeys` in interface `KeyedValues2D`
Returns:
  The keys.
See Also:
  `getColumnKey(int)`

#### getRowIndex

    public int getRowIndex(java.lang.Comparable key)

Returns the row index for a given key.

Specified by:
  `getRowIndex` in interface `KeyedValues2D`
Parameters:
  `key` - the row key.
Returns:
  The row index, or `-1` if the key is unrecognised.

#### getRowKey

    public java.lang.Comparable getRowKey(int row)

Returns the row key for a given index.

Specified by:
  `getRowKey` in interface `KeyedValues2D`
Parameters:
  `row` - the row index (zero-based).
Returns:
  The row key.
Throws:
  `java.lang.IndexOutOfBoundsException` - if `row` is out of bounds.

#### getRowKeys

    public java.util.List getRowKeys()

Returns the row keys.

Specified by:
  `getRowKeys` in interface `KeyedValues2D`
Returns:
  The keys.

#### getValue

    public java.lang.Number getValue(java.lang.Comparable rowKey,
                            java.lang.Comparable columnKey)

Returns the value for a pair of keys.

Specified by:
  `getValue` in interface `KeyedValues2D`
Parameters:
  `rowKey` - the row key (`null` not permitted).
  `columnKey` - the column key (`null` not permitted).
Returns:
  The value (possibly `null`).
Throws:
  `UnknownKeyException` - if either key is not defined in the dataset.

#### getColumnCount

    public int getColumnCount()

Returns the number of columns in the table.

Specified by:
  `getColumnCount` in interface `Values2D`
Returns:
  The column count.

#### getRowCount

    public int getRowCount()

Returns the number of rows in the table.

Specified by:
  `getRowCount` in interface `Values2D`
Returns:
  The row count.

#### getValue

    public java.lang.Number getValue(int row,
                            int column)

Returns a value from the table.

Specified by:
  `getValue` in interface `Values2D`
Parameters:
  `row` - the row index (zero-based).
  `column` - the column index (zero-based).
Returns:
  The value (possibly `null`).

#### equals

    public boolean equals(java.lang.Object obj)

Tests this `SlidingCategoryDataset` for equality with an arbitrary object.

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

#### clone

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

Returns an independent copy of the dataset. Note that:

- the underlying dataset is only cloned if it implements the `PublicCloneable` interface;
- the listeners registered with this dataset are not carried over to the cloned dataset.

Overrides:
  `clone` in class `AbstractDataset`
Returns:
  An independent copy of the dataset.
Throws:
  `java.lang.CloneNotSupportedException` - if the dataset cannot be cloned for any reason.