Class LinearScaleTicks

  • All Implemented Interfaces:
    ITicksProvider

    public class LinearScaleTicks
    extends java.lang.Object
    implements ITicksProvider
    Default scale tick mark algorithm
    • Field Detail

      • NAME

        public static final java.lang.String NAME
        The name of this tick provider
        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
    • 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 interface ITicksProvider
        Returns:
        the tick positions
      • getVisibilities

        public java.util.List<java.lang.Boolean> getVisibilities()
        Specified by:
        getVisibilities in interface ITicksProvider
        Returns:
        the tick visibilities
      • getPosition

        public int getPosition​(int index)
        Specified by:
        getPosition in interface ITicksProvider
        Returns:
        tick position
      • getValue

        public double getValue​(int index)
        Specified by:
        getValue in interface ITicksProvider
        Returns:
        tick value
      • getLabel

        public java.lang.String getLabel​(int index)
        Specified by:
        getLabel in interface ITicksProvider
        Returns:
        tick label
      • getLabels

        public java.util.List<java.lang.String> getLabels()
        Specified by:
        getLabels in interface ITicksProvider
        Returns:
        the tick labels
      • isVisible

        public boolean isVisible​(int index)
        Specified by:
        isVisible in interface ITicksProvider
        Returns:
        true if tick is visible
      • getMinorPosition

        public int getMinorPosition​(int index)
        Specified by:
        getMinorPosition in interface ITicksProvider
        Returns:
        minor tick position
      • getMaxWidth

        public int getMaxWidth()
        Specified by:
        getMaxWidth in interface ITicksProvider
        Returns:
        maximum width in pixels of tick labels
      • getMaxHeight

        public int getMaxHeight()
        Specified by:
        getMaxHeight in interface ITicksProvider
        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 interface ITicksProvider
        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 interface ITicksProvider
      • isShowMinLabel

        public boolean isShowMinLabel()
        Description copied from interface: ITicksProvider
        Shows the minimum value of the range as a label
        Specified by:
        isShowMinLabel in interface ITicksProvider
        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 interface ITicksProvider
      • getGridStep

        private double getGridStep​(int lengthInPixels,
                                   double min,
                                   double max)
        Gets the grid step.
        Parameters:
        lengthInPixels - scale length in pixels
        min - minimum value
        max - 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 value
        max - maximum value
        gridStepHint -
        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 interface ITicksProvider
        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 value
        max - maximum value
        logMin - value used to calculate tick label position
        length - value used to calculate tick label position
        isFirstPosition - needed for date label
        minDateAdded - 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 position
        isMin - 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 interface ITicksProvider
        Returns:
        margin in pixel between edge of client area and head of axis line
      • getTailMargin

        public int getTailMargin()
        Specified by:
        getTailMargin in interface ITicksProvider
        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 interface ITicksProvider
        Returns:
        null unless the provider has not had cause to change the range - in which case, the new range is returned.