Package library :: Package pyjamas :: Package ui :: Module FocusListener
[hide private]
[frames] | no frames]

Source Code for Module library.pyjamas.ui.FocusListener

 1  # Copyright 2006 James Tauber and contributors 
 2  # Copyright (C) 2009 Luke Kenneth Casson Leighton <lkcl@lkcl.net> 
 3  # 
 4  # Licensed under the Apache License, Version 2.0 (the "License"); 
 5  # you may not use this file except in compliance with the License. 
 6  # You may obtain a copy of the License at 
 7  # 
 8  #     http://www.apache.org/licenses/LICENSE-2.0 
 9  # 
10  # Unless required by applicable law or agreed to in writing, software 
11  # distributed under the License is distributed on an "AS IS" BASIS, 
12  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13  # See the License for the specific language governing permissions and 
14  # limitations under the License. 
15  from pyjamas import DOM 
16  from pyjamas.ui import Event 
17   
18 -def fireFocusEvent(listeners, sender, event):
19 type = DOM.eventGetType(event) 20 if type == "focus": 21 for listener in listeners: 22 listener.onFocus(sender) 23 elif type == "blur": 24 for listener in listeners: 25 listener.onLostFocus(sender)
26 27 FOCUS_EVENTS = ["focus", "blur"] 28
29 -class FocusHandler:
30
31 - def __init__(self):
32 self._focusListeners = [] 33 self.sinkEvents( Event.FOCUSEVENTS )
34
35 - def onFocus(self, sender):
36 pass
37
38 - def onLostFocus(self, sender):
39 pass
40
41 - def onBrowserEvent(self, event):
42 type = DOM.eventGetType(event) 43 if type == "blur" or type == "focus": 44 fireFocusEvent(self._focusListeners, self, event)
45
46 - def addFocusListener(self, listener):
47 self._focusListeners.append(listener)
48
49 - def removeFocusListener(self, listener):
50 self._focusListeners.remove(listener)
51