public void onColumnOrderSettingChanged() {
    List<VcsLogColumn<?>> columnOrder = getColumnOrderFromProperties();
    if (columnOrder != null) {
      TableColumnModel columnModel = getColumnModel();
      int columnCount = getVisibleColumnCount();
      for (int i = columnCount - 1; i >= 0; i--) {
        columnModel.removeColumn(columnModel.getColumn(i));
      }

      for (VcsLogColumn<?> column : columnOrder) {
        boolean isAvailable = !(column instanceof VcsLogCustomColumn<?> customColumn) ||
                              VcsLogCustomColumn.isAvailable(customColumn, myLogData);
        if (isAvailable) {
          myTableColumns.computeIfAbsent(column, (k) -> createTableColumn(column));
          columnModel.addColumn(myTableColumns.get(column));
        }
      }
    }

    reLayout();
  }
public void onColumnOrderSettingChanged()