Package uk.ac.starlink.topcat.plot

# Class SurfaceZoomRegionList

java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<ZoomRegion>
uk.ac.starlink.topcat.plot.SurfaceZoomRegionList

All Implemented Interfaces:
  `Iterable<ZoomRegion>`, `Collection<ZoomRegion>`, `List<ZoomRegion>`

public abstract class SurfaceZoomRegionList extends AbstractList<ZoomRegion>
List of zoom regions for use with a `SurfacePlot`. The number of elements changes according to the current state of the plot, so don't copy it into an array and use that instead.

Since:
  2 Apr 2008
Author:
  Mark Taylor

## Field Summary

### Fields inherited from class java.util.AbstractList

`modCount`

## Constructor Summary

Constructors
Constructor
Description
`SurfaceZoomRegionList(uk.ac.starlink.ttools.plot.SurfacePlot plot)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`ZoomRegion`
`get(int index)`
`void`
`reconfigure()`
Configures this list appropriately for the current state of the plot.
`protected abstract void`
`requestZoom(double[][] bounds)`
Invoked when the user indicates by mouse gestures that a zoomed view is wanted.
`int`
`size()`

### Methods inherited from class java.util.AbstractList

`add, add, addAll, clear, equals, hashCode, indexOf, iterator, lastIndexOf, listIterator, listIterator, remove, removeRange, set, subList`

### Methods inherited from class java.util.AbstractCollection

`addAll, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString`

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

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

### Methods inherited from interface java.util.Collection

`parallelStream, removeIf, stream, toArray`

### Methods inherited from interface java.lang.Iterable

`forEach`

### Methods inherited from interface java.util.List

`addAll, contains, containsAll, isEmpty, remove, removeAll, replaceAll, retainAll, sort, spliterator, toArray, toArray`

## Constructor Details

### SurfaceZoomRegionList

public SurfaceZoomRegionList(uk.ac.starlink.ttools.plot.SurfacePlot plot)
Constructor.

Parameters:
  `plot` - plot for zooming

## Method Details

### requestZoom

protected abstract void requestZoom(double[][] bounds)
Invoked when the user indicates by mouse gestures that a zoomed view is wanted. The elements of the `bounds` array are 2-element `double[]` arrays giving (lower, upper) bounds of the range along each axis which is required. A null element indicates that no zooming along that axis is required. Boundary values are in data coordinates.

Parameters:
  `bounds` - zoom request details

### size

public int size()

Specified by:
  `size` in interface `Collection<ZoomRegion>`
Specified by:
  `size` in interface `List<ZoomRegion>`
Specified by:
  `size` in class `AbstractCollection<ZoomRegion>`

### get

public ZoomRegion get(int index)

Specified by:
  `get` in interface `List<ZoomRegion>`
Specified by:
  `get` in class `AbstractList<ZoomRegion>`

### reconfigure

public void reconfigure()
Configures this list appropriately for the current state of the plot. Should be called whenever plot geometry changes (including before first use).