Package uk.ac.starlink.ttools.plot2.geom
Class TimeSurfaceFactory
- java.lang.Object
-
- uk.ac.starlink.ttools.plot2.geom.TimeSurfaceFactory
-
- All Implemented Interfaces:
SurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
public class TimeSurfaceFactory extends java.lang.Object implements SurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
Surface factory for time plots.- Since:
- 15 Aug 2013
- Author:
- Mark Taylor
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TimeSurfaceFactory.Profile
Profile class which defines fixed configuration items for a TimeSurface.
-
Field Summary
Fields Modifier and Type Field Description static ConfigKey<java.lang.Boolean>
GRID_KEY
Config key to determine if grid lines are drawn.static ConfigKey<java.lang.Double>
TCROWD_KEY
Config key to control tick mark crowding on time axis.static ConfigKey<TimeFormat>
TFORMAT_KEY
Config key to control time value formatting.static ConfigKey<java.lang.String>
TLABEL_KEY
Config key for time axis text label.static ConfigKey<java.lang.Double>
TMAX_KEY
Config key for time axis upper bound, before subranging.static ConfigKey<java.lang.Double>
TMIN_KEY
Config key for time axis lower bound, before subranging.static ConfigKey<Subrange>
TSUBRANGE_KEY
Config key for time axis subrange.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 Summary
Constructors Constructor Description TimeSurfaceFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TimeAspect
createAspect(TimeSurfaceFactory.Profile profile, ConfigMap config, Range[] ranges)
Creates an aspect from configuration information.Navigator<TimeAspect>
createNavigator(ConfigMap navConfig)
Creates a navigator from configuration information.TimeSurfaceFactory.Profile
createProfile(ConfigMap config)
Creates a profile that can be used when creating a plot surface.Surface
createSurface(java.awt.Rectangle plotBounds, TimeSurfaceFactory.Profile profile, TimeAspect aspect)
Returns a new plot surface.ConfigMap
getAspectConfig(Surface surf)
Returns a ConfigMap that corresponds to the configuration of the given surface, which must have been created by this factory.ConfigKey[]
getAspectKeys()
Returns the configuration keys that may be used to configure aspect for this surface factory.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(TimeSurfaceFactory.Profile profile, PlotLayer[] layers, DataStore dataStore)
Provides the ranges that may be passed tocreateAspect
.boolean
useRanges(TimeSurfaceFactory.Profile profile, ConfigMap config)
Indicates whether ranges should be provided to generate an aspect.
-
-
-
Field Detail
-
TMIN_KEY
public static final ConfigKey<java.lang.Double> TMIN_KEY
Config key for time axis lower bound, before subranging.
-
TMAX_KEY
public static final ConfigKey<java.lang.Double> TMAX_KEY
Config key for time axis upper bound, before subranging.
-
TSUBRANGE_KEY
public static final ConfigKey<Subrange> TSUBRANGE_KEY
Config key for time axis subrange.
-
YMIN_KEY
public static final ConfigKey<java.lang.Double> YMIN_KEY
Config key for Y axis lower bound, before subranging.
-
YMAX_KEY
public static final ConfigKey<java.lang.Double> YMAX_KEY
Config key for Y axis upper bound, before subranging.
-
YLOG_KEY
public static final ConfigKey<java.lang.Boolean> YLOG_KEY
Config key for Y axis log scale flag.
-
YFLIP_KEY
public static final ConfigKey<java.lang.Boolean> YFLIP_KEY
Config key for Y axis flip flag.
-
TLABEL_KEY
public static final ConfigKey<java.lang.String> TLABEL_KEY
Config key for time axis text label.
-
YLABEL_KEY
public static final ConfigKey<java.lang.String> YLABEL_KEY
Config key for Y axis text label.
-
GRID_KEY
public static final ConfigKey<java.lang.Boolean> GRID_KEY
Config key to determine if grid lines are drawn.
-
TCROWD_KEY
public static final ConfigKey<java.lang.Double> TCROWD_KEY
Config key to control tick mark crowding on time axis.
-
YCROWD_KEY
public static final ConfigKey<java.lang.Double> YCROWD_KEY
Config key to control tick mark crowding on Y axis.
-
TFORMAT_KEY
public static final ConfigKey<TimeFormat> TFORMAT_KEY
Config key to control time value formatting.
-
-
Method Detail
-
createSurface
public Surface createSurface(java.awt.Rectangle plotBounds, TimeSurfaceFactory.Profile profile, TimeAspect aspect)
Description copied from interface:SurfaceFactory
Returns a new plot surface.- Specified by:
createSurface
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
plotBounds
- rectangle to containing actual plot data (not insets)profile
- configuration object defining plot styleaspect
- configuration object defining plot viewpoint- Returns:
- new plot surface
-
getProfileKeys
public ConfigKey[] getProfileKeys()
Description copied from interface:SurfaceFactory
Returns the configuration keys used to configure profile for this surface factory. The returned keys are used in the map supplied to thecreateProfile
method.- Specified by:
getProfileKeys
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Returns:
- profile configuration keys
-
createProfile
public TimeSurfaceFactory.Profile createProfile(ConfigMap config)
Description copied from interface:SurfaceFactory
Creates a profile that can be used when creating a plot surface. The keys that are significant in the supplied config map are those returned bygetProfileKeys
. The return value can be used as input tocreateSurface
and other methods in this class.- Specified by:
createProfile
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
config
- map of profile configuration items- Returns:
- factory-specific plot surface profile
-
getAspectKeys
public ConfigKey[] getAspectKeys()
Description copied from interface:SurfaceFactory
Returns the configuration keys that may be used to configure aspect for this surface factory. The returned keys are used in the map supplied to theuseRanges
andcreateAspect
methods.- Specified by:
getAspectKeys
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Returns:
- aspect configuration keys
-
useRanges
public boolean useRanges(TimeSurfaceFactory.Profile profile, ConfigMap config)
Description copied from interface:SurfaceFactory
Indicates whether ranges should be provided to generate an aspect. If true, it is beneficial to pass the result ofreadRanges
tocreateAspect
alongside the arguments of this method. If false, any such ranges will be ignored.- Specified by:
useRanges
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
profile
- surface configuration profileconfig
- configuration map that may contain keys fromgetAspectKeys
- Returns:
- true iff calculated ranges will be of use
-
createAspect
public TimeAspect createAspect(TimeSurfaceFactory.Profile profile, ConfigMap config, Range[] ranges)
Description copied from interface:SurfaceFactory
Creates an aspect from configuration information. The ranges argument will be used only ifuseRanges
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 bycreateSurface
.- Specified by:
createAspect
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
profile
- surface configuration profileconfig
- configuration map that may contain keys fromgetAspectKeys
ranges
- range data filled in from layers, or null- Returns:
- new aspect
-
getAspectConfig
public ConfigMap getAspectConfig(Surface surf)
Description copied from interface:SurfaceFactory
Returns a ConfigMap that corresponds to the configuration of the given surface, which must have been created by this factory. The intention is that supplying the returned config items to this object'screateAspect
method with the right profile should come up with approximately the same surface, preferably without reference to any supplied ranges.The returned config items should be optimised for presentation to the user, so that for instance decimal values are reported to a reasonable level of precision. Because of this, and perhaps for other reasons related to implementation, a surface resulting from feeding the returned config back to this factory may not be identical to the supplied surface, so round-tripping is not guaranteed to be exact.
- Specified by:
getAspectConfig
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
surf
- plot surface; if it was not created by this factory, behaviour is undefined- Returns:
- config map populated with items that should approximately reproduce the supplied surface
-
readRanges
public Range[] readRanges(TimeSurfaceFactory.Profile profile, PlotLayer[] layers, DataStore dataStore)
Description copied from interface:SurfaceFactory
Provides the ranges that may be passed tocreateAspect
. There is only any point calling this ifuseRanges
returns true.- Specified by:
readRanges
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
profile
- surface configuration profilelayers
- plot layers to be plotteddataStore
- contains actual data- Returns:
- data ranges covered by the given layers filled in from data
-
getNavigatorKeys
public ConfigKey[] getNavigatorKeys()
Description copied from interface:SurfaceFactory
Returns the configuration keys that may be used to configure a navigator for use with this surface factory. The returned keys are used in the map supplied to theSurfaceFactory.createNavigator(uk.ac.starlink.ttools.plot2.config.ConfigMap)
method.- Specified by:
getNavigatorKeys
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Returns:
- navigator configuration keys
-
createNavigator
public Navigator<TimeAspect> createNavigator(ConfigMap navConfig)
Description copied from interface:SurfaceFactory
Creates a navigator from configuration information. The returned value will be non-null.- Specified by:
createNavigator
in interfaceSurfaceFactory<TimeSurfaceFactory.Profile,TimeAspect>
- Parameters:
navConfig
- configuration map that may contain keys fromgetNavigatorKeys
- Returns:
- navigator for use with surfaces produced by this factory
-
-