Source code for pyforms_web.controls.control_checkboxlist

from pyforms_web.controls.control_base import ControlBase
import simplejson


[docs]class ControlCheckBoxList(ControlBase): def __init__(self, *args, **kwargs): self._headers = kwargs.get('headers',[]) self._select_entire_row = kwargs.get('select_entire_row',True) self._read_only = kwargs.get('readonly',True) self._selected_index = kwargs.get('selected_row_index',-1) if 'row_double_click_event' in kwargs: self.row_double_click_event = kwargs['row_double_click_event'] if 'item_selection_changed_event' in kwargs: self.item_selection_changed_event = kwargs['item_selection_changed_event'] super(ControlCheckBoxList, self).__init__(*args, **kwargs) def init_form(self): return "new ControlCheckBoxList('{0}', {1})".format( self._name, simplejson.dumps(self.serialize()) )
[docs] def item_selection_changed_event(self): pass
@property def headers(self): return self._headers @headers.setter def headers(self, value): self.mark_to_update_client() self._headers = value @property def rows_count(self): if not isinstance(self._value, list): return 0 return len(self._value) @property def selected_row_index(self): return self._selected_index @selected_row_index.setter def selected_row_index(self, value): self.mark_to_update_client() self._selected_index = value @property def value(self): """ Sets and gets the values. The values should have the """ return ControlBase.value.fget(self) @value.setter def value(self, value): self._selected_index = -1 ControlBase.value.fset(self, value) def serialize(self): data = ControlBase.serialize(self) data.update({ 'headers': self.headers, 'selected_index': self._selected_index, }) return data def deserialize(self, properties): ControlBase.deserialize(self,properties) self._selected_index = properties['selected_index']