org.eclipse.birt.chart.computation.withaxes
Class AutoScale

java.lang.Object
  extended by org.eclipse.birt.chart.computation.Methods
      extended by org.eclipse.birt.chart.computation.withaxes.AutoScale
All Implemented Interfaces:
java.lang.Cloneable, IConstants

public final class AutoScale
extends Methods
implements java.lang.Cloneable

Encapsulates the auto scaling algorithms used by the rendering and chart computation framework.


Nested Class Summary
static class AutoScale.ScaleInfo
           
 
Field Summary
static java.lang.String KEY_SHARED_MINMAX
           
 
Fields inherited from interface org.eclipse.birt.chart.computation.IConstants
ABOVE, ANCILLARY_AXIS, ANCILLARY_BASE, AUTO, AVERAGE, AXIS, BACKWARD, BASE, BASE_AXIS, BELOW, BIG_NUMBER_PRIMITIVE_ARRAY, BOOLEAN, BOTTOM, CENTER, COLLECTION, DATE_TIME, DESIGN_TIME, EMPTY_STRING, EQUAL, FORWARD, HORIZONTAL, INSIDE, LABELS, LEFT, LEGEND_ENTRY, LEGEND_GROUP_NAME, LEGEND_MINSLICE_ENTRY, LEGEND_SEPERATOR, LESS, LINE_EXPAND_DOUBLE_SIZE, LINE_EXPAND_SIZE, LINEAR, LOG_10, LOGARITHMIC, MAJOR, MAX, MIN, MINOR, MORE, NON_PRIMITIVE_ARRAY, NULL_STRING, NUMBER_PRIMITIVE_ARRAY, NUMERICAL, ONE_SPACE, ORTHOGONAL, ORTHOGONAL_AXIS, OTHER, OUTSIDE, PERCENT, POSITION_MASK, POSITION_MOVE_ABOVE, POSITION_MOVE_BELOW, POSITION_MOVE_LEFT, POSITION_MOVE_RIGHT, PRIMITIVE_ARRAY, RIGHT, RUN_TIME, SOME_NULL, TEXT, THREE_D, TICK_ABOVE, TICK_ACROSS, TICK_BELOW, TICK_LEFT, TICK_NONE, TICK_RIGHT, TICK_SIDE1, TICK_SIDE2, TICK_SIZE, TOP, TWO_5_D, TWO_D, UNDEFINED, UNDEFINED_STRING, USER_INTERFACE, VALUE, VERTICAL
 
Constructor Summary
AutoScale(AutoScale.ScaleInfo info)
           
AutoScale(AutoScale.ScaleInfo info, ScaleContext context)
           
 
Method Summary
 boolean checkFit(IDisplayServer xs, Label la, int iLabelLocation)
          Checks all labels for any overlap for a given axis' scale
 java.lang.Object clone()
           
 double computeAxisLabelThickness(IDisplayServer xs, Label la, int iOrientation)
           
 com.ibm.icu.text.DecimalFormat computeDecimalFormat(com.ibm.icu.math.BigDecimal bdAxisValue, com.ibm.icu.math.BigDecimal bdAxisStep)
           
 com.ibm.icu.text.DecimalFormat computeDecimalFormat(double dAxisValue, double dAxisStep)
          Computes the default DecimalFormat pattern for axis according to axis value and scale steps.
 com.ibm.icu.text.DecimalFormat computeDefaultDecimalFormat(java.lang.Number number)
          Creates a default decimal format based on specified number.
 double computeStaggeredAxisLabelOffset(IDisplayServer xs, Label la, int iOrientation)
           
 int computeTicks(IDisplayServer xs, Label la, int iLabelLocation, int iOrientation, double dStart, double dEnd, boolean bConsiderStartEndLabels, AllAxes aax)
           
 int computeTicks(IDisplayServer xs, Label la, int iLabelLocation, int iOrientation, double dStart, double dEnd, boolean bConsiderStartLabel, boolean bConsiderEndLabel, AllAxes aax)
           
 java.lang.String formatCategoryValue(int iType, java.lang.Object oValue, int iDateTimeUnit)
          Returns the formatted value for given Axis type and value.
 com.ibm.icu.math.BigDecimal getBigNumberDivisor()
          Returns big number divisor of axis scale.
 java.lang.String getComputedLabelText(int index)
           
 DataSetIterator getData()
           
 int getDirection()
          Returns the scale direction.
 double getEnd()
           
 double[] getEndPoints()
           
 double getFactor()
           
 FormatSpecifier getFormatSpecifier()
           
 java.lang.Object getMaximum()
           
 java.lang.Object getMinimum()
           
 double[] getMinorCoordinates(int iMinorUnitsPerMajor)
           
