# Interface LayerControl

All Superinterfaces:
  `Control`

All Known Implementing Classes:
  `BasicCoordLayerControl, DatalessLayerControl, FormLayerControl, FunctionLayerControl, HealpixLayerControl, MultiFormLayerControl, SingleFormLayerControl, SingleZoneLayerControl, SpectrogramLayerControl`

public interface LayerControl extends Control
Control subinterface for controls that can contribute PlotLayers to the plot.

Since:
  13 Mar 2013
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`String`
`getCoordLabel(String userCoordName)`
Returns a text label associated with one of the user coords for this control, typically the name of the column or expression supplying the data.
`TopcatLayer[]`
`getLayers(uk.ac.starlink.ttools.plot2.Ganger<?,?> ganger)`
Returns the layers contributed by this control.
`uk.ac.starlink.ttools.plot2.LegendEntry[]`
`getLegendEntries()`
Returns legend entries associated with this control.
`uk.ac.starlink.ttools.plot2.Plotter<?>[]`
`getPlotters()`
Returns a list of the plotters that will be used by this control to create layers.
`TablesListComboBox`
`getTableSelector()`
Returns the selection widget for choosing which table this control is working with.
`uk.ac.starlink.ttools.plot2.config.Specifier<ZoneId>`
`getZoneSpecifier()`
Returns a specifier that determines which zone of a multi-zone plot this control's layers will be displayed in.
`boolean`
`hasLayers()`
Indicates whether this control will yield any layers in its current state.
`void`
`submitReports(Map<LayerId, uk.ac.starlink.ttools.plot2.ReportMap> reports, uk.ac.starlink.ttools.plot2.Ganger<?,?> ganger)`
Accepts report information generated by plotting layers.

### Methods inherited from interface Control

`addActionListener, getControlIcon, getControlLabel, getPanel, removeActionListener`

## Method Details

### getPlotters

uk.ac.starlink.ttools.plot2.Plotter<?>[] getPlotters()
Returns a list of the plotters that will be used by this control to create layers.

Returns:
  list of active plotters

### hasLayers

boolean hasLayers()
Indicates whether this control will yield any layers in its current state. It returns true if `getLayers` will return a non-empty array. False positives are best avoided, but permitted.

Returns:
  true if there is a non-zero number of layers

### getLayers

TopcatLayer[] getLayers(uk.ac.starlink.ttools.plot2.Ganger<?,?> ganger)
Returns the layers contributed by this control.

Parameters:
  `ganger` - ganger within which layers will be used
Returns:
  layers

### getLegendEntries

uk.ac.starlink.ttools.plot2.LegendEntry[] getLegendEntries()
Returns legend entries associated with this control.

Returns:
  legend entries

### submitReports

void submitReports(Map<LayerId, uk.ac.starlink.ttools.plot2.ReportMap> reports, uk.ac.starlink.ttools.plot2.Ganger<?,?> ganger)
Accepts report information generated by plotting layers. The submitted map may contain entries unrelated to this layer. Null map values are permitted, with the same meaning as an empty map.

Parameters:
  `reports` - per-layer plot reports for layers generated on behalf of this and possibly other controls
  `ganger` - ganger within which layers will be used

### getCoordLabel

String getCoordLabel(String userCoordName)
Returns a text label associated with one of the user coords for this control, typically the name of the column or expression supplying the data. Null may be returned if there's no good answer.

Parameters:
  `userCoordName` - name of one of the user value infos of an input coord for this control
Returns:
  text label associated with user coordinate

### getZoneSpecifier

uk.ac.starlink.ttools.plot2.config.Specifier<ZoneId> getZoneSpecifier()
Returns a specifier that determines which zone of a multi-zone plot this control's layers will be displayed in. If this control is known to be used in a single-zone context, null should be returned.

Returns:
  zone id specifier, or null

### getTableSelector

TablesListComboBox getTableSelector()
Returns the selection widget for choosing which table this control is working with. If this control does not use a table, null is returned. The assumption is (currently) that a given control uses a maximum of one table.

Returns:
  table selector, or null