Class LinearScaleTicks
- java.lang.Object
-
- org.eclipse.nebula.visualization.xygraph.linearscale.LinearScaleTicks
-
- All Implemented Interfaces:
ITicksProvider
public class LinearScaleTicks extends java.lang.Object implements ITicksProvider
Default scale tick mark algorithm
-
-
Field Summary
Fields Modifier and Type Field Description private int
gridStepInPixel
private java.util.ArrayList<java.lang.Integer>
minorPositions
the array of minor tick positions in pixelsprivate static java.lang.String
MINUS
static java.lang.String
NAME
The name of this tick providerprivate IScaleProvider
scale
private boolean
showMaxLabel
default: show max labelprivate boolean
showMinLabel
default: show min labelprivate static int
TICK_LABEL_GAP
private int
tickLabelMaxHeight
the maximum height of tick labelsprivate int
tickLabelMaxLength
the maximum length of tick labelsprivate java.util.ArrayList<java.lang.Integer>
tickLabelPositions
the array of tick label position in pixelsprivate java.util.ArrayList<java.lang.String>
tickLabels
the array of tick labelprivate java.util.ArrayList<java.lang.Double>
tickLabelValues
the array of tick label valesprivate java.util.ArrayList<java.lang.Boolean>
tickLabelVisibilities
the array of visibility state of tick label
-
Constructor Summary
Constructors Constructor Description LinearScaleTicks(IScaleProvider scale)
constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
addMinMaxTickInfo(double value, int length, boolean isMin)
Add the tick labels, positions and values for the min and max case to the corresponding List used to store them.private void
addTickInfo(java.math.BigDecimal d, double max, double logMin, int length, boolean isFirstPosition, boolean minDateAdded)
Add the tick labels, positions and values to the corresponding List used to store them.java.lang.String
getDefaultFormatPattern(double min, double max)
private double
getGridStep(int lengthInPixels, double min, double max)
Gets the grid step.int
getGridStepInPixels()
int
getHeadMargin()
java.lang.String
getLabel(int index)
int
getLabelPosition(int index)
java.util.List<java.lang.String>
getLabels()
int
getMajorCount()
int
getMaxHeight()
int
getMaxWidth()
int
getMinorCount()
int
getMinorPosition(int index)
int
getPosition(int index)
java.util.List<java.lang.Integer>
getPositions()
Gets the tick positions.int
getTailMargin()
int
getTickLabelMaxHeight()
int
getTickLabelMaxLength()
private double
getTimeGridStep(double min, double max, double gridStepHint)
Given min, max and the gridStepHint, returns the time grid step as a double.double
getValue(int index)
java.util.List<java.lang.Boolean>
getVisibilities()
private boolean
hasSpaceToDraw(int previousPosition, int tickLabelPosition, java.lang.String previousTickLabel, java.lang.String tickLabel)
If it has enough space to draw the tick labelprivate boolean
isMajorTick(double tickValue)
Checks if the tick label is major tick.boolean
isShowMaxLabel()
Shows the maximum value of the range as a labelboolean
isShowMinLabel()
Shows the minimum value of the range as a labelboolean
isVisible(int index)
private java.math.BigDecimal
pow(double base, int exponent)
Get base^exponentvoid
setShowMaxLabel(boolean showMaxLabel)
sets the visibility of the maximum labelvoid
setShowMinLabel(boolean showMinLabel)
Sets the visibility of the minimum labelRange
update(double min, double max, int length)
Update ticks.private void
updateTickLabelForLinearScale(double min, double max, int length)
Updates tick label for normal scale.private void
updateTickLabelForLinearScale(double min, double max, int length, double tickStep)
Updates tick label for normal scale.private void
updateTickLabelForLogScale(double min, double max, int length)
Updates tick label for log scale.private void
updateTickLabelMaxLengthAndHeight()
Gets max length of tick label.private void
updateTickVisibility()
Updates the visibility of tick labels.
-
-
-
Field Detail
-
NAME
public static final java.lang.String NAME
The name of this tick provider- See Also:
- Constant Field Values
-
MINUS
private static final java.lang.String MINUS
- See Also:
- Constant Field Values
-
TICK_LABEL_GAP
private static final int TICK_LABEL_GAP
- See Also:
- Constant Field Values
-
showMaxLabel
private boolean showMaxLabel
default: show max label
-
showMinLabel
private boolean showMinLabel
default: show min label
-
tickLabelValues
private java.util.ArrayList<java.lang.Double> tickLabelValues
the array of tick label vales
-
tickLabels
private java.util.ArrayList<java.lang.String> tickLabels
the array of tick label
-
tickLabelPositions
private java.util.ArrayList<java.lang.Integer> tickLabelPositions
the array of tick label position in pixels
-
tickLabelVisibilities
private java.util.ArrayList<java.lang.Boolean> tickLabelVisibilities
the array of visibility state of tick label
-
tickLabelMaxLength
private int tickLabelMaxLength
the maximum length of tick labels
-
tickLabelMaxHeight
private int tickLabelMaxHeight
the maximum height of tick labels
-
gridStepInPixel
private int gridStepInPixel
-
minorPositions
private java.util.ArrayList<java.lang.Integer> minorPositions
the array of minor tick positions in pixels
-
scale
private IScaleProvider scale
-
-
Constructor Detail
-
LinearScaleTicks
public LinearScaleTicks(IScaleProvider scale)
constructor- Parameters:
scale
-
-
-
Method Detail
-
pow
private java.math.BigDecimal pow(double base, int exponent)
Get base^exponent
-
getGridStepInPixels
public int getGridStepInPixels()
- Returns:
- the gridStepInPixel
-
getTickLabelMaxHeight
public int getTickLabelMaxHeight()
- Returns:
- the tickLabelMaxHeight
-
getTickLabelMaxLength
public int getTickLabelMaxLength()
- Returns:
- the tickLabelMaxLength
-
getPositions
public java.util.List<java.lang.Integer> getPositions()
Description copied from interface:ITicksProvider
Gets the tick positions.- Specified by:
getPositions
in interfaceITicksProvider
- Returns:
- the tick positions
-
getVisibilities
public java.util.List<java.lang.Boolean> getVisibilities()
- Specified by:
getVisibilities
in interfaceITicksProvider
- Returns:
- the tick visibilities
-
getPosition
public int getPosition(int index)
- Specified by:
getPosition
in interfaceITicksProvider
- Returns:
- tick position
-
getValue
public double getValue(int index)
- Specified by:
getValue
in interfaceITicksProvider
- Returns:
- tick value
-
getLabel
public java.lang.String getLabel(int index)
- Specified by:
getLabel
in interfaceITicksProvider
- Returns:
- tick label
-
getLabels
public java.util.List<java.lang.String> getLabels()
- Specified by:
getLabels
in interfaceITicksProvider
- Returns:
- the tick labels
-
getLabelPosition
public int getLabelPosition(int index)
- Specified by:
getLabelPosition
in interfaceITicksProvider
- Returns:
- label position
-
isVisible
public boolean isVisible(int index)
- Specified by:
isVisible
in interfaceITicksProvider
- Returns:
- true if tick is visible
-
getMajorCount
public int getMajorCount()
- Specified by:
getMajorCount
in interfaceITicksProvider
- Returns:
- number of major ticks
-
getMinorCount
public int getMinorCount()
- Specified by:
getMinorCount
in interfaceITicksProvider
- Returns:
- number of minor ticks
-
getMinorPosition
public int getMinorPosition(int index)
- Specified by:
getMinorPosition
in interfaceITicksProvider
- Returns:
- minor tick position
-
getMaxWidth
public int getMaxWidth()
- Specified by:
getMaxWidth
in interfaceITicksProvider
- Returns:
- maximum width in pixels of tick labels
-
getMaxHeight
public int getMaxHeight()
- Specified by:
getMaxHeight
in interfaceITicksProvider
- Returns:
- maximum height in pixels of tick labels
-
isShowMaxLabel
public boolean isShowMaxLabel()
Description copied from interface:ITicksProvider
Shows the maximum value of the range as a label- Specified by:
isShowMaxLabel
in interfaceITicksProvider
- Returns:
- true (default) if shown
-
setShowMaxLabel
public void setShowMaxLabel(boolean showMaxLabel)
Description copied from interface:ITicksProvider
sets the visibility of the maximum label- Specified by:
setShowMaxLabel
in interfaceITicksProvider
-
isShowMinLabel
public boolean isShowMinLabel()
Description copied from interface:ITicksProvider
Shows the minimum value of the range as a label- Specified by:
isShowMinLabel
in interfaceITicksProvider
- Returns:
- true (default) if shown
-
setShowMinLabel
public void setShowMinLabel(boolean showMinLabel)
Description copied from interface:ITicksProvider
Sets the visibility of the minimum label- Specified by:
setShowMinLabel
in interfaceITicksProvider
-
getGridStep
private double getGridStep(int lengthInPixels, double min, double max)
Gets the grid step.- Parameters:
lengthInPixels
- scale length in pixelsmin
- minimum valuemax
- maximum value- Returns:
- rounded value.
-
getTimeGridStep
private double getTimeGridStep(double min, double max, double gridStepHint)
Given min, max and the gridStepHint, returns the time grid step as a double.- Parameters:
min
- minimum valuemax
- maximum valuegridStepHint
-- Returns:
- time rounded value
-
hasSpaceToDraw
private boolean hasSpaceToDraw(int previousPosition, int tickLabelPosition, java.lang.String previousTickLabel, java.lang.String tickLabel)
If it has enough space to draw the tick label
-
isMajorTick
private boolean isMajorTick(double tickValue)
Checks if the tick label is major tick. For example: 0.001, 0.01, 0.1, 1, 10, 100...
-
getDefaultFormatPattern
public java.lang.String getDefaultFormatPattern(double min, double max)
- Specified by:
getDefaultFormatPattern
in interfaceITicksProvider
- Returns:
- default format pattern for labels
-
updateTickLabelForLinearScale
private void updateTickLabelForLinearScale(double min, double max, int length)
Updates tick label for normal scale.- Parameters:
min
-max
-length
- scale tick length (without margin)
-
updateTickLabelForLinearScale
private void updateTickLabelForLinearScale(double min, double max, int length, double tickStep)
Updates tick label for normal scale.- Parameters:
min
-max
-length
- scale tick length (without margin)tickStep
- the tick step
-
updateTickLabelForLogScale
private void updateTickLabelForLogScale(double min, double max, int length)
Updates tick label for log scale.- Parameters:
min
-max
-length
- the length of scale
-
addTickInfo
private void addTickInfo(java.math.BigDecimal d, double max, double logMin, int length, boolean isFirstPosition, boolean minDateAdded)
Add the tick labels, positions and values to the corresponding List used to store them.- Parameters:
d
- BigDecimal valuemax
- maximum valuelogMin
- value used to calculate tick label positionlength
- value used to calculate tick label positionisFirstPosition
- needed for date labelminDateAdded
- needed for date label
-
addMinMaxTickInfo
private boolean addMinMaxTickInfo(double value, int length, boolean isMin)
Add the tick labels, positions and values for the min and max case to the corresponding List used to store them.- Parameters:
value
-length
- used for max positionisMin
- if True, we add the min related info, otherwise the max related info- Returns:
- minDateAdded false by default, true if min and date are enabled
-
updateTickLabelMaxLengthAndHeight
private void updateTickLabelMaxLengthAndHeight()
Gets max length of tick label.
-
getHeadMargin
public int getHeadMargin()
- Specified by:
getHeadMargin
in interfaceITicksProvider
- Returns:
- margin in pixel between edge of client area and head of axis line
-
getTailMargin
public int getTailMargin()
- Specified by:
getTailMargin
in interfaceITicksProvider
- Returns:
- margin in pixel between edge of client area and tail of axis line
-
updateTickVisibility
private void updateTickVisibility()
Updates the visibility of tick labels.
-
update
public Range update(double min, double max, int length)
Description copied from interface:ITicksProvider
Update ticks.- Specified by:
update
in interfaceITicksProvider
- Returns:
- null unless the provider has not had cause to change the range - in which case, the new range is returned.
-
-