def onUp(self, event): #pass #print "up", self.__stack, self.__level log.op("EntryRegisterBrowser.levelDown", [self.__selectedElement, self.__level], 0) if self.__stack == []: return if self.__level == "FICHE": elements = self.__dBController.getLinesForPage(self.__stack[-3], self.__stack[-2], self.__stack[-1]) #elements = ["4", "5", "6", "7"] self.__level = "LINE" self.DeleteAllItems() self.__fillRegister(elements) elif self.__level == "LINE": self.__stack.pop() elements = self.__dBController.getPagesForWork(self.__stack[-2], self.__stack[-1]) #elements = ["0", "1", "2", "3", "4"] self.__level = "PAGE" self.DeleteAllItems() self.__fillRegister(elements) elif self.__level == "PAGE": self.__stack.pop() elements = self.__dBController.getWorksForEntry(self.__stack[-1]) self.__level = "WORK" self.DeleteAllItems() self.__fillRegister(elements) elif self.__level == "WORK": self.__stack.pop() elements = self.__dBController.getEntriesRegister() self.__level = "ENTRY" self.DeleteAllItems() self.__fillRegister(elements) log.opr("EntryRegisterBrowser.onUp return", [], 1)
def __onKey(self, event): log.op("HintRegisterBrowser.__onKey", [event.GetKeyCode()], 0) if event.GetKeyCode() == wx.WXK_RETURN: self.levelDown() else: event.Skip() log.opr("HintRegisterBrowser.__onKey return", [], 1)
def onUp(self, event): log.op("StructureRegisterBrowser.onUp", [event], 0) if self.__element.getParent() != None: self.__ficheLevel = False self.__binaryAvailable = False self.__element = self.__element.getParent() self.__selectStructureNode(self.__element) log.op("StructureRegisterBrowser.onUp return", [], 1)
def levelDown(self): log.op("HintRegisterBrowser.levelDown", [ self._selected if self._selected == None else self._elementOf(self._selected) ], 0) if self._selected != None: for l in self._listeners: l.find_in_entry_register(self._elementOf(self._selected)) log.opr("HintRegisterBrowser.levelDown return", [], 1)
def __onEditAcceptEnter(self, event): log.op("__onEditAcceptEnter", [event.GetKeyCode(), wx.WXK_RETURN], 0) if event.GetKeyCode() == wx.WXK_RETURN and not event.ControlDown(): #print "Enter" self.__onEditAccept(event) else: #print "Not" event.Skip() log.opr("__onEditAcceptEnter return", [], 1)
def _nextFicheNotFound(self): log.op("StructureRegisterBrowser._nextFicheNotFound", [], 0) fiche = self.__register.findNextFiche(self.__element) if fiche != None: self.__element = fiche.getParent() self.__selectStructureNode(self.__element) itemId = self._element2item[fiche.getId()] self._unselect(self._selected) self._select(itemId, veto=True) RegisterBrowser._element_selected(self, fiche.getId(), notify=False) log.op("StructureRegisterBrowser._nextFicheNotFound return", [], 1)
def showMessage(self, msg): log.op("showMessage", [msg], 0) if len(self.__messages) == MessageList.LIMIT: self.__messages = self.__messages[:len(self.__messages) - 1] self.__messages.insert(0, str(datetime.datetime.now()) + ": " + msg) self.DeleteAllItems() i = 0 for m in self.__messages: self.InsertStringItem(i, m) i += 1 self.SetColumnWidth(0, wx.LIST_AUTOSIZE) self.Refresh() self.Update() log.opr("showMessage return", [], 1)
def levelDown(self): log.op("StructureRegisterBrowser.levelDown", [self.__ficheLevel], 0) if not self.__ficheLevel: self.__selectStructureNode(self.__element) if self.__ficheLevel: for l in self._listeners: l.start_binary_search() self.__binaryAvailable = True #for l in self._listeners: # TODO: D jeden listener # elementId = l.request_selection() # if elementId != None: # self.select(elementId) # time.sleep(0.1) # TODO: NOTE bez tego nie zaznacza w wykazie aktualnie ogladanej fiszki time.sleep(0.1) log.opr("StructureRegisterBrowser.levelDown return", [], 1)
def __onKeyUp(self, event): log.op("__onKeyUp", [event.GetKeyCode(), wx.WXK_UP, wx.WXK_DOWN], 0) if self.__skipOneKeyUp: self.__skipOneKeyUp = False log.opr("__onKeyUp", [], 2) return if event.GetKeyCode() == wx.WXK_UP: for l in self._listeners: self.__keyEventFromTopPanel = True l.on_toppanel_key_up(event) self.__keyEventFromTopPanel = False elif event.GetKeyCode() == wx.WXK_DOWN: for l in self._listeners: self.__keyEventFromTopPanel = True l.on_toppanel_key_down(event) self.__keyEventFromTopPanel = False log.opr("__onKeyUp return", [], 1)
def onKey(self, event): log.op("onKey", [event.GetKeyCode()], 0) if event.GetKeyCode() == 67 and event.ControlDown(): current = -1 while True: next = self.GetNextItem(current, wx.LIST_NEXT_ALL, wx.LIST_STATE_SELECTED) if next != -1: item = self.GetItem(next).GetText() if wx.TheClipboard.Open(): wx.TheClipboard.SetData(wx.TextDataObject(item)) wx.TheClipboard.Close() break else: break current = next log.opr("onKey return", [], 1)
def onSelect(self, event): #mapsafe log.op("WindowRegisterBrowser.onSelect", [self._elementOf(self._unmap(event.GetIndex())), self._smart], 0) if (not self._smart) or self._windowVeto: RegisterBrowser.onSelect(self, event) else: rawItemId = event.GetIndex() itemId = self._unmap(rawItemId) if rawItemId / float(self.LIMIT()) < 0.25 or rawItemId / float( self.LIMIT()) > 0.75: self._scrollBrowser(itemId) self._windowVeto = True self._select(itemId) self._windowVeto = False else: RegisterBrowser.onSelect(self, event) log.opr("WindowRegisterBrowser.onSelect return", [], 1)
def editPanelChanged(self, event): log.op("editPanelChanged", [event, self.__editPanel.GetValue()], 0) if not self.__browsingHistory: for l in self._listeners: l.stop_browsing_entry_history(event) if self.__hintRegister == None: hint = None else: hint = self.__hintRegister.findHint(self.__editPanel.GetValue()) if hint != None: for l in self._listeners: l.on_hint_changed(hint[0]) #print hint[0], hint[1] #print type(hint[0]), type(hint[1]) self.__hintPanel.SetValue(unicode(hint[0], "utf-8") + (u" " if hint[0] != '' and hint[1] != '' else u"") + unicode(hint[1], "utf-8")) self.__hint = hint[0] else: self.__hintPanel.SetValue("") self.__hint = None log.opr("editPanelChanged return", [], 1)
def onSelect(self, event): #mapsafe log.op("RegisterBrowser.onSelect", [self._elementOf(self._unmap(event.GetIndex())), self._veto], 0) if self._binary and (not self.__programmaticSelect): # wyszukiwanie binarne jest # aktywne - w takim przypadku nalezy je wylaczyc (zaznaczenie fiszki w czasie # wyszukiwania binarnego przerywa je) # jezeli flaga self.__programmaticSelect jest wlaczona, to znaczy, ze element # nie zostal zaznaczony przez akcje uzytkownika w GUI lecz przez jedna z # metod odpowiedzialna za przebieg wyszukiwania binarnego i nie nalezy go przerywac #self.stopBinarySearch() for l in self._listeners: l.stop_binary_search() # powiadom o przerwaniu wyszukiwania binarnego if not self._veto: # w niektorych metodach po zaznaczeniu elementu nie chcemy # powiadamiac o zaznaczeniu elementu bo jest on zaznaczany przez okno glowne # wiec nie ma potrzeby powiadamiania go o tym fakcie - wtedy ustawiamy flage _veto; # poniewaz w takiej sytuacji self._selected = itemId nie jest wykonywane w # metodzie onSelect trzeba je wykonac w metodzie wywolujacej wx.ListView.Select itemId = self._unmap(event.GetIndex()) # TODO: NOTE http://wxpython-users.1045709.n5.nabble.com/wx-ListCtrl-Item-Information-on-Double-Click-td3394264.html self._selected = itemId elementId = self._elementOf(itemId) self._element_selected(elementId) # TODO: NOTE to wywoluje zmiane strony a # w konsekwencji RegisterBrowser.select - zatem dany element jest zaznaczany # dwa razy (to nie powoduje jakichs duzych problemow) log.opr("RegisterBrowser.onSelect return", [], 1)
def levelDown(self): log.op("EntryRegisterBrowser.levelDown", [self.__selectedElement, self.__level], 0) elementId = self.__selectedElement #elif self.__level == "ENTRY": if self.__level == "ENTRY": elements = self.__dBController.getWorksForEntry(elementId) self.__stack.append(elementId) self.__level = "WORK" self.DeleteAllItems() self.__fillRegister(elements) elif self.__level == "WORK": #print elementId elements = self.__dBController.getPagesForWork(self.__stack[-1], elementId) #elements = ["0", "1", "2", "3", "4"] self.__stack.append(elementId) self.__level = "PAGE" self.DeleteAllItems() self.__fillRegister(elements) elif self.__level == "PAGE": elements = self.__dBController.getLinesForPage(self.__stack[-2], self.__stack[-1], elementId) #elements = ["4", "5", "6", "7"] self.__stack.append(elementId) self.__level = "LINE" self.DeleteAllItems() self.__fillRegister(elements) else: elements = self.__dBController.getFichesForLine(self.__stack[-3], self.__stack[-2], self.__stack[-1], elementId) self.__level = "FICHE" self.DeleteAllItems() self.__fillRegister(elements) for l in self._listeners: # TODO: D jeden listener elementId = l.request_selection() if elementId != None: self.select(elementId) time.sleep(0.1) # TODO: NOTE bez tego nie zaznacza w wykazie aktualnie ogladanej fiszki log.opr("EntryRegisterBrowser.levelDown return", [], 1)
def __pageDown(self): log.op("WindowRegisterBrowser.pageDown", [], 0) self._select(min(self._selected + self.SCROLL(), self._itemsLen() - 1)) log.opr("WindowRegisterBrowser.pageDown return", [], 1)
def __pageUp(self): log.op("WindowRegisterBrowser.pageUp", [], 0) self._select(max(self._selected - self.SCROLL(), 0)) log.opr("WindowRegisterBrowser.pageUp return", [], 1)
def onSelect(self, event): #mapsafe log.op("HintRegisterBrowser.onSelect", [event], 0) WindowRegisterBrowser.onSelect(self, event) log.opr("HintRegisterBrowser.onSelect return", [], 1)
def copyHintToEditPanel(self): log.op("copyHintToEditPanel", [self.__hintPanel.GetValue()], 0) self.setEntry(self.__stripSiglum(self.__hintPanel.GetValue())) log.opr("copyHintToEditPanel return", [], 1)
def __hintPanelChanged(self, event): log.op("__hintPanelChanged", [event, self.__hintPanel.GetValue()], 0) self.__hint = self.__hintPanel.GetValue() # niepoprawne (bo siglum) log.opr("__hintPanelChanged return", [], 1)
def __onHintAccept(self, event): # TODO: C strip siglum? log.op("__onHintAccept", [event, self.__hintPanel.GetValue()], 0) for l in self._listeners: l.on_hint_accept(event) log.opr("__onHintAccept return", [], 1)
def __onEditPrefixAccept(self, event): log.op("__onEditPrefixAccept", [event, self.__editPanel.GetValue()], 0) for l in self._listeners: l.on_edit_prefix_accept(event) log.opr("__onEditPrefixAccept return", [], 1)
def onSelect(self, event): log.op("StructureRegisterBrowser.onSelect", [self._elementOf(self._unmap(event.GetIndex()))], 0) RegisterBrowser.onSelect(self, event) log.opr("StructureRegisterBrowser.onSelect return", [], 1)