# Class ColorConfigKey

java.lang.Object
uk.ac.starlink.ttools.plot2.config.ConfigKey<Color>
uk.ac.starlink.ttools.plot2.config.ChoiceConfigKey<Color>
uk.ac.starlink.ttools.plot2.config.ColorConfigKey

public class ColorConfigKey extends ChoiceConfigKey<Color>
ConfigKey for selecting colours. A null colour is optionally available, controlled by a toggle switch.

Some of the colours come from Paul Tol's colour scheme notes; see Paul Tol's Notes page and SRON/EPS/TN/09-002. The version of the Tech Note used here is dated 29 December 2012.

Since:
  9 Sep 2014
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Map<String,Color>`
`CLASSIC_COLORS`
`static final String`
`COLORNAME_BLACK`
Standard colour name for black.
`static final String`
`COLORNAME_GREY`
Standard colour name for grey.
`static final String`
`COLORNAME_LIGHTGREY`
Standard colour name for light grey.
`static final String`
`COLORNAME_RED`
Standard colour name for red.
`static final Map<String,Color>`
`SRON5_COLORS`
`static final Map<String,Color>`
`SRON7_COLORS`
`static final Map<String,Color>`
`SRONBRIGHT_COLORS`

## Constructor Summary

Constructors
Constructor
Description
`ColorConfigKey(ConfigMeta meta, String dfltName, boolean allowHide)`
Constructs a config key using the default colour option list.
`ColorConfigKey(ConfigMeta meta, String dfltName, boolean allowHide, Map<String,Color> colorOpts)`
Constructs a config key using a supplied colour option list.

## Method Summary

Modifier and Type
Method
Description
`static Map<String,Color>`
`createClassicColors()`
Returns the default plotting colours used by TOPCAT, at least in early versions.
`static ConfigMeta`
`createColorMeta(String shortName, String longName, String theItem)`
Returns a metadata object suitable for use with a ColorConfigKey.
`Specifier<Color>`
`createSpecifier()`
Constructs a graphical control with which the user can specify a suitable value for association with this key.
`static Map<String,Color>`
`createSron5Colors()`
Returns a group of colours using the second (5-colour) row of figure 13 in SRON/EPS/TN/09-002.
`static Map<String,Color>`
`createSron7Colors()`
Returns a group of colours using the fourth (7-colour) row of figure 13 in SRON/EPS/TN/09-002.
`static Map<String,Color>`
`createSronBrightColors()`
Returns a group of colours based on the "Alternative Colour Scheme" on Paul Tol's page, but not in the TechNode.
`static Color`
`decodeColorName(String sval)`
Turns a string into a colour by looking at known colour names or using RRGGBB syntax.
`Color`
`decodeString(String sval)`
Takes a string, and attempts to turn it into an object which may be a value for this key.
`static Color[]`
`getPlottingColors()`
Returns an array of the colour options suitable for plotting normal markers.
`String`
`stringifyValue(Color color)`
Takes an object which may be a value of this key, and attempts to turn it into a string for reporting purposes.

### Methods inherited from class ChoiceConfigKey

`addOption, getOptionMap, stringToValue, valueToString`

### Methods inherited from class ConfigKey

`cast, getDefaultValue, getMeta, getValueClass, toString`

### Methods inherited from class Object

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

## Field Details

### SRON5_COLORS

public static final Map<String,Color> SRON5_COLORS

### SRON7_COLORS

public static final Map<String,Color> SRON7_COLORS

### SRONBRIGHT_COLORS

public static final Map<String,Color> SRONBRIGHT_COLORS

### CLASSIC_COLORS

public static final Map<String,Color> CLASSIC_COLORS

### COLORNAME_RED

public static final String COLORNAME_RED
Standard colour name for red.

See Also:
  - Constant Field Values

### COLORNAME_BLACK

public static final String COLORNAME_BLACK
Standard colour name for black.

See Also:
  - Constant Field Values

### COLORNAME_GREY

public static final String COLORNAME_GREY
Standard colour name for grey.

See Also:
  - Constant Field Values

### COLORNAME_LIGHTGREY

public static final String COLORNAME_LIGHTGREY
Standard colour name for light grey.

See Also:
  - Constant Field Values

## Constructor Details

### ColorConfigKey

public ColorConfigKey(ConfigMeta meta, String dfltName, boolean allowHide)
Constructs a config key using the default colour option list.

The supplied `dfltName` names one of the colours in the default map. The static final `COLORNAME_*` members are guaranteed to be represented. If null is supplied, a sensible default (the first in the list) is used.

Parameters:
  `meta` - metadata
  `dfltName` - name of default colour, or null
  `allowHide` - true if hiding the colour, which results in a null value, is a legal option

### ColorConfigKey

public ColorConfigKey(ConfigMeta meta, String dfltName, boolean allowHide, Map<String,Color> colorOpts)
Constructs a config key using a supplied colour option list.

Parameters:
  `meta` - metadata
  `dfltName` - name of default colour; should be one of the keys in `colorOpts` or null
  `allowHide` - true if hiding the colour, which results in a null value, is a legal option
  `colorOpts` - name-> colour map

## Method Details

### decodeString

public Color decodeString(String sval)
Description copied from class: `ChoiceConfigKey`
Takes a string, and attempts to turn it into an object which may be a value for this key. If the string is not of a recognised form, null is returned.

This method should be the opposite of `ChoiceConfigKey.stringifyValue(T)`, but does not need to be consistent with `stringToValue` or `valueToString`.

Specified by:
  `decodeString` in class `ChoiceConfigKey<Color>`
Parameters:
  `sval` - string representation
Returns:
  typed object represented by sval, or null

### stringifyValue

public String stringifyValue(Color color)
Description copied from class: `ChoiceConfigKey`
Takes an object which may be a value of this key, and attempts to turn it into a string for reporting purposes.

This method should if possible be the opposite of `ChoiceConfigKey.decodeString(String)`, but does not need to be consistent with `stringToValue` or `valueToString`. If no round-trippable value is available, null should be returned.

Specified by:
  `stringifyValue` in class `ChoiceConfigKey<Color>`
Parameters:
  `color` - typed object
Returns:
  string representing object, or null

### createSpecifier

public Specifier<Color> createSpecifier()
Description copied from class: `ConfigKey`
Constructs a graphical control with which the user can specify a suitable value for association with this key.

Specified by:
  `createSpecifier` in class `ConfigKey<Color>`
Returns:
  new specifier

### createColorMeta

public static ConfigMeta createColorMeta(String shortName, String longName, String theItem)
Returns a metadata object suitable for use with a ColorConfigKey. The standard colour set is used.

Parameters:
  `shortName` - key name for use in command-line interface
  `longName` - key name for use in GUI
  `theItem` - description of the item to use in free-form text, for instance "the plot grid"
Returns:
  colour config metadata

### decodeColorName

public static Color decodeColorName(String sval)
Turns a string into a colour by looking at known colour names or using RRGGBB syntax.

Parameters:
  `sval` - string colour identifier
Returns:
  colour named by sval, or null if none is identified

### getPlottingColors

public static Color[] getPlottingColors()
Returns an array of the colour options suitable for plotting normal markers.

Returns:
  colour option array

### createClassicColors

public static Map<String,Color> createClassicColors()
Returns the default plotting colours used by TOPCAT, at least in early versions.

Returns:
  name->colour map

### createSron5Colors

public static Map<String,Color> createSron5Colors()
Returns a group of colours using the second (5-colour) row of figure 13 in SRON/EPS/TN/09-002.

Returns:
  name->colour map

### createSron7Colors

public static Map<String,Color> createSron7Colors()
Returns a group of colours using the fourth (7-colour) row of figure 13 in SRON/EPS/TN/09-002.

Returns:
  name->colour map

### createSronBrightColors

public static Map<String,Color> createSronBrightColors()
Returns a group of colours based on the "Alternative Colour Scheme" on Paul Tol's page, but not in the TechNode. Bright yellow is omitted on the grounds that it's too light.

Returns:
  name->colour map