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

Source Code for Module pyjamas.ui.ChangeListener

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