public override AxisState draw(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge, PlotRenderingInfo plotState)
 {
   AxisState axisState = base.draw(g2, cursor, plotArea, dataArea, edge, plotState);
   if (this.isAdvanceLineVisible())
   {
     double num = this.valueToJava2D(this.getRange().getUpperBound(), dataArea, edge);
     Line2D.Double @double = (Line2D.Double) null;
     g2.setStroke(this.getAdvanceLineStroke());
     g2.setPaint(this.getAdvanceLinePaint());
     if (edge == RectangleEdge.__\u003C\u003ELEFT)
       @double = new Line2D.Double(cursor, num, cursor + ((RectangularShape) dataArea).getWidth(), num);
     else if (edge == RectangleEdge.__\u003C\u003ERIGHT)
       @double = new Line2D.Double(cursor - ((RectangularShape) dataArea).getWidth(), num, cursor, num);
     else if (edge == RectangleEdge.__\u003C\u003ETOP)
       @double = new Line2D.Double(num, cursor + ((RectangularShape) dataArea).getHeight(), num, cursor);
     else if (edge == RectangleEdge.__\u003C\u003EBOTTOM)
       @double = new Line2D.Double(num, cursor, num, cursor - ((RectangularShape) dataArea).getHeight());
     g2.draw((Shape) @double);
   }
   return axisState;
 }
 public override void drawItem(Graphics2D g2, CategoryItemRendererState state, Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis, ValueAxis rangeAxis, CategoryDataset dataset, int row, int column, int pass)
 {
   Number number1 = dataset.getValue(row, column);
   if (number1 == null)
     return;
   double categoryMiddle1 = domainAxis.getCategoryMiddle(column, this.getColumnCount(), dataArea, plot.getDomainAxisEdge());
   double num1 = rangeAxis.valueToJava2D(number1.doubleValue(), dataArea, plot.getRangeAxisEdge());
   g2.setPaint(this.getItemPaint(row, column));
   g2.setStroke(this.getItemStroke(row, column));
   Rectangle2D.Double double1 = new Rectangle2D.Double(categoryMiddle1 - 4.0, num1 - 4.0, 8.0, 8.0);
   PlotOrientation orientation = plot.getOrientation();
   if (orientation == PlotOrientation.__\u003C\u003EVERTICAL)
     this.objectIcon.paintIcon((Component) null, (Graphics) g2, ByteCodeHelper.d2i(categoryMiddle1), ByteCodeHelper.d2i(num1));
   else
     this.objectIcon.paintIcon((Component) null, (Graphics) g2, ByteCodeHelper.d2i(num1), ByteCodeHelper.d2i(categoryMiddle1));
   if (this.lastCategory == column)
   {
     if (this.min > number1.doubleValue())
       this.min = number1.doubleValue();
     if (this.max < number1.doubleValue())
       this.max = number1.doubleValue();
     if (dataset.getRowCount() - 1 == row)
     {
       g2.setPaint(this.groupPaint);
       g2.setStroke(this.groupStroke);
       double num2 = rangeAxis.valueToJava2D(this.min, dataArea, plot.getRangeAxisEdge());
       double num3 = rangeAxis.valueToJava2D(this.max, dataArea, plot.getRangeAxisEdge());
       if (orientation == PlotOrientation.__\u003C\u003EVERTICAL)
       {
         g2.draw((Shape) new Line2D.Double(categoryMiddle1, num2, categoryMiddle1, num3));
         this.minIcon.paintIcon((Component) null, (Graphics) g2, ByteCodeHelper.d2i(categoryMiddle1), ByteCodeHelper.d2i(num2));
         this.maxIcon.paintIcon((Component) null, (Graphics) g2, ByteCodeHelper.d2i(categoryMiddle1), ByteCodeHelper.d2i(num3));
       }
       else
       {
         g2.draw((Shape) new Line2D.Double(num2, categoryMiddle1, num3, categoryMiddle1));
         this.minIcon.paintIcon((Component) null, (Graphics) g2, ByteCodeHelper.d2i(num2), ByteCodeHelper.d2i(categoryMiddle1));
         this.maxIcon.paintIcon((Component) null, (Graphics) g2, ByteCodeHelper.d2i(num3), ByteCodeHelper.d2i(categoryMiddle1));
       }
     }
   }
   else
   {
     this.lastCategory = column;
     this.min = number1.doubleValue();
     this.max = number1.doubleValue();
   }
   if (this.plotLines && column != 0)
   {
     Number number2 = dataset.getValue(row, column - 1);
     if (number2 != null)
     {
       double d = number2.doubleValue();
       double categoryMiddle2 = domainAxis.getCategoryMiddle(column - 1, this.getColumnCount(), dataArea, plot.getDomainAxisEdge());
       double num2 = rangeAxis.valueToJava2D(d, dataArea, plot.getRangeAxisEdge());
       g2.setPaint(this.getItemPaint(row, column));
       g2.setStroke(this.getItemStroke(row, column));
       Line2D.Double double2 = orientation != PlotOrientation.__\u003C\u003EVERTICAL ? new Line2D.Double(num2, categoryMiddle2, num1, categoryMiddle1) : new Line2D.Double(categoryMiddle2, num2, categoryMiddle1, num1);
       g2.draw((Shape) double2);
     }
   }
   EntityCollection entityCollection = state.getEntityCollection();
   if (entityCollection == null || double1 == null)
     return;
   this.addItemEntity(entityCollection, dataset, row, column, (Shape) double1);
 }
 public virtual void drawRadialGridLines(Graphics2D g2, PolarPlot plot, ValueAxis radialAxis, List ticks, Rectangle2D dataArea)
 {
   ((Graphics) g2).setFont(radialAxis.getTickLabelFont());
   g2.setPaint(plot.getRadiusGridlinePaint());
   g2.setStroke(plot.getRadiusGridlineStroke());
   double lowerBound = radialAxis.getLowerBound();
   Point point = plot.translateValueThetaRadiusToJava2D(lowerBound, lowerBound, dataArea);
   Iterator iterator = ticks.iterator();
   while (iterator.hasNext())
   {
     NumberTick numberTick = (NumberTick) iterator.next();
     int num1 = (int) (plot.translateValueThetaRadiusToJava2D(90.0, numberTick.getNumber().doubleValue(), dataArea).x - point.x);
     int num2 = point.x - num1;
     int num3 = point.y - num1;
     int num4 = 2 * num1;
     Ellipse2D.Double @double = new Ellipse2D.Double((double) num2, (double) num3, (double) num4, (double) num4);
     g2.setPaint(plot.getRadiusGridlinePaint());
     g2.draw((Shape) @double);
   }
 }
 protected internal override AxisState drawTickMarksAndLabels(Graphics2D g2, double cursor, Rectangle2D plotArea, Rectangle2D dataArea, RectangleEdge edge)
 {
   this.internalMarkerWhenTicksOverlap = false;
   AxisState axisState = base.drawTickMarksAndLabels(g2, cursor, plotArea, dataArea, edge);
   if (!this.internalMarkerWhenTicksOverlap)
     return axisState;
   double num1 = (double) this.getTickMarkOutsideLength();
   FontMetrics fontMetrics = ((Graphics) g2).getFontMetrics(this.getTickLabelFont());
   double num2 = !this.isVerticalTickLabels() ? (double) fontMetrics.getHeight() : (double) fontMetrics.getMaxAdvance();
   double num3 = 0.0;
   if (this.isTickMarksVisible())
   {
     float num4 = (float) this.valueToJava2D(this.getRange().getUpperBound(), dataArea, edge);
     Line2D.Double @double = (Line2D.Double) null;
     g2.setStroke(this.getTickMarkStroke());
     g2.setPaint(this.getTickMarkPaint());
     if (edge == RectangleEdge.__\u003C\u003ELEFT)
       @double = new Line2D.Double(cursor - num2, (double) num4, cursor + num3, (double) num4);
     else if (edge == RectangleEdge.__\u003C\u003ERIGHT)
       @double = new Line2D.Double(cursor + num2, (double) num4, cursor - num3, (double) num4);
     else if (edge == RectangleEdge.__\u003C\u003ETOP)
       @double = new Line2D.Double((double) num4, cursor - num2, (double) num4, cursor + num3);
     else if (edge == RectangleEdge.__\u003C\u003EBOTTOM)
       @double = new Line2D.Double((double) num4, cursor + num2, (double) num4, cursor - num3);
     g2.draw((Shape) @double);
   }
   return axisState;
 }
 public virtual void drawAngularGridLines(Graphics2D g2, PolarPlot plot, List ticks, Rectangle2D dataArea)
 {
   ((Graphics) g2).setFont(plot.getAngleLabelFont());
   g2.setStroke(plot.getAngleGridlineStroke());
   g2.setPaint(plot.getAngleGridlinePaint());
   double lowerBound = plot.getAxis().getLowerBound();
   double maxRadius = plot.getMaxRadius();
   Point point1 = plot.translateValueThetaRadiusToJava2D(lowerBound, lowerBound, dataArea);
   Iterator iterator = ticks.iterator();
   while (iterator.hasNext())
   {
     NumberTick numberTick = (NumberTick) iterator.next();
     Point point2 = plot.translateValueThetaRadiusToJava2D(numberTick.getNumber().doubleValue(), maxRadius, dataArea);
     g2.setPaint(plot.getAngleGridlinePaint());
     ((Graphics) g2).drawLine((int) point1.x, (int) point1.y, (int) point2.x, (int) point2.y);
     if (plot.isAngleLabelsVisible())
     {
       int num1 = (int) point2.x;
       int num2 = (int) point2.y;
       g2.setPaint(plot.getAngleLabelPaint());
       TextUtilities.drawAlignedString(numberTick.getText(), g2, (float) num1, (float) num2, TextAnchor.__\u003C\u003ECENTER);
     }
   }
 }
 public virtual void drawSeries(Graphics2D g2, Rectangle2D dataArea, PlotRenderingInfo info, PolarPlot plot, XYDataset dataset, int seriesIndex)
 {
   Polygon polygon = new Polygon();
   int itemCount = dataset.getItemCount(seriesIndex);
   for (int i2 = 0; i2 < itemCount; ++i2)
   {
     double xvalue = dataset.getXValue(seriesIndex, i2);
     double yvalue = dataset.getYValue(seriesIndex, i2);
     Point point = plot.translateValueThetaRadiusToJava2D(xvalue, yvalue, dataArea);
     polygon.addPoint((int) point.x, (int) point.y);
   }
   g2.setPaint(this.lookupSeriesPaint(seriesIndex));
   g2.setStroke(this.lookupSeriesStroke(seriesIndex));
   if (this.isSeriesFilled(seriesIndex))
   {
     Composite composite = g2.getComposite();
     g2.setComposite((Composite) AlphaComposite.getInstance(3, 0.5f));
     g2.fill((Shape) polygon);
     g2.setComposite(composite);
   }
   else
     g2.draw((Shape) polygon);
 }
 public override void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame, Rectangle2D view)
 {
   g2.setPaint((Paint) Color.blue);
   g2.setStroke((Stroke) new BasicStroke(1f));
   Rectangle2D rectangle2D1 = DialPlot.rectangleByRadius(frame, this.radius, this.radius);
   Rectangle2D rectangle2D2 = DialPlot.rectangleByRadius(frame, this.widthRadius, this.widthRadius);
   double d = plot.getValue(this.datasetIndex);
   double num = plot.getScaleForDataset(this.datasetIndex).valueToAngle(d);
   Point2D endPoint1 = ((Arc2D) new Arc2D.Double(rectangle2D1, num, 0.0, 0)).getEndPoint();
   Arc2D.Double double1 = new Arc2D.Double(rectangle2D2, num - 90.0, 180.0, 0);
   Point2D startPoint1 = ((Arc2D) double1).getStartPoint();
   Point2D endPoint2 = ((Arc2D) double1).getEndPoint();
   Point2D startPoint2 = ((Arc2D) new Arc2D.Double(rectangle2D2, num - 180.0, 0.0, 0)).getStartPoint();
   GeneralPath generalPath = new GeneralPath();
   ((Path2D.Float) generalPath).moveTo((float) endPoint1.getX(), (float) endPoint1.getY());
   ((Path2D.Float) generalPath).lineTo((float) startPoint1.getX(), (float) startPoint1.getY());
   ((Path2D.Float) generalPath).lineTo((float) startPoint2.getX(), (float) startPoint2.getY());
   ((Path2D.Float) generalPath).lineTo((float) endPoint2.getX(), (float) endPoint2.getY());
   ((Path2D) generalPath).closePath();
   g2.setPaint(this.fillPaint);
   g2.fill((Shape) generalPath);
   g2.setPaint(this.outlinePaint);
   Line2D.Double double2 = new Line2D.Double(((RectangularShape) frame).getCenterX(), ((RectangularShape) frame).getCenterY(), endPoint1.getX(), endPoint1.getY());
   g2.draw((Shape) double2);
   ((Line2D) double2).setLine(startPoint1, endPoint2);
   g2.draw((Shape) double2);
   ((Line2D) double2).setLine(endPoint2, endPoint1);
   g2.draw((Shape) double2);
   ((Line2D) double2).setLine(startPoint1, endPoint1);
   g2.draw((Shape) double2);
   ((Line2D) double2).setLine(startPoint1, startPoint2);
   g2.draw((Shape) double2);
   ((Line2D) double2).setLine(endPoint2, startPoint2);
   g2.draw((Shape) double2);
 }
 public override void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame, Rectangle2D view)
 {
   g2.setPaint(this.paint);
   g2.setStroke(this.stroke);
   Rectangle2D rectangle2D = DialPlot.rectangleByRadius(frame, this.radius, this.radius);
   double d = plot.getValue(this.datasetIndex);
   double num = plot.getScaleForDataset(this.datasetIndex).valueToAngle(d);
   Point2D endPoint = ((Arc2D) new Arc2D.Double(rectangle2D, num, 0.0, 0)).getEndPoint();
   Line2D.Double @double = new Line2D.Double(((RectangularShape) frame).getCenterX(), ((RectangularShape) frame).getCenterY(), endPoint.getX(), endPoint.getY());
   g2.draw((Shape) @double);
 }
 public override void drawItem(Graphics2D g2, XYItemRendererState state, Rectangle2D dataArea, PlotRenderingInfo info, XYPlot plot, ValueAxis domainAxis, ValueAxis rangeAxis, XYDataset dataset, int series, int item, CrosshairState crosshairState, int pass)
 {
   if (pass == 0 && dataset is IntervalXYDataset && this.getItemVisible(series, item))
   {
     IntervalXYDataset ntervalXyDataset = (IntervalXYDataset) dataset;
     PlotOrientation orientation = plot.getOrientation();
     if (this.drawXError)
     {
       double startXvalue = ntervalXyDataset.getStartXValue(series, item);
       double endXvalue = ntervalXyDataset.getEndXValue(series, item);
       double yvalue = ntervalXyDataset.getYValue(series, item);
       RectangleEdge domainAxisEdge = plot.getDomainAxisEdge();
       double num1 = domainAxis.valueToJava2D(startXvalue, dataArea, domainAxisEdge);
       double num2 = domainAxis.valueToJava2D(endXvalue, dataArea, domainAxisEdge);
       double num3 = rangeAxis.valueToJava2D(yvalue, dataArea, plot.getRangeAxisEdge());
       double num4 = this.capLength / 2.0;
       Line2D.Double double1;
       Line2D.Double double2;
       Line2D.Double double3;
       if (orientation == PlotOrientation.__\u003C\u003EVERTICAL)
       {
         double1 = new Line2D.Double(num1, num3, num2, num3);
         double2 = new Line2D.Double(num1, num3 - num4, num1, num3 + num4);
         double3 = new Line2D.Double(num2, num3 - num4, num2, num3 + num4);
       }
       else
       {
         double1 = new Line2D.Double(num3, num1, num3, num2);
         double2 = new Line2D.Double(num3 - num4, num1, num3 + num4, num1);
         double3 = new Line2D.Double(num3 - num4, num2, num3 + num4, num2);
       }
       if (this.errorPaint != null)
         g2.setPaint(this.errorPaint);
       else
         g2.setPaint(this.getItemPaint(series, item));
       if (this.errorStroke != null)
         g2.setStroke(this.errorStroke);
       else
         g2.setStroke(this.getItemStroke(series, item));
       g2.draw((Shape) double1);
       g2.draw((Shape) double2);
       g2.draw((Shape) double3);
     }
     if (this.drawYError)
     {
       double startYvalue = ntervalXyDataset.getStartYValue(series, item);
       double endYvalue = ntervalXyDataset.getEndYValue(series, item);
       double xvalue = ntervalXyDataset.getXValue(series, item);
       RectangleEdge rangeAxisEdge = plot.getRangeAxisEdge();
       double num1 = rangeAxis.valueToJava2D(startYvalue, dataArea, rangeAxisEdge);
       double num2 = rangeAxis.valueToJava2D(endYvalue, dataArea, rangeAxisEdge);
       double num3 = domainAxis.valueToJava2D(xvalue, dataArea, plot.getDomainAxisEdge());
       double num4 = this.capLength / 2.0;
       Line2D.Double double1;
       Line2D.Double double2;
       Line2D.Double double3;
       if (orientation == PlotOrientation.__\u003C\u003EVERTICAL)
       {
         double1 = new Line2D.Double(num3, num1, num3, num2);
         double2 = new Line2D.Double(num3 - num4, num1, num3 + num4, num1);
         double3 = new Line2D.Double(num3 - num4, num2, num3 + num4, num2);
       }
       else
       {
         double1 = new Line2D.Double(num1, num3, num2, num3);
         double2 = new Line2D.Double(num1, num3 - num4, num1, num3 + num4);
         double3 = new Line2D.Double(num2, num3 - num4, num2, num3 + num4);
       }
       if (this.errorPaint != null)
         g2.setPaint(this.errorPaint);
       else
         g2.setPaint(this.getItemPaint(series, item));
       if (this.errorStroke != null)
         g2.setStroke(this.errorStroke);
       else
         g2.setStroke(this.getItemStroke(series, item));
       g2.draw((Shape) double1);
       g2.draw((Shape) double2);
       g2.draw((Shape) double3);
     }
   }
   base.drawItem(g2, state, dataArea, info, plot, domainAxis, rangeAxis, dataset, series, item, crosshairState, pass);
 }