@Override
      public void paintTriangle(Graphics g, int x, int y, int size, int direction, boolean isEnabled) {
        Graphics2D g2 = (Graphics2D)g.create();
        try {
          g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
          g2.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL,
                              MacUIUtil.USE_QUARTZ ? RenderingHints.VALUE_STROKE_PURE : RenderingHints.VALUE_STROKE_NORMALIZE);

          float lw = LW.getFloat();
          float bw = BW.getFloat();

          g2.setColor(JBUI.CurrentTheme.Arrow.backgroundColor(isEnabled, true));
          g2.fill(getInnerShape(lw, bw));

          // Paint side line
          int h = getHeight() - JBUIScale.scale(1);
          Rectangle2D sideLine = direction == NORTH ?
                                 new Rectangle2D.Float(0, bw + lw, lw, h - (bw + lw)) :
                                 new Rectangle2D.Float(0, 0, lw, h - (bw + lw));

          g2.setColor(getOutlineColor(spinner.isEnabled(), false));
          g2.fill(sideLine);

          // Paint arrow
          g2.translate(x, y);
          g2.setColor(JBUI.CurrentTheme.Arrow.foregroundColor(isEnabled));
          g2.fill(getArrowShape());
        }
        finally {
          g2.dispose();
        }
      }
@Override
      public void paintTriangle(Graphics g, int x, int y, int size, int direction, boolean isEnabled)