table_model.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from misc2.observer import Subscriber, Publisher
  2. from misc2.observer import NotImplementedException
  3. import logging
  4. class AbstractTableModel(Publisher):
  5. EVENT_TM_TABLE_CELL_UPDATED = 'event_tm_table_cell_updated'
  6. EVENT_TM_TABLE_ROWS_INSERTED = 'event_tm_table_rows_inserted'
  7. EVENT_TM_TABLE_ROWS_UPDATED = 'event_tm_table_rows_updated'
  8. TM_EVENTS = [EVENT_TM_TABLE_CELL_UPDATED, EVENT_TM_TABLE_ROWS_INSERTED, EVENT_TM_TABLE_ROWS_UPDATED]
  9. def register_listener(self, listener):
  10. try:
  11. map(lambda e: self.register(e, listener, getattr(listener, e)), AbstractTableModel.TM_EVENTS)
  12. except AttributeError as e:
  13. logging.error("AbstractTableModel:register_listener. Function not implemented in the listener. %s" % e)
  14. raise NotImplementedException
  15. def get_column_count(self):
  16. raise NotImplementedException
  17. def get_row_count(self):
  18. raise NotImplementedException
  19. def get_column_name(self, col):
  20. raise NotImplementedException
  21. def get_column_id(self, col):
  22. raise NotImplementedException
  23. def get_value_at(self, row, col):
  24. raise NotImplementedException
  25. def set_value_at(self, row, col, value):
  26. raise NotImplementedException
  27. def insert_row(self, values):
  28. raise NotImplementedException