Package uk.ac.starlink.topcat.plot2

# Interface PlotTypeGui<P,A>

public interface PlotTypeGui<P,A>
Provides PlotType-specific aspects of the GUI, used by the generic PlotWindow GUI.

Since:
  12 Mar 2013
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`PositionCoordPanel`
`createAreaCoordPanel()`
Returns a user panel for entering Area coordinates.
`AxesController<P,A>`
`createAxesController()`
Returns a user control for axis configuration.
`ZoneLayerManager`
`createLayerManager(FormLayerControl flc)`
Returns a ZoneLayerManager for a given FormLayerControl.
`PositionCoordPanel`
`createPositionCoordPanel(int npos)`
Returns a user panel for entering basic standard data positions.
`ZoneFactory`
`createZoneFactory()`
Returns a new zone ID factory for use with this plot.
`CartesianRanger`
`getCartesianRanger()`
Returns an object that can characterise surfaces used by this plot type as hypercubes in data coordinate space.
`FigureMode[]`
`getFigureModes()`
Returns a list of figure drawing modes that can be used for graphically marking out shapes on the plot surface.
`String`
`getNavigatorHelpId()`
Returns the help ID describing the navigation actions for this plot.
`boolean`
`hasExtraHistogram()`
True if a histogram is to be treated in some sense like a scatter plot.
`boolean`
`hasPositions()`
Indicates whether this plot type supports selectable point positions.

## Method Details

### createAxesController

AxesController<P,A> createAxesController()
Returns a user control for axis configuration.

Returns:
  new axis control for this plot type

### createPositionCoordPanel

PositionCoordPanel createPositionCoordPanel(int npos)
Returns a user panel for entering basic standard data positions.

Parameters:
  `npos` - number of groups of positional coordinates for entry
Returns:
  new position entry panel for this plot type

### createAreaCoordPanel

PositionCoordPanel createAreaCoordPanel()
Returns a user panel for entering Area coordinates. If this plot type does not support Area coordinates, an UnsupportedOperationException may be thrown.

Returns:
  new area position entry panel for this plot type
Throws:
  `UnsupportedOperationException` - if plot type doesn't support area coordinates

### hasPositions

boolean hasPositions()
Indicates whether this plot type supports selectable point positions. Normally the return is true, but if this plot type never plots points that can be identified by a screen X,Y position, return false.

Returns:
  false iff this plot type never supports selectable points

### getFigureModes

FigureMode[] getFigureModes()
Returns a list of figure drawing modes that can be used for graphically marking out shapes on the plot surface.

Returns:
  available figure modes; may be empty

### createZoneFactory

ZoneFactory createZoneFactory()
Returns a new zone ID factory for use with this plot. This determines how zone selection for multi-zone plots is done. A new instance should be acquired for each plot window.

Returns:
  zone id factory

### createLayerManager

ZoneLayerManager createLayerManager(FormLayerControl flc)
Returns a ZoneLayerManager for a given FormLayerControl.

Parameters:
  `flc` - form layer control
Returns:
  zone layer manager

### getCartesianRanger

CartesianRanger getCartesianRanger()
Returns an object that can characterise surfaces used by this plot type as hypercubes in data coordinate space. If it can't be done, null is returned.

Returns:
  Cartesian ranger for this plot type, or null

### hasExtraHistogram

boolean hasExtraHistogram()
True if a histogram is to be treated in some sense like a scatter plot. This is a hacky intervention to accommodate matrix plots which can generate both scatter plots and histograms from the same input coordinates. In most cases the return value will be false.

Returns:
  true for plots which treat histograms a bit like scatter plots

### getNavigatorHelpId

String getNavigatorHelpId()
Returns the help ID describing the navigation actions for this plot.

Returns:
  navigator help id