# Interface ControlManager

All Known Implementing Classes:
  `GroupControlManager`

public interface ControlManager
Abstracts the provision of plotting controls for the plotting GUI.

Since:
  15 Mar 2013
Author:
  Mark Taylor

## 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.

## Method Details

### getStackActions

Action[] getStackActions()
Returns a list of actions which can be performed to add controls to the stack.

Returns:
  list of stack actions

### createDefaultControl

Control createDefaultControl(TopcatModel tcModel)
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.

Parameters:
  `tcModel` - initial table
Returns:
  some control that will generate an example plot using table data

### addLayer

void addLayer(LayerCommand<?> lcmd) throws LayerException
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.

Parameters:
  `lcmd` - specifies the layer to add
Throws:
  `LayerException` - if the layer can't be added