private void paintAction(Graphics2D g2, int x, int y, int width, int height, int offset, boolean left) {
    int actionOffset = JBUI.scale(8);
    int actionSize = getActionSize();

    int actionX = left ? (x + actionOffset) : (x + width - actionOffset - actionSize);

    int actionY = y + (height - offset - actionSize) / 2;

    g2.setColor(JBUI.CurrentTheme.Button.buttonColorStart());
    g2.fillOval(actionX, actionY, actionSize, actionSize);
    g2.setColor(JBUI.CurrentTheme.Button.buttonOutlineColorStart(false));
    g2.drawOval(actionX, actionY, actionSize, actionSize);

    Icon icon = left ? AllIcons.Actions.ArrowCollapse : AllIcons.Actions.ArrowExpand;
    int iconWidth = icon.getIconWidth();
    int iconHeight = icon.getIconHeight();

    actionX += (actionSize - iconWidth) / 2;
    actionY += (actionSize - iconHeight) / 2;
    icon.paintIcon(this, g2, actionX, actionY);
  }
private void paintAction(Graphics2D g2, int x, int y, int width, int height, int offset, boolean left)