@Override
    protected void customizeCellRenderer(@NotNull JTable table, @Nullable Object value, boolean selected, boolean hasFocus, int row, int column) {
      @SuppressWarnings("unchecked") T item = (T)value;
      String text = item == null ? "" : getItemText(item);
      SpeedSearchUtil.appendFragmentsForSpeedSearch(
        table, text, SimpleTextAttributes.REGULAR_ATTRIBUTES, selected, this);

      ElementProperties properties = myElementToPropertiesMap.get(item);

      if (properties != null) {
        String location = properties.getLocation();
        if (StringUtil.isNotEmpty(location)) {
          append(" (" + location + ")", SimpleTextAttributes.GRAYED_ATTRIBUTES);
        }
      }

      setTransparentIconBackground(true);
      Icon icon = properties != null ? properties.getIcon() : item != null ? getItemIcon(item) : null;
      if (icon != null) {
        setIcon(icon);
      }

      setForeground(properties != null && properties.getColor() != null ?
                    properties.getColor() :
                    selected ? table.getSelectionForeground() : table.getForeground());

      setBackground(selected
                    ? table.getSelectionBackground()
                    : properties != null && properties.getBackgroundColor() != null
                      ? properties.getBackgroundColor()
                      : table.getBackground());

      @SuppressWarnings("unchecked") MyTableModel model = (MyTableModel)table.getModel();
      setEnabled(selected || (MultiStateElementsChooser.this.isEnabled() &&
                              (!myColorUnmarkedElements || myMarkStateDescriptor.isMarked(model.getElementMarkState(item)))));
    }
@Override
    protected void customizeCellRenderer(@NotNull JTable table, @Nullable Object value, boolean selected, boolean hasFocus, int row, int column)