static int getMinUnit(CDateTime cdt)
           
 double getNormalizedEnd()
          Returns the normalized end point.
 double[] getNormalizedEndPoints()
          Returns the normalized start and end point.
 double getNormalizedStart()
          Returns the normalized start point.
 java.lang.String getNumericPattern()
          Returns an auto computed decimal format pattern for representing axis labels on a numeric axis
 RunTimeContext getRunTimeContext()
           
 double getStart()
           
 java.lang.Object getStep()
           
 java.lang.Integer getStepNumber()
           
 AxisTickCoordinates getTickCordinates()
           
 int getTickCount()
          Computes tick count
 int getType()
           
 java.lang.Object getUnit()
           
static int getUnitId(int iUnit)
           
 double getUnitSize()
          Returns the absolute value of the scale unit.
 java.util.Collection<java.lang.Integer> getVisibleLabelIds()
          Returns a list of all visible indexes, in the moment works only for category.
 boolean isAxisLabelStaggered()
           
 boolean isBigNumber()
          Checks if the axis scale represents big number.
 boolean isCategoryScale()
          Checks if axis is category style or Text type
 boolean isMaximumFixed()
           
 boolean isMinimumFixed()
           
 boolean isSetFactor()
           
 boolean isStepFixed()
           
 boolean isTickBetweenCategories()
           
 boolean isTickLabelStaggered(int index)
           
 boolean isTickLabelVisible(int index)
           
 void setBigNubmerDivisor(com.ibm.icu.math.BigDecimal divisor)
          Sets big number divisor for axis scale.
 void setData(DataSetIterator _oaData)
           
 void setMaximum(java.lang.Object o)
           
 void setMaximumFixed(boolean v)
           
 void setMinimum(java.lang.Object o)
           
 void setMinimumFixed(boolean v)
           
static void setNumberMinMaxToScale(AutoScale sc, java.lang.Object oMinimum, java.lang.Object oMaximum, RunTimeContext rtc, OneAxis ax)
          Updates AutoScale by checking min or max
 void setStep(java.lang.Object o)
           
 void setStepFixed(boolean v)
           
 void setStepNumber(java.lang.Integer o)
           
static void setStepToScale(AutoScale sc, java.lang.Object oStep, java.lang.Integer oStepNumber, RunTimeContext rtc)
          Updates AutoScale by checking step size and step number
 void updateAxisMinMax(java.lang.Object oMinValue, java.lang.Object oMaxValue)
          Computes min, max value, step size and step number of the Axis
 boolean zoomIn()
          Zooms IN 'once' into a scale of type numerical or datetime Typically, this is called in a loop until label overlaps occur
 boolean zoomOut()
          Zooms OUT 'once' into a scale of type numerical or datetime Typically, this is called in a loop until label overlaps occur
 
Methods inherited from class org.eclipse.birt.chart.computation.Methods
asDateTime, asDouble, asInteger, computeBox, computeBox, computeBox, computeBox, computeFontHeight, computeHeight, computeHeight, computeLabelSize, computePolygon, computePolygon, computePolygon, computeRotatedTopPoint, computeWidth, computeWidth, getLabelPosition, getLocation, getLocation, getLocation, getNormalizedLocation, getNormalizedLocation
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

KEY_SHARED_MINMAX

public static java.lang.String KEY_SHARED_MINMAX
Constructor Detail

AutoScale

public AutoScale(AutoScale.ScaleInfo info)

AutoScale

public AutoScale(AutoScale.ScaleInfo info,
                 ScaleContext context)
