@Override public double java2DToValue(double java2DValue,Rectangle2D plotArea,RectangleEdge edge){
  Range range=getRange();
  double axisMin=switchedLog10(range.getLowerBound());
  double axisMax=switchedLog10(range.getUpperBound());
  double plotMin=0.0;
  double plotMax=0.0;
  if (RectangleEdge.isTopOrBottom(edge)) {
    plotMin=plotArea.getX();
    plotMax=plotArea.getMaxX();
  }
 else   if (RectangleEdge.isLeftOrRight(edge)) {
    plotMin=plotArea.getMaxY();
    plotMax=plotArea.getMinY();
  }
  if (isInverted()) {
    return switchedPow10(axisMax - ((java2DValue - plotMin) / (plotMax - plotMin)) * (axisMax - axisMin));
  }
 else {
    return switchedPow10(axisMin + ((java2DValue - plotMin) / (plotMax - plotMin)) * (axisMax - axisMin));
  }
}

@ Override public double java2DToValue ( double java2DValue , Rectangle2D plotArea , RectangleEdge edge ) { Range range = getRange ( ) ; double axisMin = switchedLog10 ( range . getLowerBound ( ) ) ; double axisMax = switchedLog10 ( range . getUpperBound ( ) ) ; double plotMin = 0.0 ; double plotMax = 0.0 ; if ( RectangleEdge . isTopOrBottom ( edge ) ) { plotMin = plotArea . getX ( ) ; plotMax = plotArea . getMaxX ( ) ; } else if ( RectangleEdge . isLeftOrRight ( edge ) ) { plotMin = plotArea . getMaxY ( ) ; plotMax = plotArea . getMinY ( ) ; } if ( isInverted ( ) ) { return switchedPow10 ( axisMax - ( ( java2DValue - plotMin ) / ( plotMax - plotMin ) ) * ( axisMax - axisMin ) ) ; } else { return switchedPow10 ( axisMin + ( ( java2DValue - plotMin ) / ( plotMax - plotMin ) ) * ( axisMax - axisMin ) ) ; } }
converts a coordinate in java2d space to the corresponding data value , assuming that the axis runs along one edge of the specified plotarea .
