# Class LabelPlotter

java.lang.Object
uk.ac.starlink.ttools.plot2.layer.AbstractPlotter<LabelStyle>
uk.ac.starlink.ttools.plot2.layer.LabelPlotter

All Implemented Interfaces:
  `Plotter<LabelStyle>`

public abstract class LabelPlotter extends AbstractPlotter<LabelStyle>
Plotter that writes a text label at each graphics position.

Since:
  15 Feb 2013
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final LabelPlotter`
`AREA_PLANE_INSTANCE`
Instance of this class for use with Plane geometry Area positions.
`static final LabelPlotter`
`AREA_SKY_INSTANCE`
Instance of this class for use with Sky geometry Area positions.
`static final LabelPlotter`
`AREA_SPHERE_INSTANCE`
Instance of this class for use with Sphere geometry Area positions.
`static final CaptionerKeySet`
`CAPTIONER_KEYSET`
Config key set for configuring text font.
`static final ConfigKey<Integer>`
`CROWDLIMIT_KEY`
Config key to control max label count in spacing region.
`static final LabelPlotter`
`POINT_INSTANCE`
Instance of this class for use with point positions.
`static final ConfigKey<Integer>`
`SPACING_KEY`
Config key to control minimum pixel label spacing.
`static final ConfigKey<Integer>`
`XOFF_KEY`
Config key to control X pixel offset.
`static final ConfigKey<Integer>`
`YOFF_KEY`
Config key to control Y pixel offset.

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`LabelPlotter(CoordGroup cgrp, boolean isArea)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`protected abstract DataGeom`
`adjustGeom(DataGeom baseGeom)`
Provides a DataGeom to be used by the layer this form makes, given a DataGeom that characterises the plotting environment.
`PlotLayer`
`createLayer(DataGeom geom0, DataSpec dataSpec, LabelStyle style)`
Creates a PlotLayer based on the given geometry, data and style.
`LabelStyle`
`createStyle(ConfigMap config)`
Creates a style that can be used when creating a plot layer.
`String`
`getPlotterDescription()`
Returns an XML description of this plotter.
`ConfigKey<?>[]`
`getStyleKeys()`
Returns the configuration keys used to configure style for this plotter.

### Methods inherited from class AbstractPlotter

`getCoordGroup, getPlotterIcon, getPlotterName, getRangeStyleKey, hasReports`

### Methods inherited from class Object

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

## Field Details

### XOFF_KEY

public static final ConfigKey<Integer> XOFF_KEY
Config key to control X pixel offset.

### YOFF_KEY

public static final ConfigKey<Integer> YOFF_KEY
Config key to control Y pixel offset.

### SPACING_KEY

public static final ConfigKey<Integer> SPACING_KEY
Config key to control minimum pixel label spacing.

### CROWDLIMIT_KEY

public static final ConfigKey<Integer> CROWDLIMIT_KEY
Config key to control max label count in spacing region.

### CAPTIONER_KEYSET

public static final CaptionerKeySet CAPTIONER_KEYSET
Config key set for configuring text font.

### POINT_INSTANCE

public static final LabelPlotter POINT_INSTANCE
Instance of this class for use with point positions.

### AREA_PLANE_INSTANCE

public static final LabelPlotter AREA_PLANE_INSTANCE
Instance of this class for use with Plane geometry Area positions.

### AREA_SKY_INSTANCE

public static final LabelPlotter AREA_SKY_INSTANCE
Instance of this class for use with Sky geometry Area positions.

### AREA_SPHERE_INSTANCE

public static final LabelPlotter AREA_SPHERE_INSTANCE
Instance of this class for use with Sphere geometry Area positions.

## Constructor Details

### LabelPlotter

protected LabelPlotter(CoordGroup cgrp, boolean isArea)
Constructor.

Parameters:
  `cgrp` - coord group
  `isArea` - true for area coordinates, false for point coords

## Method Details

### adjustGeom

protected abstract DataGeom adjustGeom(DataGeom baseGeom)
Provides a DataGeom to be used by the layer this form makes, given a DataGeom that characterises the plotting environment. The output should be similar to the input, for instance implementing the same plotType-specific DataGeom subtype.

In most cases the supplied instance can be returned unchanged, but instances with special requirements may want to adjust how the data is interpreted.

Parameters:
  `baseGeom` - context geom
Returns:
  geom to use for data interpretation, the same or similar to the input

### getPlotterDescription

public String getPlotterDescription()
Description copied from interface: `Plotter`
Returns an XML description of this plotter.

Note: really this should appear at the LayerType level.

Returns:
  one or more <p> elements

### getStyleKeys

public ConfigKey<?>[] getStyleKeys()
Description copied from interface: `Plotter`
Returns the configuration keys used to configure style for this plotter. The keys in the return value are used in the map supplied to the `Plotter.createStyle(ConfigMap)` method.

Returns:
  keys used when creating a style for this plotter.

### createStyle

public LabelStyle createStyle(ConfigMap config) throws ConfigException
Description copied from interface: `Plotter`
Creates a style that can be used when creating a plot layer. The keys that are significant in the supplied config map are those returned by `Plotter.getStyleKeys()`. The return value can be used as input to `Plotter.createLayer(DataGeom, DataSpec, S)`.

Parameters:
  `config` - map of style configuration items
Returns:
  plotter-specific plot style
Throws:
  `ConfigException`

### createLayer

public PlotLayer createLayer(DataGeom geom0, DataSpec dataSpec, LabelStyle style)
Description copied from interface: `Plotter`
Creates a PlotLayer based on the given geometry, data and style.

The `style` parameter is the result of a call to `Plotter.createStyle(ConfigMap)`.

The `dataSpec` parameter must contain the coordinates defined by this plotter's CoordGroup.

The `pointDataGeom` parameter is only used if the `CoordGroup.getBasicPositionCount()` or `CoordGroup.getExtraPositionCount()` method from this plotter's CoordGroup return a non-zero value, otherwise the plot does not have point positions.

It is legal to supply null for any of the parameters; if insufficient data is supplied to generate a plot, then the method should return null.

Creating a layer should be cheap; layers may be created and not used.

Parameters:
  `geom0` - indicates base position coordinates and their mapping to points in the data space
  `dataSpec` - specifies the data required for the plot
  `style` - data style as obtained from `createStyle`
Returns:
  new plot layer, or null if no drawing will take place