ObservableList.py 651 B

12345678910111213141516171819202122
  1. from .Observable import Observable
  2. class ObservableList(list, Observable):
  3. def __init__(self, lst: list, parent: Observable = None):
  4. list.__init__(self)
  5. Observable.__init__(self, parent)
  6. for element in lst:
  7. self.append(Observable.create(element, self))
  8. def __setitem__(self, key, value):
  9. super().__setitem__(key, Observable.create(value, self))
  10. Observable._notify(self)
  11. def __delitem__(self, key):
  12. super().__delitem__(key)
  13. Observable._notify(self)
  14. def append(self, value):
  15. super().append(Observable.create(value, self))
  16. Observable._notify(self)