6
0

ObservableList.py 772 B

1234567891011121314151617181920212223242526272829
  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 __getitem__(self, value):
  9. return super().__getitem__(int(value))
  10. def __setitem__(self, key, value):
  11. super().__setitem__(key, Observable.create(value, self))
  12. Observable._notify(self)
  13. def __delitem__(self, key):
  14. super().__delitem__(key)
  15. Observable._notify(self)
  16. def append(self, value):
  17. obs = Observable.create(value, self)
  18. super().append(obs)
  19. Observable._notify(self)
  20. return obs