'Update the header when one of the column objects is updated.'

def _update_column_attribute_changed(self, column, col_idx, attr, old_value, new_value):

    base_keyword = ATTRIBUTE_TO_KEYWORD[attr]
    keyword = (base_keyword + str((col_idx + 1)))
    if (keyword in self._header):
        if (new_value is None):
            del self._header[keyword]
        else:
            self._header[keyword] = new_value
    else:
        keyword_idx = KEYWORD_NAMES.index(base_keyword)
        for before_keyword in reversed(KEYWORD_NAMES[:keyword_idx]):
            before_keyword += str((col_idx + 1))
            if (before_keyword in self._header):
                self._header.insert(before_keyword, (keyword, new_value), after=True)
                break
        else:
            for after_keyword in KEYWORD_NAMES[(keyword_idx + 1):]:
                after_keyword += str((col_idx + 1))
                if (after_keyword in self._header):
                    self._header.insert(after_keyword, (keyword, new_value))
                    break
            else:
                self._header[keyword] = new_value
