check box widget useful as numeric input field implements the onchange event.
| 3309 | |
| 3310 | |
| 3311 | class CheckBox(Input): |
| 3312 | """check box widget useful as numeric input field implements the onchange event.""" |
| 3313 | |
| 3314 | def __init__(self, checked=False, user_data='', **kwargs): |
| 3315 | """ |
| 3316 | Args: |
| 3317 | checked (bool): |
| 3318 | user_data (str): |
| 3319 | kwargs: See Widget.__init__() |
| 3320 | """ |
| 3321 | super(CheckBox, self).__init__('checkbox', user_data, **kwargs) |
| 3322 | self.set_value(checked) |
| 3323 | self.attributes[Widget.EVENT_ONCHANGE] = \ |
| 3324 | "var params={};params['value']=document.getElementById('%(emitter_identifier)s').checked;" \ |
| 3325 | "remi.sendCallbackParam('%(emitter_identifier)s','%(event_name)s',params);"% \ |
| 3326 | {'emitter_identifier':str(self.identifier), 'event_name':Widget.EVENT_ONCHANGE} |
| 3327 | |
| 3328 | @decorate_set_on_listener("(self, emitter, value)") |
| 3329 | @decorate_event |
| 3330 | def onchange(self, value): |
| 3331 | value = value in ('True', 'true') |
| 3332 | self.set_value(value) |
| 3333 | return (value, ) |
| 3334 | |
| 3335 | def set_value(self, checked): |
| 3336 | if checked: |
| 3337 | self.attributes['checked'] = 'checked' |
| 3338 | else: |
| 3339 | if 'checked' in self.attributes: |
| 3340 | del self.attributes['checked'] |
| 3341 | |
| 3342 | def get_value(self): |
| 3343 | """ |
| 3344 | Returns: |
| 3345 | bool: |
| 3346 | """ |
| 3347 | return 'checked' in self.attributes |
| 3348 | |
| 3349 | |
| 3350 | class SpinBox(Input): |