docs: def reorder(self, index, direction):
          """
          Reorders the data being displayed in this tree.  It will check to
          see if a server side requery needs to happen based on the paging
          information for this tree.
          
          :param      index     | <column>
                      direction | <Qt.SortOrder>
          
          :sa         setOrder
          """
          columnTitle = self.columnOf(index)
          columnName  = self.columnOrderName(columnTitle)
          
          if not columnName:
              return
          
          # grab the table and ensure we have a valid column
          table = self.tableType()
          if not table:
              return
          
          column = table.schema().column(columnName)
          if not column:
              return
          
          if direction == Qt.AscendingOrder:
              db_dir = 'asc'
          else:
              db_dir = 'desc'
          
          order = [(columnName, db_dir)]
          
          # lookup reference column ordering
          if column.isReference():
              ref = column.referenceModel()
              if ref:
                  ref_order = ref.schema().defaultOrder()
                  if ref_order:
                      order = [(columnName + '.' + ref_order[0][0], db_dir)]
                      order += ref_order[1:]
          
          # update the information
          self.clear()
          super(XOrbTreeWidget, self).sortByColumn(index, direction)
          
          self.setOrder(order)
          self.refresh()