# Class ChooserColorSpecifier

java.lang.Object
uk.ac.starlink.ttools.plot2.config.SpecifierPanel<Color>
uk.ac.starlink.ttools.plot2.config.ChooserColorSpecifier

All Implemented Interfaces:
  `Specifier<Color>`

public class ChooserColorSpecifier extends SpecifierPanel<Color>
SpecifierPanel subclass that uses a JColorChooser to specify a colour. The color chooser is somewhat customised, including by installing a custom Palettes chooser panel, and the whole thing is displayed in a popup menu rather than a dialogue or frame, since that more closely approximates what you get from other SpecifierPanel components (such as a JComboBox).

Since:
  27 Jan 2017
Author:
  Mark Taylor

## Constructor Summary

Constructors
Constructor
Description
`ChooserColorSpecifier(Color dfltColor)`
Constructs a specifier based on a given default colour.
`ChooserColorSpecifier(JColorChooser chooser)`
Constructs a specifier based on a given JColorChooser.

## Method Summary

Modifier and Type
Method
Description
`protected JComponent`
`createComponent()`
Abstract method called lazily during `getComponent` to obtain the graphical component used by this specifier.
`static Map<String,Color[]>`
`createPaletteMap()`
Creates some standard named colour lists.
`JColorChooser`
`getColorChooser()`
Returns this specifier's JColorChooser.
`Color`
`getSpecifiedValue()`
Returns the typed value currently specified by the graphical component.
`void`
`setSpecifiedValue(Color color)`
Sets the typed value represented by the graphical component.
`void`
`submitReport(ReportMap report)`
Accepts information about a completed plot that was drawn with input from this specifier.

### Methods inherited from class SpecifierPanel

`addActionListener, fireAction, getActionForwarder, getChangeForwarder, getComponent, isXFill, removeActionListener`

### Methods inherited from class Object

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

## Constructor Details

### ChooserColorSpecifier

public ChooserColorSpecifier(Color dfltColor)
Constructs a specifier based on a given default colour.

Parameters:
  `dfltColor` - initial colour

### ChooserColorSpecifier

public ChooserColorSpecifier(JColorChooser chooser)
Constructs a specifier based on a given JColorChooser.

Parameters:
  `chooser` - chooser component

## Method Details

### createComponent

protected JComponent createComponent()
Description copied from class: `SpecifierPanel`
Abstract method called lazily during `getComponent` to obtain the graphical component used by this specifier. It will be called a maximum of once. It is not necessary that the component actually be created in this method, for instance it may be created at construction time if that's more convenient.

Specified by:
  `createComponent` in class `SpecifierPanel<Color>`
Returns:
  graphical component

### getSpecifiedValue

public Color getSpecifiedValue()
Description copied from interface: `Specifier`
Returns the typed value currently specified by the graphical component.

Returns:
  specified value

### setSpecifiedValue

public void setSpecifiedValue(Color color)
Description copied from interface: `Specifier`
Sets the typed value represented by the graphical component. Calling this method ought to make it clear to the user what value it is set at; in any case a subsequent call of `getSpecifiedValue` should yield the same result.

However if a value is set which is of the correct type but cannot be represented by this specifier, results are unpredictable.

Parameters:
  `color` - new value

### submitReport

public void submitReport(ReportMap report)
Description copied from interface: `Specifier`
Accepts information about a completed plot that was drawn with input from this specifier. In many cases, the implementation of this method will be a no-op, but it gives this object a chance to update its state or its component's appearance based on the way the plot was actually drawn, which may provide information not otherwise available to this object.

Parameters:
  `report` - report of a plot partially specified by this object

### getColorChooser

public JColorChooser getColorChooser()
Returns this specifier's JColorChooser.

Returns:
  color chooser

### createPaletteMap

public static Map<String,Color[]> createPaletteMap()
Creates some standard named colour lists. The sequences of some of these have been somewhat adjusted so that the colours align between different palettes.

Returns:
  paletteName->colourList map