def METHOD_NAME(self, ev = None):
    queues = self.tq.getQueueNames()
    nq = len(queues)
    self.gQueues.ClearGrid()
    n = nq + 2
    #print n
    if (n > self.gQueues.GetNumberRows()):
        self.gQueues.AppendRows(n - self.gQueues.GetNumberRows())
    elif(n < self.gQueues.GetNumberRows()):
        self.gQueues.DeleteRows(0,self.gQueues.GetNumberRows()- n)
    for i in range(nq):
        self.gQueues.SetCellValue(i, 0,queues[i])
        self.gQueues.SetCellValue(i, 1, '%d' % self.tq.getNumberOpenTasks(queues[i]))
        self.gQueues.SetCellValue(i, 2, '%d' % self.tq.getNumberTasksCompleted(queues[i]))
    self.gQueues.SetCellValue(n - 1, 0,'Total')
    self.gQueues.SetCellValue(n - 1, 1, '%d' % self.tq.getNumberOpenTasks())
    self.gQueues.SetCellValue(n - 1, 2, '%d' % self.tq.getNumberTasksCompleted())
    workers = self.tq.getWorkerNames()
    nw = len(workers)
    self.gWorkers.ClearGrid()
    n = nw + 2
    #print n
    if (n > self.gWorkers.GetNumberRows()):
        self.gWorkers.AppendRows(n - self.gWorkers.GetNumberRows())
    elif(n < self.gWorkers.GetNumberRows()):
        self.gWorkers.DeleteRows(0,self.gWorkers.GetNumberRows()- n)
    tm = time.time()
    dt = float(tm - self.tLast)
    self.tLast = tm
    #print dt
    for i in range(nw):
        self.gWorkers.SetCellValue(i, 0,workers[i])
        nt = self.tq.getNumTasksProcessed(workers[i])
        #print nt
        self.gWorkers.SetCellValue(i, 1, '%d' % nt)
        if workers[i] in self.workerProc.keys():
            fps =  (nt - self.workerProc[workers[i]])/dt
            self.gWorkers.SetCellValue(i, 2, '%3.3f' % fps)
        self.workerProc[workers[i]] = nt
    self.gWorkers.SetCellValue(n - 1, 0,'Total')
    nt = self.tq.getNumTasksProcessed()
    #print nt
    self.gWorkers.SetCellValue(n -1, 1, '%d' % nt)
    if 'Total' in self.workerProc.keys():   
        self.gWorkers.SetCellValue(n - 1, 2, '%3.3f' % ((nt - int(self.workerProc['Total']))/dt,))
    self.workerProc['Total'] = nt
    self.Layout()