Ganger<P,A>
TimeStackGanger
public abstract class StackGanger<P,A> extends java.lang.Object implements Ganger<P,A>
Modifier | Constructor | Description |
---|---|---|
protected |
StackGanger(boolean isUp,
Padding padding) |
Constructor.
|
Modifier and Type | Method | Description |
---|---|---|
A[] |
adjustAspects(A[] aspects,
int index) |
Adjusts plot surface aspects as required to ensure that plot data
regions in a ganged set of zones are consistent.
|
P[] |
adjustProfiles(P[] profiles) |
Adjusts plot surface profiles as required for plots appearing
in multiple plots within a gang.
|
Gang |
createApproxGang(java.awt.Rectangle extBounds,
int nz) |
Constructs an approximate gang instance given only minimal information.
|
Gang |
createGang(java.awt.Rectangle[] zonePlotBounds) |
Creates a gang given the graphics coordinates of the individual zones.
|
Gang |
createGang(java.awt.Rectangle gangExtBox,
SurfaceFactory<P,A> surfFact,
int nz,
ZoneContent[] contents,
P[] profiles,
A[] aspects,
ShadeAxis[] shadeAxes,
boolean withScroll) |
Creates a gang given the external bounds for the whole plotting area
and other required information that characterises each zone.
|
abstract A |
fixXLimits(A aspect,
double xmin,
double xmax) |
Modifies an aspect object to give it fixed data limits on the
horizontal axis.
|
abstract double[] |
getXLimits(A aspect) |
Returns the data limits of the horizontal axis defined by a given aspect.
|
protected StackGanger(boolean isUp, Padding padding)
isUp
- true if zones are ordered upwards on the graphics plane,
false if they go downpadding
- defines user preferences, if any, for space
reserved outside each plot zonepublic abstract double[] getXLimits(A aspect)
aspect
- surface aspectpublic abstract A fixXLimits(A aspect, double xmin, double xmax)
aspect
- input surface aspectxmin
- required lower limit on horizontal axisxmax
- required upper limit on horizontal axispublic Gang createGang(java.awt.Rectangle[] zonePlotBounds)
Ganger
The supplied rectangle arguments give the bounds of the data area for each zone. This does not include any space for axis labels and other annotations, which are assumed to be available as required.
createGang
in interface Ganger<P,A>
zonePlotBounds
- array of data bounds, one for each zonepublic Gang createGang(java.awt.Rectangle gangExtBox, SurfaceFactory<P,A> surfFact, int nz, ZoneContent[] contents, P[] profiles, A[] aspects, ShadeAxis[] shadeAxes, boolean withScroll)
Ganger
createGang
in interface Ganger<P,A>
gangExtBox
- total area enclosing all zones and associated
axis labels, annotations etcsurfFact
- surface factorynz
- number of zonescontents
- plot content for each zone (nz-element array)profiles
- profile for each zone (nz-element array)aspects
- aspect for each zone (nz-element array)shadeAxes
- shading axis for each zone
(nz-element array, elements may be empty)withScroll
- true if the positioning should work well
even after some user scrollingpublic Gang createApproxGang(java.awt.Rectangle extBounds, int nz)
Ganger
createApproxGang
in interface Ganger<P,A>
extBounds
- total area enclosing all zones and associated
axis labels, annotations etcnz
- number of zonespublic A[] adjustAspects(A[] aspects, int index)
Ganger
If a zero reference index greater than zero is supplied, this denotes the "master" zone, to which the other aspects should be adjusted. Otherwise, the aspects should be adjusted more democratically, treating all their requirements equally. With a reference index the other aspects might be adjusted to equal the master one, and without they might all be adjusted to cover the union of the ranges defined. If the reference index is >= the number of zones, behaviour is undefined.
adjustAspects
in interface Ganger<P,A>
aspects
- unadjusted aspectsindex
- index of reference aspect in array, or -1 for no referencepublic P[] adjustProfiles(P[] profiles)
Ganger
adjustProfiles
in interface Ganger<P,A>
profiles
- unadjusted profilesCopyright © 2018 Central Laboratory of the Research Councils. All Rights Reserved.