@NotNull
    @Override
    public Component getTableCellRendererComponent(@NotNull JTable table,
                                                   Object value,
                                                   boolean isSelected,
                                                   boolean hasFocus,
                                                   int row,
                                                   int column) {
      myTable = table;
      myRow = row;
      myColumn = column;
      boolean isEnabled = true;
      final DefaultMutableTreeNode node = (DefaultMutableTreeNode)((TreeTable)table).getTree().
        getPathForRow(row).getLastPathComponent();
      Option key = null;
      if (node instanceof MyTreeNode) {
        isEnabled = ((MyTreeNode)node).isEnabled();
        key = ((MyTreeNode)node).getKey();
      }
      if (!table.isEnabled()) {
        isEnabled = false;
      }
      if (key != null && value != null) {
        JComponent customRenderer = getCustomValueRenderer(key.getOptionName(), value);
        if (customRenderer != null) {
          updateColors(customRenderer, table, isSelected);
          return customRenderer;
        }
      }
      if (value instanceof Boolean) {
        myCheckBox.setSelected(((Boolean)value).booleanValue());
        myCheckBox.setEnabled(isEnabled);
        updateColors(myCheckBox, table, isSelected);
        return myCheckBox;
      }
      else if (value instanceof String) {
        myComboBox.setText((String)value);
        myComboBox.setEnabled(isEnabled);
        updateColors(myComboBox, table, isSelected);
        return myComboBox;
      }
      else if (value instanceof Integer) {
        if (key instanceof IntOption && ((IntOption)key).isDefaultValue(value)) {
          myIntLabel.setText(((IntOption)key).getDefaultValueText());
        }
        else {
          @NlsSafe String text = value.toString();
          myIntLabel.setText(text);
        }
        updateColors(myIntLabel, table, isSelected);
        return myIntLabel;
      }
      updateColors(myEmptyLabel, table, isSelected);
      return myEmptyLabel;
    }
@NotNull
    @Override
    public Component getTableCellRendererComponent(@NotNull JTable table,
                                                   Object value,
                                                   boolean isSelected,
                                                   boolean hasFocus,
                                                   int row,
                                                   int column)