Method Detail

getDirection

public int getDirection()
Returns the scale direction.

Returns:
direction

clone

public final java.lang.Object clone()
Overrides:
clone in class java.lang.Object

zoomIn

public final boolean zoomIn()
Zooms IN 'once' into a scale of type numerical or datetime Typically, this is called in a loop until label overlaps occur


zoomOut

public final boolean zoomOut()
Zooms OUT 'once' into a scale of type numerical or datetime Typically, this is called in a loop until label overlaps occur


getNumericPattern

public final java.lang.String getNumericPattern()
Returns an auto computed decimal format pattern for representing axis labels on a numeric axis

Returns:
pattern

getType

public final int getType()

setData

public final void setData(DataSetIterator _oaData)
Parameters:
_oaData -

getFormatSpecifier

public final FormatSpecifier getFormatSpecifier()

getUnit

public final java.lang.Object getUnit()

getData

public final DataSetIterator getData()

isTickLabelVisible

public final boolean isTickLabelVisible(int index)

getComputedLabelText

public final java.lang.String getComputedLabelText(int index)

getVisibleLabelIds

public final java.util.Collection<java.lang.Integer> getVisibleLabelIds()
Returns a list of all visible indexes, in the moment works only for category.

Returns:
id

isTickLabelStaggered

public final boolean isTickLabelStaggered(int index)

isAxisLabelStaggered

public final boolean isAxisLabelStaggered()

isTickBetweenCategories

public final boolean isTickBetweenCategories()

getTickCordinates

public final AxisTickCoordinates getTickCordinates()

getNormalizedStart

public final double getNormalizedStart()
Returns the normalized start point. always be Zero.

Returns:
start point

getNormalizedEnd

public final double getNormalizedEnd()
Returns the normalized end point. this will be the (original end - original start).

Returns:
end point

getNormalizedEndPoints

public final double[] getNormalizedEndPoints()
Returns the normalized start and end point.

Returns:
start and end point

getEndPoints

public final double[] getEndPoints()

getTickCount

public final int getTickCount()
                       throws ChartException
Computes tick count

Returns:
tick count
Throws:
ChartException

getUnitSize

public final double getUnitSize()
Returns the absolute value of the scale unit.

Returns:
unit size

getMinimum

public final java.lang.Object getMinimum()

setMinimum

public final void setMinimum(java.lang.Object o)
Parameters:
o -

getMaximum

public final java.lang.Object getMaximum()

setMaximum

public final void setMaximum(java.lang.Object o)
Parameters:
o -

getStep

public final java.lang.Object getStep()
Returns:
step size

setStep

public final void setStep(java.lang.Object o)
Parameters:
o -

getStepNumber

public final java.lang.Integer getStepNumber()
Returns:
step number

setStepNumber

public final void setStepNumber(java.lang.Integer o)

getFactor

public final double getFactor()

isSetFactor

public final boolean isSetFactor()

updateAxisMinMax

public final void updateAxisMinMax(java.lang.Object oMinValue,
                                   java.lang.Object oMaxValue)
Computes min, max value, step size and step number of the Axis

Parameters:
oMinValue - min value in data points. Double or CDateTime type.
oMaxValue - max value in data points. Double or CDateTime type.

checkFit

public final boolean checkFit(IDisplayServer xs,
                              Label la,
                              int iLabelLocation)
                       throws ChartException
Checks all labels for any overlap for a given axis' scale

Parameters:
la -
iLabelLocation -
Returns:
fit or not
Throws:
ChartException

getStart

public final double getStart()

getEnd

public final double getEnd()

getMinUnit

public static int getMinUnit(CDateTime cdt)

getUnitId

public static int getUnitId(int iUnit)

computeTicks

public final int computeTicks(IDisplayServer xs,
                              Label la,
                              int iLabelLocation,
                              int iOrientation,
                              double dStart,
                              double dEnd,
                              boolean bConsiderStartEndLabels,
                              AllAxes aax)
                       throws ChartException
Parameters:
la -
iLabelLocation -
iOrientation -
dStart -
dEnd -
bConsiderStartEndLabels -
aax -
Throws:
ChartException

