def key(self, e): # print >> sys.stderr, "Other Listener" if not self.visible: return code = e.getKeyCode() if code == KeyEvent.VK_ESCAPE: self.hide() elif code == KeyEvent.VK_ENTER or code == KeyEvent.VK_TAB: self.chooseSelected() e.consume() elif code == KeyEvent.VK_SPACE: # TODO for functions: choose the selected option, add parenthesis # and put the cursor between them. example: obj.function(^cursor_here) self.chooseSelected() elif code == KeyEvent.VK_PERIOD: self.chooseSelected() #e.consume() # This fails because the key listener in console gets it first elif code == KeyEvent.VK_LEFT_PARENTHESIS: self.chooseSelected() elif code == 8: # BACKSPACE if len(self.typed) == 0: self.hide() self.typed = self.typed[:-1] print >> sys.stderr, self.typed self.data = filter(self.originalData, self.typed) self.list.setListData(self.data) self.list.setSelectedIndex(0) elif code == KeyEvent.VK_UP: self.previous() # consume event to avoid history previous e.consume() elif code == KeyEvent.VK_DOWN: self.next() # consume event to avoid history next e.consume() else: char = e.getKeyChar() if Character.isJavaLetterOrDigit(char): self.typed += char self.data = filter(self.data, self.typed) self.list.setListData(self.data) self.list.setSelectedIndex(0)
def key(self, e): # key listener #print "Other Listener" code = e.getKeyCode() #print 'keychar:',e.getKeyChar() if code == KeyEvent.VK_ESCAPE: self.hide() elif code == KeyEvent.VK_ENTER or code == KeyEvent.VK_TAB: self.chooseSelected() e.consume() elif code == 8: # BACKSPACE self.typed = self.typed[:-1] self.data = filter(self.originalData, self.typed) self.list.setListData(self.data) self.list.setSelectedIndex(0) elif code == KeyEvent.VK_UP: self.previous() # consume event to avoid history previous e.consume() elif code == KeyEvent.VK_DOWN: self.next() # consume event to avoid history next e.consume() else: char = e.getKeyChar() if Character.isJavaLetterOrDigit(char): self.typed += char self.data = filter(self.data, self.typed) self.list.setListData(self.data) self.list.setSelectedIndex(0)