@Override
      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        Component comp = table.getCellRenderer(row, column).getTableCellRendererComponent(table, value, false, false, row, column);
        Object realValue = table.getModel().getValueAt(row, column);
        if (comp instanceof JLabel) {
          value = ((JLabel)comp).getText();
        }
        if (realValue instanceof Color) {
          Rectangle cellRect = table.getCellRect(row, column, true);
          ColorChooserService.getInstance().showPopup(null, (Color)realValue, new ColorListener() {
            @Override
            public void colorChanged(Color color, Object source) {
              if (component != null) {
                component.setBackground(color);
                String name = myModel.myProperties.get(row).propertyName;
                myModel.myProperties.set(row, new PropertyBean(name, color));
              }
            }
          }, new RelativePoint(table, new Point(cellRect.x + JBUI.scale(6), cellRect.y + cellRect.height)));
          return null;
        }
        Component result = super.getTableCellEditorComponent(table, value, isSelected, row, column);
        ((JComponent)result).setBorder(BorderFactory.createLineBorder(JBColor.GRAY, 1));
        return result;
      }
@Override
      public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column)