docs: def register_view(self, view):
          """Register callbacks for button press events and selection changed"""
          super(AbstractTreeViewController, self).register_view(view)
          self.signal_handlers.append((self._tree_selection,
                                       self._tree_selection.connect('changed', self.selection_changed)))
          # self.handler_ids.append((self.tree_view,
          #                          self.tree_view.connect('key-press-event', self.tree_view_keypress_callback)))
          self.tree_view.connect('key-release-event', self.on_key_release_event)
          self.tree_view.connect('button-release-event', self.tree_view_keypress_callback)
          # key press is needed for tab motion but needs to be registered already here TODO why?
          self.tree_view.connect('key-press-event', self.tree_view_keypress_callback)
          self._tree_selection.set_mode(Gtk.SelectionMode.MULTIPLE)
          self.update_selection_sm_prior()