computeTicks

public final int computeTicks(IDisplayServer xs,
                              Label la,
                              int iLabelLocation,
                              int iOrientation,
                              double dStart,
                              double dEnd,
                              boolean bConsiderStartLabel,
                              boolean bConsiderEndLabel,
                              AllAxes aax)
                       throws ChartException
Parameters:
la -
iLabelLocation -
iOrientation -
dStart -
dEnd -
bConsiderStartEndLabels -
aax -
Throws:
ChartException

formatCategoryValue

public final java.lang.String formatCategoryValue(int iType,
                                                  java.lang.Object oValue,
                                                  int iDateTimeUnit)
Returns the formatted value for given Axis type and value.

Parameters:
iType -
oValue -
Returns:
formatted string

computeAxisLabelThickness

public final double computeAxisLabelThickness(IDisplayServer xs,
                                              Label la,
                                              int iOrientation)
                                       throws ChartException
Throws:
ChartException

computeStaggeredAxisLabelOffset

public final double computeStaggeredAxisLabelOffset(IDisplayServer xs,
                                                    Label la,
                                                    int iOrientation)
                                             throws ChartException
Throws:
ChartException

isStepFixed

public final boolean isStepFixed()

setStepFixed

public final void setStepFixed(boolean v)
Parameters:
v -

isMinimumFixed

public final boolean isMinimumFixed()

setMinimumFixed

public final void setMinimumFixed(boolean v)
Parameters:
v -

isMaximumFixed

public final boolean isMaximumFixed()

setMaximumFixed

public final void setMaximumFixed(boolean v)
Parameters:
v -

isCategoryScale

public final boolean isCategoryScale()
Checks if axis is category style or Text type

Returns:
category scale or not

getMinorCoordinates

public final double[] getMinorCoordinates(int iMinorUnitsPerMajor)

getRunTimeContext

public final RunTimeContext getRunTimeContext()

setNumberMinMaxToScale

public static void setNumberMinMaxToScale(AutoScale sc,
                                          java.lang.Object oMinimum,
                                          java.lang.Object oMaximum,
                                          RunTimeContext rtc,
                                          OneAxis ax)
                                   throws ChartException
Updates AutoScale by checking min or max

Parameters:
sc -
oMinimum -
oMaximum -
rtc -
ax -
Throws:
ChartException

setStepToScale

public static void setStepToScale(AutoScale sc,
                                  java.lang.Object oStep,
                                  java.lang.Integer oStepNumber,
                                  RunTimeContext rtc)
                           throws ChartException
Updates AutoScale by checking step size and step number

Parameters:
sc -
oStep -
oStepNumber -
rtc -
Throws:
ChartException

computeDefaultDecimalFormat

public final com.ibm.icu.text.DecimalFormat computeDefaultDecimalFormat(java.lang.Number number)
Creates a default decimal format based on specified number.

Parameters:
number - specified number.
Returns:
instance of DecimalFormat

computeDecimalFormat

public final com.ibm.icu.text.DecimalFormat computeDecimalFormat(com.ibm.icu.math.BigDecimal bdAxisValue,
                                                                 com.ibm.icu.math.BigDecimal bdAxisStep)

computeDecimalFormat

public final com.ibm.icu.text.DecimalFormat computeDecimalFormat(double dAxisValue,
                                                                 double dAxisStep)
Computes the default DecimalFormat pattern for axis according to axis value and scale steps.

Parameters:
dAxisValue - axis value
dAxisStep - scale step
Returns:
default format pattern

setBigNubmerDivisor

public void setBigNubmerDivisor(com.ibm.icu.math.BigDecimal divisor)
Sets big number divisor for axis scale.

Parameters:
divisor -
Since:
2.6

isBigNumber

public boolean isBigNumber()
Checks if the axis scale represents big number.

Returns:
boolean
Since:
2.6

getBigNumberDivisor

public com.ibm.icu.math.BigDecimal getBigNumberDivisor()
Returns big number divisor of axis scale.

Returns:
big number divisor
Since:
2.6


Copyright © 2005-2008 Actuate Corp. All rights reserved.