diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/CubeAxisController.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/CubeAxisController.java index f252253e0d..b8065caa8a 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/CubeAxisController.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/CubeAxisController.java @@ -146,7 +146,8 @@ protected void doSubmit( ActionEvent evt ) { /* Font config tab. */ mainControl.addSpecifierTab( "Font", - new ConfigSpecifier( StyleKeys.getCaptionerKeys() ) ); + new ConfigSpecifier( StyleKeys.CAPTIONER + .getKeys() ) ); assert assertHasKeys( surfFact.getProfileKeys() ); } diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/HistogramAxisController.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/HistogramAxisController.java index 83f08dd435..45775f82e3 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/HistogramAxisController.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/HistogramAxisController.java @@ -83,7 +83,8 @@ public HistogramAxisController( ControlStack stack ) { /* Font tab. */ mainControl.addSpecifierTab( "Font", - new ConfigSpecifier( StyleKeys.getCaptionerKeys() ) ); + new ConfigSpecifier( StyleKeys.CAPTIONER + .getKeys() ) ); /* Bars control. */ diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/LegendControl.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/LegendControl.java index baa1038b91..7d9daeb2b7 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/LegendControl.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/LegendControl.java @@ -149,7 +149,7 @@ public Icon getLegendIcon() { } else { Captioner captioner = - StyleKeys.createCaptioner( configger_.getConfig() ); + StyleKeys.CAPTIONER.createValue( configger_.getConfig() ); boolean border = borderModel_.isSelected(); Color bgColor = opaqueModel_.isSelected() ? Color.WHITE : null; return new LegendIcon( entries, captioner, border, bgColor ); diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/PlaneAxisController.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/PlaneAxisController.java index 10edee3c34..cb6ccec747 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/PlaneAxisController.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/PlaneAxisController.java @@ -64,7 +64,8 @@ public PlaneAxisController( ControlStack stack ) { /* Font tab. */ mainControl.addSpecifierTab( "Font", - new ConfigSpecifier( StyleKeys.getCaptionerKeys() ) ); + new ConfigSpecifier( StyleKeys.CAPTIONER + .getKeys() ) ); assert assertHasKeys( surfFact.getProfileKeys() ); } diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/ShaderControl.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/ShaderControl.java index 6c32b5d31e..d56ba00d8e 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/ShaderControl.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/ShaderControl.java @@ -143,7 +143,7 @@ public ShadeAxis createShadeAxis( Range range ) { final boolean flip = config.get( StyleKeys.SHADE_FLIP ); final Color nullColor = config.get( StyleKeys.SHADE_NULL_COLOR ); final Captioner captioner = - StyleKeys.createCaptioner( configger_.getConfig() ); + StyleKeys.CAPTIONER.createValue( configger_.getConfig() ); return new AxisFactory() { public ShadeAxis createShadeAxis( Range range ) { if ( range == null ) { diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/SkyAxisController.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/SkyAxisController.java index fe4dcc2c82..992e04f695 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/SkyAxisController.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/SkyAxisController.java @@ -82,7 +82,8 @@ protected SkySys getViewSystem() { /* Font specifier. */ mainControl.addSpecifierTab( "Font", - new ConfigSpecifier( StyleKeys.getCaptionerKeys() ) ); + new ConfigSpecifier( StyleKeys.CAPTIONER + .getKeys() ) ); assert assertHasKeys( surfFact.getProfileKeys() ); } diff --git a/topcat/src/main/uk/ac/starlink/topcat/plot2/TimeAxisController.java b/topcat/src/main/uk/ac/starlink/topcat/plot2/TimeAxisController.java index 26e7db3814..4d1c96197b 100644 --- a/topcat/src/main/uk/ac/starlink/topcat/plot2/TimeAxisController.java +++ b/topcat/src/main/uk/ac/starlink/topcat/plot2/TimeAxisController.java @@ -59,7 +59,8 @@ public TimeAxisController( ControlStack stack ) { /* Font tab. */ mainControl.addSpecifierTab( "Font", - new ConfigSpecifier( StyleKeys.getCaptionerKeys() ) ); + new ConfigSpecifier( StyleKeys.CAPTIONER + .getKeys() ) ); assert assertHasKeys( surfFact.getProfileKeys() ); } diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/CaptionerKeySet.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/CaptionerKeySet.java new file mode 100644 index 0000000000..46f656c317 --- /dev/null +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/CaptionerKeySet.java @@ -0,0 +1,144 @@ +package uk.ac.starlink.ttools.plot2.config; + +import java.awt.Font; +import org.scilab.forge.jlatexmath.TeXFormula; +import uk.ac.starlink.ttools.plot2.BasicCaptioner; +import uk.ac.starlink.ttools.plot2.Captioner; +import uk.ac.starlink.ttools.plot2.LatexCaptioner; + +/** + * ConfigKeySet for specifying a captioner. + * Font size, type, weight are configurable as well as plain/latex + * rendering. + * + * @author Mark Taylor + * @since 6 Mar 2014 + */ +public class CaptionerKeySet implements KeySet { + + private final ConfigKey textSyntaxKey_; + private final ConfigKey fontSizeKey_; + private final ConfigKey fontTypeKey_; + private final ConfigKey fontWeightKey_; + + /** + * Constructor. + */ + public CaptionerKeySet() { + textSyntaxKey_ = + new OptionConfigKey( new ConfigMeta( "syntax", + "Text Syntax" ), + TextSyntax.class, + TextSyntax.values(), + TextSyntax.values()[ 0 ], true ); + fontSizeKey_ = + IntegerConfigKey.createSpinnerKey( new ConfigMeta( "fontsize", + "Font Size" ), + 12, 2, 64 ); + fontTypeKey_ = + new OptionConfigKey( new ConfigMeta( "fontstyle", + "Font Style" ), + FontType.class, FontType.values() ); + fontWeightKey_ = + new OptionConfigKey( new ConfigMeta( "fontweight", + "Font Weight" ), + FontWeight.class, + FontWeight.values() ); + } + + public ConfigKey[] getKeys() { + return new ConfigKey[] { + textSyntaxKey_, + fontSizeKey_, + fontTypeKey_, + fontWeightKey_, + }; + } + + public Captioner createValue( ConfigMap config ) { + TextSyntax syntax = config.get( textSyntaxKey_ ); + int size = config.get( fontSizeKey_ ); + FontType type = config.get( fontTypeKey_ ); + FontWeight weight = config.get( fontWeightKey_ ); + return syntax.createCaptioner( type, weight, size ); + } + + /** + * Font type enum for use with captioner configuration. + */ + private enum FontType { + SANSSERIF( "Standard", "Dialog", TeXFormula.SANSSERIF ), + SERIF( "Serif", "Serif", TeXFormula.ROMAN ), + MONO( "Mono", "Monospaced", TeXFormula.TYPEWRITER ); + + private final String name_; + private final String awtName_; + private final int texType_; + + FontType( String name, String awtName, int texType ) { + name_ = name; + awtName_ = awtName; + texType_ = texType; + } + + public String toString() { + return name_; + } + } + + /** + * Font weight enum for use with captioner configuration. + */ + private enum FontWeight { + PLAIN( "Plain", Font.PLAIN, 0 ), + BOLD( "Bold", Font.BOLD, TeXFormula.BOLD ), + ITALIC( "Italic", Font.ITALIC, TeXFormula.ITALIC ), + BOLDITALIC( "Bold Italic", Font.BOLD | Font.ITALIC, + TeXFormula.BOLD | TeXFormula.ITALIC ); + + private final String name_; + private final int awtWeight_; + private final int texWeight_; + + FontWeight( String name, int awtWeight, int texWeight ) { + name_ = name; + awtWeight_ = awtWeight; + texWeight_ = texWeight; + } + + public String toString() { + return name_; + } + } + + /** + * Text interpretation language enum for use with captioner configuration. + */ + private enum TextSyntax { + PLAIN( "Plain" ) { + public Captioner createCaptioner( FontType type, FontWeight weight, + int size ) { + return new BasicCaptioner( new Font( type.awtName_, + weight.awtWeight_, + size ) ); + } + }, + LATEX( "LaTeX" ) { + public Captioner createCaptioner( FontType type, FontWeight weight, + int size ) { + return new LatexCaptioner( size, + type.texType_ | weight.texWeight_ ); + } + }; + private final String name_; + TextSyntax( String name ) { + name_ = name; + } + public abstract Captioner createCaptioner( FontType type, + FontWeight weight, + int size ); + public String toString() { + return name_; + } + } +} diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/ConfigKey.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/ConfigKey.java index 634f34e844..fb8e822614 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/ConfigKey.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/ConfigKey.java @@ -6,6 +6,11 @@ * this class has methods to allow a command-line or graphical interface * to be constructed for the corresponding values automatically. * + *

Note that this class does not sport the + * {@link uk.ac.starlink.ttools.plot2.Equality} + * annotation. A ConfigKey is normally considered equal only to itself, + * not to other similarly-named ConfigKeys. + * * @author Mark Taylor * @since 22 Feb 2013 */ diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/KeySet.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/KeySet.java new file mode 100644 index 0000000000..ebbb9e2392 --- /dev/null +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/KeySet.java @@ -0,0 +1,28 @@ +package uk.ac.starlink.ttools.plot2.config; + +/** + * Aggregates a set of config keys which are used together to specify + * an object. + * + * @author Mark Taylor + * @since 6 Mar 2014 + */ +public interface KeySet { + + /** + * The config keys used to specify an object. + * + * @return fixed list of config keys + */ + ConfigKey[] getKeys(); + + /** + * Creates a typed value based on the values in a map corresponding + * to this object's keys. + * + * @param map map for which the values corresponding to + * getKeys will be examined + * @return specified typed value + */ + T createValue( ConfigMap map ); +} diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java index 9363c620fc..6ee01a3df3 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/config/StyleKeys.java @@ -2,7 +2,6 @@ import java.awt.BasicStroke; import java.awt.Color; -import java.awt.Font; import java.awt.Stroke; import java.util.ArrayList; import java.util.Arrays; @@ -10,7 +9,6 @@ import javax.swing.Icon; import javax.swing.JComboBox; import javax.swing.ListModel; -import org.scilab.forge.jlatexmath.TeXFormula; import uk.ac.starlink.ttools.gui.ColorComboBox; import uk.ac.starlink.ttools.gui.DashComboBox; import uk.ac.starlink.ttools.gui.MarkStyleSelectors; @@ -26,9 +24,6 @@ import uk.ac.starlink.ttools.plot.Shaders; import uk.ac.starlink.ttools.plot.Styles; import uk.ac.starlink.ttools.plot2.Anchor; -import uk.ac.starlink.ttools.plot2.Captioner; -import uk.ac.starlink.ttools.plot2.BasicCaptioner; -import uk.ac.starlink.ttools.plot2.LatexCaptioner; import uk.ac.starlink.ttools.plot2.PlotUtil; import uk.ac.starlink.ttools.plot2.Subrange; import uk.ac.starlink.ttools.plot2.layer.LevelMode; @@ -162,37 +157,6 @@ protected Icon getRendererIcon( Object form ) { Anchor.W, Anchor.E, Anchor.N, Anchor.S, } ); - /** Config key for defining how label text is to be understood. - * @see #createCaptioner */ - private static final ConfigKey TEXT_SYNTAX = - new OptionConfigKey( new ConfigMeta( "syntax", - "Text Syntax" ), - TextSyntax.class, - TextSyntax.values(), - TextSyntax.values()[ 0 ], true ); - - /** Config key for label font size. - * @see #createCaptioner */ - private static final ConfigKey FONT_SIZE = - IntegerConfigKey.createSpinnerKey( new ConfigMeta( "fontsize", - "Font Size" ), - 12, 2, 64 ); - - /** Config key for label font style. - * @see #createCaptioner */ - private static final ConfigKey FONT_TYPE = - new OptionConfigKey( new ConfigMeta( "fontstyle", - "Font Style" ), - FontType.class, FontType.values() ); - - /** Config key for label font weight. - * @see #createCaptioner */ - private static final ConfigKey FONT_WEIGHT = - new OptionConfigKey( new ConfigMeta( "fontweight", - "Font Weight" ), - FontWeight.class, - FontWeight.values() ); - /** Config key for scaling level mode. */ public static final ConfigKey LEVEL_MODE = new OptionConfigKey( new ConfigMeta( "scaling", "Scaling" ), @@ -323,45 +287,15 @@ protected Icon getRendererIcon( Object form ) { .createSliderKey( new ConfigMeta( "zoomfactor", "Zoom Factor" ), 1.2, 1, 2, true ); + /** Config key set for axis and general captioner. */ + public static final CaptionerKeySet CAPTIONER = new CaptionerKeySet(); + /** * Private constructor prevents instantiation. */ private StyleKeys() { } - /** - * Returns a list of config keys to use for configuring a captioner. - * Pass a map with values for these to the createCaptioner - * method. - * - * @return captioner key list - * @see #createCaptioner - */ - public static ConfigKey[] getCaptionerKeys() { - return new ConfigKey[] { - TEXT_SYNTAX, - FONT_SIZE, - FONT_TYPE, - FONT_WEIGHT, - }; - } - - /** - * Obtains a captioner object based on a config map. - * The keys used are those returned by getCaptionerKeys. - * - * @param config config map - * @return captioner - * @see #getCaptionerKeys - */ - public static Captioner createCaptioner( ConfigMap config ) { - TextSyntax syntax = config.get( TEXT_SYNTAX ); - FontType type = config.get( FONT_TYPE ); - FontWeight weight = config.get( FONT_WEIGHT ); - int size = config.get( FONT_SIZE ); - return syntax.createCaptioner( type, weight, size ); - } - /** * Returns a list of config keys for configuring a line-drawing stroke. * Pass a map with values for these to the createStroke @@ -678,83 +612,4 @@ public Specifier createSpecifier() { return new ComboBoxSpecifier( comboBox ); } }; - - /** - * Font type enum for use with captioner configuration. - */ - private enum FontType { - SANSSERIF( "Standard", "Dialog", TeXFormula.SANSSERIF ), - SERIF( "Serif", "Serif", TeXFormula.ROMAN ), - MONO( "Mono", "Monospaced", TeXFormula.TYPEWRITER ); - - private final String name_; - private final String awtName_; - private final int texType_; - - FontType( String name, String awtName, int texType ) { - name_ = name; - awtName_ = awtName; - texType_ = texType; - } - - public String toString() { - return name_; - } - } - - /** - * Font weight enum for use with captioner configuration. - */ - private enum FontWeight { - PLAIN( "Plain", Font.PLAIN, 0 ), - BOLD( "Bold", Font.BOLD, TeXFormula.BOLD ), - ITALIC( "Italic", Font.ITALIC, TeXFormula.ITALIC ), - BOLDITALIC( "Bold Italic", Font.BOLD | Font.ITALIC, - TeXFormula.BOLD | TeXFormula.ITALIC ); - - private final String name_; - private final int awtWeight_; - private final int texWeight_; - - FontWeight( String name, int awtWeight, int texWeight ) { - name_ = name; - awtWeight_ = awtWeight; - texWeight_ = texWeight; - } - - public String toString() { - return name_; - } - } - - /** - * Text interpretation language enum for use with captioner configuration. - */ - private enum TextSyntax { - PLAIN( "Plain" ) { - public Captioner createCaptioner( FontType type, FontWeight weight, - int size ) { - return new BasicCaptioner( new Font( type.awtName_, - weight.awtWeight_, - size ) ); - } - }, - LATEX( "LaTeX" ) { - public Captioner createCaptioner( FontType type, FontWeight weight, - int size ) { - return new LatexCaptioner( size, - type.texType_ | weight.texWeight_ ); - } - }; - private final String name_; - TextSyntax( String name ) { - name_ = name; - } - public abstract Captioner createCaptioner( FontType type, - FontWeight weight, - int size ); - public String toString() { - return name_; - } - } } diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/CubeSurfaceFactory.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/CubeSurfaceFactory.java index e4011ecc2f..ed9466ed78 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/CubeSurfaceFactory.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/CubeSurfaceFactory.java @@ -245,7 +245,7 @@ public ConfigKey[] getProfileKeys() { StyleKeys.MINOR_TICKS, StyleKeys.GRID_ANTIALIAS, } ) ); - list.addAll( Arrays.asList( StyleKeys.getCaptionerKeys() ) ); + list.addAll( Arrays.asList( StyleKeys.CAPTIONER.getKeys() ) ); return list.toArray( new ConfigKey[ 0 ] ); } @@ -262,7 +262,7 @@ public Profile createProfile( ConfigMap config ) throws ConfigException { double xcrowd = config.get( isIso_ ? ISOCROWD_KEY : XCROWD_KEY ); double ycrowd = config.get( isIso_ ? ISOCROWD_KEY : YCROWD_KEY ); double zcrowd = config.get( isIso_ ? ISOCROWD_KEY : ZCROWD_KEY ); - Captioner captioner = StyleKeys.createCaptioner( config ); + Captioner captioner = StyleKeys.CAPTIONER.createValue( config ); boolean frame = config.get( FRAME_KEY ); boolean minor = config.get( StyleKeys.MINOR_TICKS ); boolean antialias = config.get( StyleKeys.GRID_ANTIALIAS ); diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/PlaneSurfaceFactory.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/PlaneSurfaceFactory.java index f20c350cb6..cdcb5ecdca 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/PlaneSurfaceFactory.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/PlaneSurfaceFactory.java @@ -144,7 +144,7 @@ public ConfigKey[] getProfileKeys() { StyleKeys.AXLABEL_COLOR, StyleKeys.GRID_ANTIALIAS, } ) ); - list.addAll( Arrays.asList( StyleKeys.getCaptionerKeys() ) ); + list.addAll( Arrays.asList( StyleKeys.CAPTIONER.getKeys() ) ); return list.toArray( new ConfigKey[ 0 ] ); } @@ -163,7 +163,7 @@ public Profile createProfile( ConfigMap config ) throws ConfigException { Color gridcolor = config.get( StyleKeys.GRID_COLOR ); Color axlabelcolor = config.get( StyleKeys.AXLABEL_COLOR ); boolean antialias = config.get( StyleKeys.GRID_ANTIALIAS ); - Captioner captioner = StyleKeys.createCaptioner( config ); + Captioner captioner = StyleKeys.CAPTIONER.createValue( config ); return new Profile( xlog, ylog, xflip, yflip, xlabel, ylabel, captioner, xyfactor, grid, xcrowd, ycrowd, minor, gridcolor, axlabelcolor, antialias ); diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/SkySurfaceFactory.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/SkySurfaceFactory.java index 4fe84106ba..ea688e6a80 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/SkySurfaceFactory.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/SkySurfaceFactory.java @@ -117,7 +117,7 @@ public ConfigKey[] getProfileKeys() { StyleKeys.AXLABEL_COLOR, StyleKeys.GRID_ANTIALIAS, } ) ); - list.addAll( Arrays.asList( StyleKeys.getCaptionerKeys() ) ); + list.addAll( Arrays.asList( StyleKeys.CAPTIONER.getKeys() ) ); return list.toArray( new ConfigKey[ 0 ] ); } @@ -132,7 +132,7 @@ public Profile createProfile( ConfigMap config ) throws ConfigException { Color gridColor = config.get( StyleKeys.GRID_COLOR ); Color axlabelColor = config.get( StyleKeys.AXLABEL_COLOR ); boolean antialias = config.get( StyleKeys.GRID_ANTIALIAS ); - Captioner captioner = StyleKeys.createCaptioner( config ); + Captioner captioner = StyleKeys.CAPTIONER.createValue( config ); return new Profile( proj, reflect, viewSystem, grid, axLabeller, gridColor, axlabelColor, sex, crowd, captioner, antialias ); diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/TimeSurfaceFactory.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/TimeSurfaceFactory.java index 295111f2df..1f17137fb6 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/TimeSurfaceFactory.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/geom/TimeSurfaceFactory.java @@ -117,7 +117,7 @@ public ConfigKey[] getProfileKeys() { StyleKeys.MINOR_TICKS, StyleKeys.GRID_ANTIALIAS, } ) ); - list.addAll( Arrays.asList( StyleKeys.getCaptionerKeys() ) ); + list.addAll( Arrays.asList( StyleKeys.CAPTIONER.getKeys() ) ); return list.toArray( new ConfigKey[ 0 ] ); } @@ -132,7 +132,7 @@ public Profile createProfile( ConfigMap config ) { TimeFormat tformat = config.get( TFORMAT_KEY ); boolean minor = config.get( StyleKeys.MINOR_TICKS ); boolean antialias = config.get( StyleKeys.GRID_ANTIALIAS ); - Captioner captioner = StyleKeys.createCaptioner( config ); + Captioner captioner = StyleKeys.CAPTIONER.createValue( config ); return new Profile( ylog, yflip, tlabel, ylabel, captioner, grid, tcrowd, ycrowd, tformat, minor, antialias ); } diff --git a/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/LabelPlotter.java b/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/LabelPlotter.java index ddc587fdde..8cd0b070aa 100644 --- a/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/LabelPlotter.java +++ b/ttools/src/main/uk/ac/starlink/ttools/plot2/layer/LabelPlotter.java @@ -22,6 +22,7 @@ import uk.ac.starlink.ttools.plot2.PointCloud; import uk.ac.starlink.ttools.plot2.SubCloud; import uk.ac.starlink.ttools.plot2.Surface; +import uk.ac.starlink.ttools.plot2.config.CaptionerKeySet; import uk.ac.starlink.ttools.plot2.config.ConfigException; import uk.ac.starlink.ttools.plot2.config.ConfigKey; import uk.ac.starlink.ttools.plot2.config.ConfigMap; @@ -69,6 +70,10 @@ public class LabelPlotter extends AbstractPlotter { .createSpinnerKey( new ConfigMeta( "crowdlimit", "Crowding Limit" ), 2, 1, MAX_CROWDLIMIT ); + /** Config key set for configuring text font. */ + public static final CaptionerKeySet CAPTIONER_KEYSET = + new CaptionerKeySet(); + /** * Constructor. */ @@ -78,7 +83,7 @@ public LabelPlotter() { public ConfigKey[] getStyleKeys() { List list = new ArrayList(); - list.addAll( Arrays.asList( StyleKeys.getCaptionerKeys() ) ); + list.addAll( Arrays.asList( CAPTIONER_KEYSET.getKeys() ) ); list.addAll( Arrays.asList( new ConfigKey[] { StyleKeys.ANCHOR, StyleKeys.COLOR, @@ -97,7 +102,7 @@ public LabelStyle createStyle( ConfigMap config ) { } byte crowdLimit = (byte) iclimit; assert crowdLimit == iclimit; - return new LabelStyle( StyleKeys.createCaptioner( config ), + return new LabelStyle( CAPTIONER_KEYSET.createValue( config ), config.get( StyleKeys.ANCHOR ), config.get( StyleKeys.COLOR ), config.get( SPACING_KEY ), crowdLimit );