def loadRecords(self, records):
        """
        Loads the inputed records as children to this item.
        
        :param      records | [<orb.Table>, ..] || {<str> sub: <variant>, .. }
        """
        self.setChildIndicatorPolicy(self.DontShowIndicatorWhenChildless)
        self._loaded = True
        
        if records is None:
            return
        
        # load sub-groups if desired
        if self._nextLevels and RecordSet.typecheck(records):
            level = self._nextLevels[0]
            sublevels = self._nextLevels[1:]
            
            records = records.grouped(level)
            
        elif RecordSet.typecheck(records):
            sublevels = None
            records = records.all()
        
        else:
            sublevels = None
        
        # load a child set of groups
        if type(records) == dict:
            try:
                generator = self.treeWidget().createGroupItem
                cls = None
            except AttributeError:
                generator = None
                cls = type(self)
                
            for subgroup, subrecords in records.items():
                if generator:
                    generator(subgroup, subrecords, sublevels, self)
                elif cls:
                    cls(self, subgroup, subrecords, sublevels)
        
        # load records
        else:
            try:
                generator = self.treeWidget().createRecordItem
                cls = None
            except AttributeError:
                generator = None
                cls = XOrbRecordItem
            
            cls = self.treeWidget().createRecordItem
            for record in records:
                if generator:
                    generator(record, self)
                elif cls:
                    cls(self, record)