package business.binding_generators.bG_components;

import bH.T;
import bH.X;
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.Polygon;
import java.awt.RenderingHints;
import java.awt.Stroke;
import java.awt.geom.Arc2D;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import javax.swing.JComponent;

public class JComponentExtensionPaint extends JComponent {
  double a = 0.93D;
  
  double b = 0.07D;
  
  private double p = 0.12D;
  
  private int q = 135;
  
  private double r = 0.0D;
  
  private int s = 135;
  
  private l t = new a(60, 2);
  
  public static int c = 1;
  
  public static int d = 0;
  
  public static int e = 2;
  
  private int u = c;
  
  private boolean v = true;
  
  Stroke f = new BasicStroke(1.0F, 2, 0, 50.0F, null, 0.0F);
  
  Stroke g = new BasicStroke(2.0F, 2, 0, 50.0F, null, 0.0F);
  
  Stroke h = new BasicStroke(3.0F);
  
  Color i = Color.GREEN;
  
  Color j = Color.BLUE;
  
  Color k = Color.RED;
  
  private boolean w = false;
  
  ArrayList l = new ArrayList();
  
  HashMap m = new HashMap<>();
  
  ArrayList n = new ArrayList();
  
  List o = new ArrayList();
  
  public JComponentExtensionPaint() {
    setBackground(Color.WHITE);
    n n = new n(this);
    addMouseListener(n);
    addMouseMotionListener(n);
  }
  
  public void a(j paramj) {
    this.o.add(paramj);
  }
  
  private void a(List paramList) {
    for (j j : this.o)
      j.a(paramList); 
  }
  
  public void a(p paramp) {
    this.l.add(paramp);
  }
  
  public void b(p paramp) {
    this.l.remove(paramp);
  }
  
  private void k() {
    double d = c();
    for (p p : this.l)
      p.a(d); 
  }
  
  public void paint(Graphics paramGraphics) {
    Graphics2D graphics2D = (Graphics2D)paramGraphics;
    graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    paramGraphics.setColor(getBackground());
    paramGraphics.fillRect(0, 0, getWidth(), getHeight());
    d(paramGraphics);
    paramGraphics.setColor(getForeground());
    int i = m();
    int j = i - (int)(i * this.b);
    double d1 = ((getWidth() - j) / 2);
    double d2 = ((getHeight() - j) / 2);
    double d3 = ((getWidth() - i) / 2);
    double d4 = ((getHeight() - i) / 2);
    ArrayList<k> arrayList = e().a();
    if (arrayList.size() > 0) {
      double d = l() - 360.0D - ((k)arrayList.get(arrayList.size() - 1)).a() + ((k)arrayList.get(arrayList.size() - 1)).b();
      graphics2D.setStroke(this.f);
      ArrayList<k> arrayList1 = e().a();
      n();
      for (byte b = 0; b < arrayList1.size(); b++) {
        k k = arrayList1.get(b);
        double d5 = d;
        double d6 = l() + k.a() - d;
        double d7 = k.b();
        paramGraphics.setColor(getForeground());
        graphics2D.setStroke(this.f);
        a(paramGraphics, d1, d2, j, j, d5, d6);
        double d8 = d5 + d6;
        boolean bool = this.n.contains(Integer.valueOf(b));
        if (bool) {
          paramGraphics.setColor(this.k);
          graphics2D.setStroke(this.g);
        } 
        a(paramGraphics, d3, d4, i, i, d8, d7);
        o o = b(b);
        o.c((d8 + d7) % 360.0D - d7);
        o.d((d8 + d7) % 360.0D);
        o.a((j / 2));
        o.b((i / 2));
        Point2D point2D1 = a(j, j, d8, getWidth() / 2.0D, getHeight() / 2.0D, 1.0D, false);
        Point2D point2D2 = a(i, i, d8, getWidth() / 2.0D, getHeight() / 2.0D, 1.0D, false);
        a(paramGraphics, point2D1.getX(), point2D1.getY(), point2D2.getX(), point2D2.getY());
        point2D1 = a(j, j, d8 + d7, getWidth() / 2.0D, getHeight() / 2.0D, 1.0D, false);
        point2D2 = a(i, i, d8 + d7, getWidth() / 2.0D, getHeight() / 2.0D, 1.0D, false);
        a(paramGraphics, point2D1.getX(), point2D1.getY(), point2D2.getX(), point2D2.getY());
        if (bool) {
          String str1 = k.a() + "°";
          int n = getFontMetrics(paramGraphics.getFont()).stringWidth(str1) / 2;
          int i1 = paramGraphics.getFont().getSize() / 2;
          point2D1 = a(j, j, d8, getWidth() / 2.0D, getHeight() / 2.0D, 0.9D, false);
          paramGraphics.drawString(str1, (int)point2D1.getX() - n, (int)point2D1.getY() + i1);
          String str2 = (k.a() + d7) + "°";
          n = getFontMetrics(paramGraphics.getFont()).stringWidth(str2) / 2;
          point2D1 = a(i, i, d8 + d7, getWidth() / 2.0D, getHeight() / 2.0D, 1.09D, false);
          paramGraphics.drawString(str2, (int)point2D1.getX() - n, (int)point2D1.getY() + i1);
        } 
        d = l() + k.a() + k.b();
      } 
    } else {
      graphics2D.setStroke(this.f);
      a(paramGraphics, d1, d2, j, j, 0.0D, 360.0D);
    } 
    graphics2D.setStroke(this.g);
    b(paramGraphics);
    c(paramGraphics);
    a(paramGraphics);
    if (!isEnabled()) {
      Color color = new Color(230, 230, 230, 165);
      paramGraphics.setColor(color);
      paramGraphics.fillRect(0, 0, getWidth(), getHeight());
    } 
  }
  
