@Override
  protected ComboPopup createPopup() {
    if (comboBox.getClientProperty(DarculaJBPopupComboPopup.CLIENT_PROP) != null) {
      return new DarculaJBPopupComboPopup<>(comboBox) {
        @Override
        public void configureList(@NotNull JList<Object> list) {
          super.configureList(list);
          list.setBackground(UIManager.getColor("TextField.background"));
        }

        @Override
        public void customizeListRendererComponent(JComponent component) {
          super.customizeListRendererComponent(component);
          component.setBorder(getList().getComponentOrientation().isLeftToRight()
                              ? JBUI.Borders.empty(0, 5, 0, 1)
                              : JBUI.Borders.empty(0, 1, 0, 5));
        }
      };
    }
    return new CustomComboPopup(comboBox) {
      @Override
      protected void configurePopup() {
        super.configurePopup();
        addPopupMenuListener(new PopupMenuListenerAdapter() {
          @Override
          public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
            comboBox.repaint();
          }
        });
        setBorder(UIManager.getBorder("PopupMenu.border"));
      }

      @Override
      protected void configureList() {
        super.configureList();
        list.setBackground(UIManager.getColor("TextField.background"));
      }

      @Override
      protected void customizeListRendererComponent(JComponent component) {
        super.customizeListRendererComponent(component);
        component.setBorder(list.getComponentOrientation().isLeftToRight()
                            ? JBUI.Borders.empty(0, 5, 0, 1)
                            : JBUI.Borders.empty(0, 1, 0, 5));
      }

      @Override
      public void show(Component invoker, int x, int y) {
        int i = DarculaUIUtil.isTableCellEditor(comboBox) ? 0 : 1;
        int yOffset = JBUIScale.scale(i);
        super.show(invoker, x, y - yOffset);
      }
    };
  }
@Override
  protected ComboPopup createPopup()