public class PlaneSurfaceFactory extends java.lang.Object implements SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
Modifier and Type | Class and Description |
---|---|
static class |
PlaneSurfaceFactory.Profile
Profile class which defines fixed configuration items for
a PlaneSurface.
|
Modifier and Type | Field and Description |
---|---|
static ConfigKey<java.lang.Boolean> |
GRID_KEY
Config key to determine if grid lines are drawn.
|
static ConfigKey<boolean[]> |
NAVAXES_KEY
Config key to select which axes navigation actions will operate on.
|
static ConfigKey<java.lang.Boolean> |
XANCHOR_KEY
Config key to anchor X axis during zooms.
|
static ConfigKey<java.lang.Double> |
XCROWD_KEY
Config key to control tick mark crowding on X axis.
|
static ConfigKey<java.lang.Boolean> |
XFLIP_KEY
Config key for X axis flip flag.
|
static ConfigKey<java.lang.String> |
XLABEL_KEY
Config key for X axis text label.
|
static ConfigKey<java.lang.Boolean> |
XLOG_KEY
Config key for X axis log scale flag.
|
static ConfigKey<java.lang.Double> |
XMAX_KEY
Config key for X axis upper bound, before subranging.
|
static ConfigKey<java.lang.Double> |
XMIN_KEY
Config key for X axis lower bound, before subranging.
|
static ConfigKey<Subrange> |
XSUBRANGE_KEY
Config key for X axis subrange.
|
static ConfigKey<java.lang.Double> |
XYFACTOR_KEY
Config key for axis aspect ratio fix.
|
static ConfigKey<java.lang.Boolean> |
YANCHOR_KEY
Config key to anchor Y axis during zooms.
|
static ConfigKey<java.lang.Double> |
YCROWD_KEY
Config key to control tick mark crowding on Y axis.
|
static ConfigKey<java.lang.Boolean> |
YFLIP_KEY
Config key for Y axis flip flag.
|
static ConfigKey<java.lang.String> |
YLABEL_KEY
Config key for Y axis text label.
|
static ConfigKey<java.lang.Boolean> |
YLOG_KEY
Config key for Y axis log scale flag.
|
static ConfigKey<java.lang.Double> |
YMAX_KEY
Config key for Y axis upper bound, before subranging.
|
static ConfigKey<java.lang.Double> |
YMIN_KEY
Config key for Y axis lower bound, before subranging.
|
static ConfigKey<Subrange> |
YSUBRANGE_KEY
Config key for Y axis subrange.
|
Constructor and Description |
---|
PlaneSurfaceFactory() |
Modifier and Type | Method and Description |
---|---|
PlaneAspect |
createAspect(PlaneSurfaceFactory.Profile profile,
ConfigMap config,
Range[] ranges)
Creates an aspect from configuration information.
|
static ConfigKey<java.lang.Boolean> |
createAxisAnchorKey(java.lang.String axname,
boolean dflt)
Creates a config key for determining whether a named axis is
to be anchored at a data value of zero.
|
static ConfigKey<java.lang.Double> |
createAxisCrowdKey(java.lang.String axname)
Creates a config key for determining tickmark crowding on a named axis.
|
static ConfigKey<java.lang.Boolean> |
createAxisFlipKey(java.lang.String axname)
Creates a config key for determining whether a named Cartesian axis
is to be reversed.
|
static ConfigKey<java.lang.Double> |
createAxisLimitKey(java.lang.String axname,
boolean isMax)
Creates a config key for fixing a minimum or maximum limit
for a named axis.
|
static ConfigKey<java.lang.Boolean> |
createAxisLogKey(java.lang.String axname)
Creates a config key for determining whether a named Cartesian axis
is logarithmic or linear.
|
static ConfigKey<Subrange> |
createAxisSubrangeKey(java.lang.String axname)
Creates a config key for selecting a subrange on a named Cartesian axis.
|
Navigator<PlaneAspect> |
createNavigator(ConfigMap navConfig)
Creates a navigator from configuration information.
|
PlaneSurfaceFactory.Profile |
createProfile(ConfigMap config)
Creates a profile that can be used when creating a plot surface.
|
Surface |
createSurface(java.awt.Rectangle plotBounds,
PlaneSurfaceFactory.Profile profile,
PlaneAspect aspect)
Returns a new plot surface.
|
ConfigKey[] |
getAspectKeys()
Returns the configuration keys that may be used to configure aspect
for this surface factory.
|
static double[] |
getLimits(ConfigMap config,
ConfigKey<java.lang.Double> minKey,
ConfigKey<java.lang.Double> maxKey,
ConfigKey<Subrange> subrangeKey,
boolean isLog,
Range range)
Utility method to interrogate axis range configuration variables
and work out the actual range to use on a given Cartesian axis.
|
static double[] |
getLimits(double lo,
double hi,
Subrange subrange,
boolean isLog,
Range range)
Utility method to determine actual axis limits based on
requested high/low values and a subrange.
|
ConfigKey[] |
getNavigatorKeys()
Returns the configuration keys that may be used to configure
a navigator for use with this surface factory.
|
ConfigKey[] |
getProfileKeys()
Returns the configuration keys used to configure profile for this
surface factory.
|
Range[] |
readRanges(PlaneSurfaceFactory.Profile profile,
PlotLayer[] layers,
DataStore dataStore)
Provides the ranges that may be passed to
createAspect . |
boolean |
useRanges(PlaneSurfaceFactory.Profile profile,
ConfigMap config)
Indicates whether ranges should be provided to generate an aspect.
|
public static final ConfigKey<java.lang.Double> XMIN_KEY
public static final ConfigKey<java.lang.Double> XMAX_KEY
public static final ConfigKey<java.lang.Double> YMIN_KEY
public static final ConfigKey<java.lang.Double> YMAX_KEY
public static final ConfigKey<java.lang.Boolean> XLOG_KEY
public static final ConfigKey<java.lang.Boolean> YLOG_KEY
public static final ConfigKey<java.lang.Boolean> XFLIP_KEY
public static final ConfigKey<java.lang.Boolean> YFLIP_KEY
public static final ConfigKey<java.lang.String> XLABEL_KEY
public static final ConfigKey<java.lang.String> YLABEL_KEY
public static final ConfigKey<java.lang.Double> XYFACTOR_KEY
public static final ConfigKey<java.lang.Boolean> GRID_KEY
public static final ConfigKey<java.lang.Double> XCROWD_KEY
public static final ConfigKey<java.lang.Double> YCROWD_KEY
public static final ConfigKey<boolean[]> NAVAXES_KEY
public static final ConfigKey<java.lang.Boolean> XANCHOR_KEY
public static final ConfigKey<java.lang.Boolean> YANCHOR_KEY
public Surface createSurface(java.awt.Rectangle plotBounds, PlaneSurfaceFactory.Profile profile, PlaneAspect aspect)
SurfaceFactory
createSurface
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
plotBounds
- rectangle to containing actual plot data
(not insets)profile
- configuration object defining plot styleaspect
- configuration object defining plot viewpointpublic ConfigKey[] getProfileKeys()
SurfaceFactory
createProfile
method.getProfileKeys
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
public PlaneSurfaceFactory.Profile createProfile(ConfigMap config)
SurfaceFactory
getProfileKeys
.
The return value can be used as input to
createSurface
and other methods in this class.createProfile
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
config
- map of profile configuration itemspublic ConfigKey[] getAspectKeys()
SurfaceFactory
useRanges
and
createAspect
methods.getAspectKeys
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
public boolean useRanges(PlaneSurfaceFactory.Profile profile, ConfigMap config)
SurfaceFactory
readRanges
to createAspect
alongside the arguments of this method.
If false, any such ranges will be ignored.useRanges
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
profile
- surface configuration profileconfig
- configuration map that may contain keys from
getAspectKeys
public PlaneAspect createAspect(PlaneSurfaceFactory.Profile profile, ConfigMap config, Range[] ranges)
SurfaceFactory
useRanges
returns true.
It is legal to give the ranges argument as null in any case.
In all cases, the returned value must be non-null and usable by
createSurface
.createAspect
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
profile
- surface configuration profileconfig
- configuration map that may contain keys from
getAspectKeys
ranges
- range data filled in from layers, or nullpublic Range[] readRanges(PlaneSurfaceFactory.Profile profile, PlotLayer[] layers, DataStore dataStore)
SurfaceFactory
createAspect
.
There is only any point calling this if useRanges
returns true.readRanges
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
profile
- surface configuration profilelayers
- plot layers to be plotteddataStore
- contains actual datapublic ConfigKey[] getNavigatorKeys()
SurfaceFactory
SurfaceFactory.createNavigator(uk.ac.starlink.ttools.plot2.config.ConfigMap)
method.getNavigatorKeys
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
public Navigator<PlaneAspect> createNavigator(ConfigMap navConfig)
SurfaceFactory
createNavigator
in interface SurfaceFactory<PlaneSurfaceFactory.Profile,PlaneAspect>
navConfig
- configuration map that may contain keys from
getNavigatorKeys
public static ConfigKey<java.lang.Boolean> createAxisAnchorKey(java.lang.String axname, boolean dflt)
axname
- axis namedflt
- anchor default valuepublic static ConfigKey<java.lang.Double> createAxisLimitKey(java.lang.String axname, boolean isMax)
axname
- axis nameisMax
- true for upper limit, false for lower limitpublic static ConfigKey<java.lang.Boolean> createAxisLogKey(java.lang.String axname)
axname
- axis namepublic static ConfigKey<java.lang.Boolean> createAxisFlipKey(java.lang.String axname)
axname
- axis namepublic static ConfigKey<Subrange> createAxisSubrangeKey(java.lang.String axname)
axname
- axis namepublic static ConfigKey<java.lang.Double> createAxisCrowdKey(java.lang.String axname)
axname
- axis namepublic static double[] getLimits(ConfigMap config, ConfigKey<java.lang.Double> minKey, ConfigKey<java.lang.Double> maxKey, ConfigKey<Subrange> subrangeKey, boolean isLog, Range range)
config
- config map containing config valuesminKey
- config key giving axis lower bound before subrangingmaxKey
- config key giving axis upper bound before subrangingsubrangeKey
- config key giving subrange valueisLog
- true for logarithmic axis, false for linearrange
- data range on axis; may be partially populated or nullpublic static double[] getLimits(double lo, double hi, Subrange subrange, boolean isLog, Range range)
lo
- requested lower bound before subranging, may be NaNhi
- requested upper bound before subranging, may be NaNsubrange
- requested subrangeisLog
- true for logarithmic axis, false for linearrange
- actual data range on axis;
may be partially populated or nullCopyright © 2017 Central Laboratory of the Research Councils. All Rights Reserved.