def worker(self):
        """
        Returns the worker associated with this tree widget.
        
        :return     <projexui.xorblookupworker.XOrbLookupWorker>
        """
        if self._worker is None:
            self._worker = XOrbLookupWorker(self.isThreadEnabled())
            
            # create worker connections
            self.loadRequested.connect(self._worker.loadRecords)
            self.loadBatchRequested.connect(self._worker.loadBatch)
            self.loadColumnsRequested.connect(self._worker.loadColumns)
            
            self._worker.loadingStarted.connect(self.markLoadingStarted)
            self._worker.loadingFinished.connect(self.markLoadingFinished)
            self._worker.loadedRecords[object].connect(self._loadRecords)
            self._worker.loadedRecords[object, object].connect(self._loadRecords)
            self._worker.loadedGroup.connect(self.createGroupItem)
            self._worker.columnLoaded.connect(self._loadColumns)
            self._worker.connectionLost.connect(self._connectionLost)
            
        return self._worker