The callback and userdata gets stored, and if there is some javascript to add the js code is appended as attribute for the event source
(self, callback, *userdata, **kwuserdata)
| 147 | self.connect = self.do # for compatibility reasons |
| 148 | |
| 149 | def do(self, callback, *userdata, **kwuserdata): |
| 150 | """ The callback and userdata gets stored, and if there is some javascript to add |
| 151 | the js code is appended as attribute for the event source |
| 152 | """ |
| 153 | self.userdata = userdata |
| 154 | self.kwuserdata = kwuserdata |
| 155 | |
| 156 | if hasattr(self.event_method_bound, '_js_code'): |
| 157 | js_stop_propagation = kwuserdata.pop('js_stop_propagation', False) |
| 158 | js_prevent_default = kwuserdata.pop('js_prevent_default', False) |
| 159 | self.event_source_instance.attributes[self.event_name] = self.event_method_bound._js_code % { |
| 160 | 'emitter_identifier': self.event_source_instance.identifier, 'event_name': self.event_name} + \ |
| 161 | ("event.stopPropagation();" if js_stop_propagation else "") + \ |
| 162 | ("event.preventDefault();" if js_prevent_default else "") |
| 163 | |
| 164 | self.callback = callback |
| 165 | |
| 166 | def __call__(self, *args, **kwargs): |
| 167 | # here the event method gets called |