def sortAndBuildDataNodes(self, data): sortColumnIndex = self._gui.sortColumnIndex dnColumnIndex = DataControl.getInstance().getDataColumnDef().colIndexMap('DN') treeViewTypes = [self.viewType_DN, self.viewType_MRSITE, self.viewType_OMS] dnNodes = self.getFilteredDnNodesByDN(data.getRawData()) sortedRawData = [] # print "sort column index = ",sortColumnIndex if sortColumnIndex == dnColumnIndex: # print "-- sort dn begin = ", time.time() for dn in sorted(dnNodes.keys(), cmp= lambda x,y:self.sortDNColumn(x, y, dnNodes)): # print "append1 -------", dn sortedRawData.append(dnNodes[dn].getRawData()) rawData = self.getFilteredRawDataByCommonState(sortedRawData) # for i in rawData: # print "state = ",i[-7]," ",i[-1]," MRSITE-",i[0]," ",i[2] data.setSortedRawData(rawData) self.buildDataNodes(data) # print "-- sort dn end = ",time.time() elif self.viewType in treeViewTypes and sortColumnIndex != dnColumnIndex: # print "-- sort non dn begin = ", time.time() for dn in sorted(dnNodes.keys(), cmp= lambda x,y:self.sortDNColumn(x, y, dnNodes)): # print "----------------- append dn = ",dn sortedRawData.append(dnNodes[dn].getRawData()) tmpData = LTEStatusData() tmpData.setSortedRawData(self.getFilteredRawDataByCommonState(sortedRawData)) self.buildDataNodes(tmpData) newTopNodes = [] for topNode in sorted(tmpData.getTopNodes(), cmp= lambda x,y:self.sortNonDNColumn(x, y, sortColumnIndex)): topNode.setIndex(len(newTopNodes)) newTopNodes.append(topNode) if topNode.getChildren(): self.sortChildren(topNode, sortColumnIndex) data.setTopNodes(newTopNodes) # print "-- sort non dn begin = ", time.time() else: # print "-- sort non dn begin = ", time.time() for node in sorted(dnNodes.values(), cmp= lambda x,y:self.sortNonDNColumn(x, y, sortColumnIndex)): sortedRawData.append(node.getRawData()) data.setSortedRawData(self.getFilteredRawDataByCommonState(sortedRawData)) self.buildDataNodes(data) # print "-- sort non dn end = ",time.time() #For Status Report, Lock/unlock operation if self.viewType == self.viewType_List: self.storeLNBTSChildren(dnNodes)