Component (JTable table, Object value, boolean isSelected, int row, int column) { int modelRow = table.convertRowIndexToModel(row); myValue = ((MyTableModel)table.getModel()).getRegistryValue(modelRow); if (myValue.asColor(null) != null) { final Color color = ColorChooserService.getInstance().showDialog(table, IdeBundle.message("dialog.title.choose.color"), myValue.asColor(JBColor.WHITE)); if (color != null) { setValue(myValue, color.getRed() + "," + color.getGreen() + "," + color.getBlue()); keyChanged(myValue.getKey()); } return null; } else if (myValue.isBoolean()) { myCheckBox.setSelected(myValue.asBoolean()); myCheckBox.setBackground(table.getBackground()); return myCheckBox; } else if (myValue.isMultiValue()) { myComboBox = new ComboBox<>(getOptions(myValue)); myComboBox.setSelectedItem(myValue.getSelectedOption()); return myComboBox; } else { myField.setText(myValue.asString()); myField.setBorder(null); myField.selectAll(); return myField; } }