  public void a(Graphics paramGraphics) {
    Graphics2D graphics2D = (Graphics2D)paramGraphics;
    int i = (int)(m() * (this.a - 0.3D));
    int j = (int)(i * 0.05D);
    BasicStroke basicStroke = new BasicStroke(j);
    graphics2D.setStroke(basicStroke);
    int k = Math.round(((getWidth() - i) / 2));
    int n = Math.round(((getHeight() - i) / 2));
    byte b1 = 60;
    byte b2 = 60;
    paramGraphics.drawArc(k, n, i, i, b1, b2);
    Polygon polygon = new Polygon();
    if (this.v) {
      Point2D point2D = a(i, i, (b1 + 1), (getWidth() / 2), (getHeight() / 2), 1.14D, false);
      polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
      point2D = a(i, i, (b1 - 10), (getWidth() / 2), (getHeight() / 2), 1.009D, false);
      polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
      point2D = a(i, i, (b1 + 1), (getWidth() / 2), (getHeight() / 2), 0.87D, false);
      polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    } else {
      Point2D point2D = a(i, i, (b1 - 1), (getWidth() / 2), (getHeight() / 2), 1.14D, false);
      polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
      point2D = a(i, i, (b1 + 10), (getWidth() / 2), (getHeight() / 2), 1.009D, false);
      polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
      point2D = a(i, i, (b1 - 1), (getWidth() / 2), (getHeight() / 2), 0.87D, false);
      polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    } 
    paramGraphics.fillPolygon(polygon.xpoints, polygon.ypoints, polygon.npoints);
  }
  
