def setCheckedRecords(self, records, column=0, parent=None):
        """
        Sets the checked items based on the inputed list of records.
        
        :param      records | [<orb.Table>, ..]
                    parent  | <QTreeWidgetItem> || None
        """
        if parent is None:
            for i in range(self.topLevelItemCount()):
                item = self.topLevelItem(i)
                try:
                    has_record = item.record() in records
                except AttributeError:
                    has_record = False
                
                if has_record:
                    item.setCheckState(column, Qt.Checked)
                
                self.setCheckedRecords(records, column, item)
        else:
            for c in range(parent.childCount()):
                item = parent.child(c)
                try:
                    has_record = item.record() in records
                except AttributeError:
                    has_record = False
                
                if has_record:
                    item.setCheckState(column, Qt.Checked)
                
                self.setCheckedRecords(records, column, item)