Package uk.ac.starlink.topcat.plot2

# Interface AxesController<P,A>

All Superinterfaces:
  `Configger`

All Known Implementing Classes:
  `AbstractAxesController`, `DisjointAxesController`, `MatrixAxesController`, `SingleAdapterAxesController`

public interface AxesController<P,A> extends Configger
Object which coordinates user control of multi-zone plot axes.

Since:
  18 Aug 2023
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`void`
`addActionListener(ActionListener listener)`
Adds a listener notified when any of the controls changes.
`void`
`configureForLayers(LayerControl[] layerControls)`
Provides a hook for implementations to adjust their GUI state based on the layer controls which will be supplying layers for them to plot.
`Control[]`
`getStackControls()`
Returns all the controls for user configuration of this controller.
`List<ZoneController<P,A>>`
`getZoneControllers(uk.ac.starlink.ttools.plot2.Ganger<P,A> ganger)`
Returns a list of zone contollers, one for each zone defined by a supplied ganger.
`void`
`removeActionListener(ActionListener listener)`
Removes a listener previously added by addActionListener.

### Methods inherited from interface uk.ac.starlink.topcat.plot2.Configger

`getConfig`

## Method Details

### getZoneControllers

List<ZoneController<P,A>> getZoneControllers(uk.ac.starlink.ttools.plot2.Ganger<P,A> ganger)
Returns a list of zone contollers, one for each zone defined by a supplied ganger.

Parameters:
  `ganger` - ganger, assumed to be compatible with this controller
Returns:
  list of zone controllers, one for each zone defined by the ganger

### getStackControls

Control[] getStackControls()
Returns all the controls for user configuration of this controller. This includes the main control and possibly others.

Returns:
  user controls

### configureForLayers

void configureForLayers(LayerControl[] layerControls)
Provides a hook for implementations to adjust their GUI state based on the layer controls which will be supplying layers for them to plot.

Parameters:
  `layerControls` - layer controls expected to provide layers to be plotted on these axes

### addActionListener

void addActionListener(ActionListener listener)
Adds a listener notified when any of the controls changes.

Parameters:
  `listener` - listener to add

### removeActionListener

void removeActionListener(ActionListener listener)
Removes a listener previously added by addActionListener.

Parameters:
  `listener` - listener to remove