def OnFind(self, evt): forum, objID, type, neco = self.selected objMessages = client.get(objID)._messages ids = objMessages.keys() ids.sort() ids.reverse() # limit key only to thes with corresponding forum ids = filter(lambda x: self.FilterForum(objMessages, forum, x), ids) found = False #i = self.findidx for i in range(self.findidx, len(ids)): #for messageID in ids: messageID = ids[i] message = objMessages[messageID] # regenerate topics for messages with data if message.has_key("data") and message["topic"] == "EVENT": sourceID, msgID, locationID, turn, data = message["data"] message["topic"] = messages.getMsgText(msgID, data).split("\n")[0] findstring = self.finddata.GetFindString().lower() topic = message["topic"].lower() if topic.find(findstring) > -1: self.findidx = i + 1 self.SelectMessage(i) found = True break if message.has_key("text"): text = message["text"].lower() if text.find(findstring) > -1: self.findidx = i + 1 self.SelectMessage(i) found = True break # if implement searching in automaticaly generated messages, # add searching here #if message.has_key("data"): # sourceID, msgID, locationID, turn, data = message["data"] i += 1 if not found: dlg = wx.MessageDialog(self, _("Find String Not Found"), _("Find"), wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() self.findidx = 0 if self.finddlg: if not found: self.finddlg.SetFocus() else: self.finddlg.Destroy()
def fillMessages(self, forum, objID, type): objMessages = client.get(objID)._messages ids = objMessages.keys() ids.sort() ids.reverse() i = 0 self.itemData = {} self.list.Freeze() self.list.DeleteAllItems() for messageID in ids: message = objMessages[messageID] if message["forum"] == forum: # regenerate topics for messages with data if message.has_key("data") and message["topic"] == "EVENT": sourceID, msgID, locationID, turn, data = message["data"] message["topic"] = messages.getMsgText(msgID, data).split("\n")[0] self.list.InsertStringItem(i, "") self.list.SetStringItem(i, 3, message["topic"]) item = self.list.GetItem(i) itemFont = item.GetFont() if message.has_key("data"): sourceID, msgID, locationID, turn, data = message["data"] color = wx.NamedColor( sevColors[messages.getMsgSeverity(msgID)]) item.SetTextColour(color) if message["readed"]: state = _(" ") else: state = _("N") itemFont.SetWeight(wx.BOLD) else: color = wx.NamedColor(sevColors[gdata.MIN]) item.SetTextColour(color) if message["readed"]: if message["replied"]: state = _("R") else: state = _(" ") itemFont.SetWeight(wx.NORMAL) else: state = _("N") itemFont.SetWeight(wx.BOLD) item.SetFont(itemFont) self.list.SetItem(item) date = time.strftime(_("%m-%d %H:%M"), time.localtime(message["time"])) self.list.SetStringItem(i, 0, state) self.list.SetStringItem(i, 2, message["sender"]) self.list.SetStringItem(i, 1, date) self.itemData[i] = (objID, messageID, forum, type) i += 1 self.list.Thaw() self.delete.Disable() self.reply.Disable() self.newSubject.Enable(gdata.mailboxSpec[type, forum][1] != None) self.readAll.Enable(i > 0) self.deleteAll.Enable(i > 0) self.message.SetValue("")
def fillMessages(self, forum, objID, type): objMessages = client.get(objID)._messages ids = objMessages.keys() ids.sort() ids.reverse() i = 0 self.itemData = {} self.list.Freeze() self.list.DeleteAllItems() for messageID in ids: message = objMessages[messageID] if message["forum"] == forum: # regenerate topics for messages with data if message.has_key("data") and message["topic"] == "EVENT": sourceID, msgID, locationID, turn, data = message["data"] message["topic"] = messages.getMsgText(msgID, data).split("\n")[0] self.list.InsertStringItem(i, "") self.list.SetStringItem(i, 3, message["topic"]) item = self.list.GetItem(i) itemFont = item.GetFont() if message.has_key("data"): sourceID, msgID, locationID, turn, data = message["data"] color = wx.NamedColor(sevColors[messages.getMsgSeverity(msgID)]) item.SetTextColour(color) if message["readed"]: state = _(" ") else: state = _("N") itemFont.SetWeight(wx.BOLD) else: color = wx.NamedColor(sevColors[gdata.MIN]) item.SetTextColour(color) if message["readed"]: if message["replied"]: state = _("R") else: state = _(" ") itemFont.SetWeight(wx.NORMAL) else: state = _("N") itemFont.SetWeight(wx.BOLD) item.SetFont(itemFont) self.list.SetItem(item) date = time.strftime(_("%m-%d %H:%M"), time.localtime(message["time"])) self.list.SetStringItem(i, 0, state) self.list.SetStringItem(i, 2, message["sender"]) self.list.SetStringItem(i, 1, date) self.itemData[i] = (objID, messageID, forum, type) i += 1 self.list.Thaw() self.delete.Disable() self.reply.Disable() self.newSubject.Enable(gdata.mailboxSpec[type, forum][1] != None) self.readAll.Enable(i > 0) self.deleteAll.Enable(i > 0) self.message.SetValue("")