  private void c(Graphics paramGraphics) {
    int i = (int)(m() * this.p);
    Polygon polygon = new Polygon();
    int j = 0;
    Point2D point2D = a(i, i, l() + j, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    j += 60;
    point2D = a(i, i, l() + j, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    j += 60;
    point2D = a(i, i, l() + j, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    j += 60;
    point2D = a(i, i, l() + j, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    j += 60;
    point2D = a(i, i, l() + j, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    j += 60;
    point2D = a(i, i, l() + j, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    polygon.addPoint(Math.round((float)point2D.getX()), Math.round((float)point2D.getY()));
    j += 60;
    paramGraphics.setColor(getForeground());
    paramGraphics.fillPolygon(polygon);
  }
  
  public void b(Graphics paramGraphics) {
    paramGraphics.setColor(getForeground());
    double d1 = 0.25D;
    double d2 = 5.0D;
    double d3 = 2.0D;
    double d4 = 0.03D;
    double d5 = 1.0D + d4 * 2.0D;
    double d6 = 1.0D + d4 * 2.0D + d1;
    int i = m();
    Polygon polygon1 = new Polygon();
    Point2D point2D1 = a(i, i, this.q - d2 / 2.0D, (getWidth() / 2), (getHeight() / 2), d5, false);
    polygon1.addPoint(Math.round((float)point2D1.getX()), Math.round((float)point2D1.getY()));
    point2D1 = a(i, i, this.q + d2 / 2.0D, (getWidth() / 2), (getHeight() / 2), d5, false);
    polygon1.addPoint(Math.round((float)point2D1.getX()), Math.round((float)point2D1.getY()));
    point2D1 = a(i, i, this.q + d2 / 2.3D, (getWidth() / 2), (getHeight() / 2), d6, false);
    polygon1.addPoint(Math.round((float)point2D1.getX()), Math.round((float)point2D1.getY()));
    point2D1 = a(i, i, this.q - d2 / 2.3D, (getWidth() / 2), (getHeight() / 2), d6, false);
    polygon1.addPoint(Math.round((float)point2D1.getX()), Math.round((float)point2D1.getY()));
    paramGraphics.drawPolygon(polygon1);
    Polygon polygon2 = new Polygon();
    Point2D point2D2 = a(i, i, this.q - d3 / 2.0D, (getWidth() / 2), (getHeight() / 2), d5 - d4, false);
    polygon2.addPoint(Math.round((float)point2D2.getX()), Math.round((float)point2D2.getY()));
    point2D2 = a(i, i, this.q + d3 / 2.0D, (getWidth() / 2), (getHeight() / 2), d5 - d4, false);
    polygon2.addPoint(Math.round((float)point2D2.getX()), Math.round((float)point2D2.getY()));
    point2D2 = a(i, i, this.q + d3 / 2.0D, (getWidth() / 2), (getHeight() / 2), d5, false);
    polygon2.addPoint(Math.round((float)point2D2.getX()), Math.round((float)point2D2.getY()));
    point2D2 = a(i, i, this.q - d3 / 2.0D, (getWidth() / 2), (getHeight() / 2), d5, false);
    polygon2.addPoint(Math.round((float)point2D2.getX()), Math.round((float)point2D2.getY()));
    paramGraphics.fillPolygon(polygon2);
  }
  
  public void a(Integer paramInteger) {
    if (!this.n.contains(paramInteger)) {
      this.n.add(paramInteger);
      repaint();
      a(this.n);
    } 
  }
  
  public void b(Integer paramInteger) {
    if (this.n.remove(paramInteger)) {
      a(this.n);
      repaint();
    } 
  }
  
  public void c(Integer paramInteger) {
    if (this.n.contains(paramInteger)) {
      b(paramInteger);
    } else {
      a(paramInteger);
    } 
  }
  
  protected Point2D a(int paramInt1, int paramInt2, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, boolean paramBoolean) {
    double d1 = paramBoolean ? ((180.0D - paramDouble1) * 2.0D * Math.PI / 360.0D) : (paramDouble1 * 2.0D * Math.PI / 360.0D);
    double d2 = Math.sqrt(Math.pow(paramInt1 / 2.0D, 2.0D) * Math.pow(paramInt2 / 2.0D, 2.0D) / (Math.pow(paramInt1 / 2.0D * Math.sin(d1), 2.0D) + Math.pow(paramInt2 / 2.0D * Math.cos(d1), 2.0D))) * paramDouble4;
    double d3 = paramDouble2 + d2 * Math.cos(d1);
    double d4 = paramDouble3 - d2 * Math.sin(d1);
    return new Point2D.Double(d3, d4);
  }
  
  private double b(int paramInt1, int paramInt2) {
    Point point = new Point(getWidth() / 2, getHeight() / 2);
    double d = Math.atan2(Math.abs(paramInt2 - point.y), paramInt1 - point.x);
    if (paramInt2 > point.y)
      d = 6.283185307179586D - d; 
    return Math.toDegrees(d);
  }
  
  public int a(int paramInt1, int paramInt2) {
    double d1 = b(paramInt1, paramInt2);
    int i = paramInt1 - getWidth() / 2;
    int j = paramInt2 - getHeight() / 2;
    double d2 = Math.sqrt(Math.pow(i, 2.0D) + Math.pow(j, 2.0D));
    for (o o : this.m.values()) {
      if (o.a(d2, d1))
        return o.b(); 
    } 
    return -1;
  }
  
  private double l() {
    return -c() + f() + this.s - e().b();
  }
  
  public double a() {
    return 360.0D - c();
  }
  
  public int b() {
    k k = null;
    ArrayList<k> arrayList = e().a();
    double d = 360.0D - a();
    if (d > 360.0D)
      d -= 360.0D; 
    if (d < 0.0D)
      d += 360.0D; 
    for (byte b = 0; b < arrayList.size(); b++) {
      k k1 = arrayList.get(b);
      if (d() == c) {
        if (k1.a() > d)
          return (k == null) ? (b - 1) : (b - 1); 
      } else if (k1.a() > d) {
        return (k == null) ? (b - 1) : (b - 1);
      } 
      k = k1;
    } 
    return arrayList.size() - 1;
  }
  
  public double c() {
    return this.r;
  }
  
  public void a(double paramDouble) {
    this.r = paramDouble % 360.0D;
  }
  
  private int m() {
    return (int)((getWidth() > getHeight()) ? Math.round(getHeight() * this.a) : Math.round(getWidth() * this.a));
  }
  
  public int d() {
    return this.u;
  }
  
  public void a(int paramInt) {
    this.u = paramInt;
  }
  
  public l e() {
    return this.t;
  }
  
  public void a(l paraml) {
    this.t = paraml;
  }
  
  private void a(Graphics paramGraphics, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4) {
    Line2D.Double double_ = new Line2D.Double(paramDouble1, paramDouble2, paramDouble3, paramDouble4);
    ((Graphics2D)paramGraphics).draw(double_);
  }
  
  private void a(Graphics paramGraphics, double paramDouble1, double paramDouble2, int paramInt1, int paramInt2, double paramDouble3, double paramDouble4) {
    boolean bool = false;
    if (bool) {
      Point2D point2D1 = a(paramInt1, paramInt2, paramDouble3, getWidth() / 2.0D, getHeight() / 2.0D, 1.0D, false);
      Point2D point2D2 = a(paramInt1, paramInt2, paramDouble3 + paramDouble4, getWidth() / 2.0D, getHeight() / 2.0D, 1.0D, false);
      a(paramGraphics, point2D1.getX(), point2D1.getY(), point2D2.getX(), point2D2.getY());
    } else {
      Arc2D.Double double_ = new Arc2D.Double(paramDouble1, paramDouble2, paramInt1, paramInt2, paramDouble3, paramDouble4, 0);
      ((Graphics2D)paramGraphics).draw(double_);
    } 
  }
  
  public double f() {
    return (d() == c) ? 0.0D : -((k)this.t.a().get(0)).b();
  }
  
  private void d(Graphics paramGraphics) {
    byte b = 33;
    double d1 = 0.43D;
    paramGraphics.setColor(this.j);
    ((Graphics2D)paramGraphics).setStroke(this.h);
    int i = (int)(m() * this.p * 1.35D);
    double d2 = ((getWidth() - i) / 2);
    double d3 = ((getHeight() - i) / 2);
    double d4 = this.q;
    double d5 = this.q - c();
    Point point = new Point(getWidth() / 2, getHeight() / 2);
    Point2D point2D1 = a(m(), m(), d4, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    Point2D point2D2 = a(m(), m(), d5, (getWidth() / 2), (getHeight() / 2), 1.0D, false);
    a(paramGraphics, point.getX(), point.getY(), point2D1.getX(), point2D1.getY());
    a(paramGraphics, point.getX(), point.getY(), point2D2.getX(), point2D2.getY());
    a(paramGraphics, d2, d3, i, i, this.q, -c());
    Point2D point2D3 = null;
    String str = X.a(c()) + T.a();
    FontMetrics fontMetrics = paramGraphics.getFontMetrics();
    int j = fontMetrics.stringWidth(str);
    if (Math.abs(c()) < b) {
      point2D3 = a(m(), m(), d4 - 45.0D, (getWidth() / 2), (getHeight() / 2), d1, false);
    } else {
      point2D3 = a(m(), m(), (d4 + d5) / 2.0D, (getWidth() / 2), (getHeight() / 2), d1, false);
    } 
    paramGraphics.drawString(str, (int)point2D3.getX() - j / 2, (int)point2D3.getY() + fontMetrics.getHeight() / 2);
  }
  
  public boolean g() {
    return this.w;
  }
  
  public void a(boolean paramBoolean) {
    this.w = paramBoolean;
    if (paramBoolean) {
      this.a = 0.85D;
    } else {
      this.a = 0.93D;
    } 
  }
  
  private o b(int paramInt) {
    o o = (o)this.m.get(Integer.valueOf(paramInt));
    if (o == null) {
      o = new o(this, paramInt);
      this.m.put(Integer.valueOf(paramInt), o);
    } 
    return o;
  }
  
  private void n() {
    for (o o : this.m.values())
      o.b(o.a()); 
  }
  
  public Integer[] h() {
    return (Integer[])this.n.toArray((Object[])new Integer[this.n.size()]);
  }
  
  public void i() {
    this.n.clear();
    a(this.n);
  }
  
  public void j() {
    for (byte b = 0; b < e().a().size(); b++)
      a(Integer.valueOf(b)); 
  }
}


/* Location:              /home/rewrich/Downloads/TunerStudioMS/TunerStudioMS/!/bG/m.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */