Package uk.ac.starlink.topcat.plot2

## Class LayerControlAction

- java.lang.Object
- - javax.swing.AbstractAction
  - - uk.ac.starlink.topcat.BasicAction
    - - uk.ac.starlink.topcat.plot2.LayerControlAction

- All Implemented Interfaces:
    `java.awt.event.ActionListener`, `java.io.Serializable`, `java.lang.Cloneable`, `java.util.EventListener`, `javax.swing.Action`

      public abstract class LayerControlAction
      extends BasicAction

  Action for adding a layer control to the plot stack.
  Since:
    25 Jul 2013
  Author:
    Mark Taylor
  See Also:
    Serialized Form

- - ### Field Summary

    - ### Fields inherited from class javax.swing.AbstractAction

      `changeSupport, enabled`

    - ### Fields inherited from interface javax.swing.Action

      `ACCELERATOR_KEY, ACTION_COMMAND_KEY, DEFAULT, DISPLAYED_MNEMONIC_INDEX_KEY, LARGE_ICON_KEY, LONG_DESCRIPTION, MNEMONIC_KEY, NAME, SELECTED_KEY, SHORT_DESCRIPTION, SMALL_ICON`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LayerControlAction​(java.lang.String name, javax.swing.Icon layerIcon, java.lang.String descrip, uk.ac.starlink.ttools.plot2.Plotter<?> plotter, ControlStack stack)` | Constructs a LayerControlAction from name, icon and description.
    `LayerControlAction​(uk.ac.starlink.ttools.plot2.Plotter<?> plotter, ControlStack stack)` | Constructs a LayerControlAction from a Plotter.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `actionPerformed​(java.awt.event.ActionEvent evt)` |
    `abstract LayerControl` | `createLayerControl()` | Creates a layer control for this action's plotter.
    `static LayerControlAction` | `createPlotterAction​(uk.ac.starlink.ttools.plot2.Plotter<?> plotter, ControlStack stack, javax.swing.ListModel<TopcatModel> tablesModel, ZoneFactory zfact, NextSupplier nextSupplier, TopcatListener tcListener, MultiConfigger baseConfigger)` | Attempts to return an instance of this class corresponding to a given plotter.
    `uk.ac.starlink.ttools.plot2.Plotter<?>` | `getPlotter()` | Returns the single plotter associated with this action, if any.

    - ### Methods inherited from class uk.ac.starlink.topcat.BasicAction

      `getEventWindow`

    - ### Methods inherited from class javax.swing.AbstractAction

      `addPropertyChangeListener, clone, firePropertyChange, getKeys, getPropertyChangeListeners, getValue, isEnabled, putValue, removePropertyChangeListener, setEnabled`

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

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

    - ### Methods inherited from interface javax.swing.Action

      `accept`

- - ### Constructor Detail

    - #### LayerControlAction

          public LayerControlAction​(java.lang.String name,
                                    javax.swing.Icon layerIcon,
                                    java.lang.String descrip,
                                    uk.ac.starlink.ttools.plot2.Plotter<?> plotter,
                                    ControlStack stack)

      Constructs a LayerControlAction from name, icon and description.
      Parameters:
        `name` - action name
        `layerIcon` - icon representing the type of layer the action will add; it may get doctored to generate the icon for this action
        `descrip` - action description
        `plotter` - single plotter associated with this layer control, may be null
        `stack` - plot stack

    - #### LayerControlAction

          public LayerControlAction​(uk.ac.starlink.ttools.plot2.Plotter<?> plotter,
                                    ControlStack stack)

      Constructs a LayerControlAction from a Plotter.
      Parameters:
        `plotter` - plotter which will be added to the stack
        `stack` - plot stack

  - ### Method Detail

    - #### createLayerControl

          public abstract LayerControl createLayerControl()

      Creates a layer control for this action's plotter.
      Returns:
        new layer control

    - #### actionPerformed

          public void actionPerformed​(java.awt.event.ActionEvent evt)

    - #### getPlotter

          public uk.ac.starlink.ttools.plot2.Plotter<?> getPlotter()

      Returns the single plotter associated with this action, if any. For instances with no single plotter, null is returned.
      Returns:
        plotter for this action, or null

    - #### createPlotterAction

          public static LayerControlAction createPlotterAction​(uk.ac.starlink.ttools.plot2.Plotter<?> plotter,
                                                               ControlStack stack,
                                                               javax.swing.ListModel<TopcatModel> tablesModel,
                                                               ZoneFactory zfact,
                                                               NextSupplier nextSupplier,
                                                               TopcatListener tcListener,
                                                               MultiConfigger baseConfigger)

      Attempts to return an instance of this class corresponding to a given plotter. If no suitable implementation is available, null is returned.
      Parameters:
        `plotter` - plotter to provide an action for
        `stack` - stack to which controls are to be added
        `tablesModel` - list of available tables
        `zfact` - zone id factory
        `nextSupplier` - manages global dispensing for some style options
        `tcListener` - listener for TopcatEvents
        `baseConfigger` - configuration source for some global config options
      Returns:
        new action to add plotter control to stack, or null