Package uk.ac.starlink.topcat.plot2

# Class GroupControlManager<P,A>

java.lang.Object
uk.ac.starlink.topcat.plot2.GroupControlManager<P,A>

All Implemented Interfaces:
  `ControlManager`

public class GroupControlManager<P,A> extends Object implements ControlManager
Control manager that uses FormLayerControls to provide panels that allow you to enter the position values once for a given table and then go to other tabs in the control to customise the layers generated.

Since:
  15 Mar 2013
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`PLOTTERS_PROP`
System property that may contain a colon-separated list of Plotter implementation class names (with no-arg constructors) to plug in at runtime.

## Constructor Summary

Constructors
Constructor
Description
`GroupControlManager(ControlStack stack, uk.ac.starlink.ttools.plot2.PlotType<P,A> plotType, PlotTypeGui<P,A> plotTypeGui, ListModel<TopcatModel> tablesModel, ZoneFactory zfact, MultiConfigger baseConfigger, TopcatListener tcListener)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`void`
`addLayer(LayerCommand<?> lcmd)`
Adds a layer to the plot as specified by the given layer command.
`Control`
`createDefaultControl(TopcatModel tcModel)`
Returns a suitable control to add to the stack for a given table.
`Action[]`
`getStackActions()`
Returns a list of actions which can be performed to add controls to the stack.

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

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

## Field Details

### PLOTTERS_PROP

public static final String PLOTTERS_PROP
System property that may contain a colon-separated list of Plotter implementation class names (with no-arg constructors) to plug in at runtime. This is a bit scrappy - they will show up in all plot types, which probably is not appropriate.

See Also:
  - Constant Field Values

## Constructor Details

### GroupControlManager

public GroupControlManager(ControlStack stack, uk.ac.starlink.ttools.plot2.PlotType<P,A> plotType, PlotTypeGui<P,A> plotTypeGui, ListModel<TopcatModel> tablesModel, ZoneFactory zfact, MultiConfigger baseConfigger, TopcatListener tcListener)
Constructor.

Parameters:
  `stack` - control stack which this object will manage
  `plotType` - defines basic plot characteristics
  `plotTypeGui` - defines GUI-specific plot characteristics
  `tablesModel` - list of available tables
  `zfact` - zone id factory
  `baseConfigger` - configuration source for some global config options
  `tcListener` - listener for TopcatEvents; this manager will arrange for it to listen to whatever is the currently selected TopcatModel

## Method Details

### getStackActions

public Action[] getStackActions()
Description copied from interface: `ControlManager`
Returns a list of actions which can be performed to add controls to the stack.

Specified by:
  `getStackActions` in interface `ControlManager`
Returns:
  list of stack actions

### createDefaultControl

public Control createDefaultControl(TopcatModel tcModel)
Description copied from interface: `ControlManager`
Returns a suitable control to add to the stack for a given table. It's useful to have something like this so that when the plot window is first shown, it displays some data rather than none. Even if the actual plot is not very meaningful, it gives the user a chance to get started with the GUI with a minimum of thought.

Specified by:
  `createDefaultControl` in interface `ControlManager`
Parameters:
  `tcModel` - initial table
Returns:
  some control that will generate an example plot using table data

### addLayer

public void addLayer(LayerCommand<?> lcmd) throws LayerException
Description copied from interface: `ControlManager`
Adds a layer to the plot as specified by the given layer command. Ideally, appropriate changes should be made to the GUI as well, so the effect is just as if the user had added the layer by hand.

Specified by:
  `addLayer` in interface `ControlManager`
Parameters:
  `lcmd` - specifies the layer to add
Throws:
  `LayerException` - if the layer can't be added