def _stop_monitor(self, monitor):

        monitor.on_trait_change(
            self._on_nodes_changed, 'nodes_changed', remove=True
        )

        monitor.on_trait_change(
            self._on_nodes_inserted, 'nodes_inserted', remove=True
        )

        monitor.on_trait_change(
            self._on_nodes_removed, 'nodes_removed', remove=True
        )

        monitor.on_trait_change(
            self._on_nodes_replaced, 'nodes_replaced', remove=True
        )


        monitor.on_trait_change(
            self._on_structure_changed, 'structure_changed', remove=True
        )

        monitor.stop()

        return

    #### Trait event handlers #################################################

    #### Static ####

    # fixme: Commented this out as listeners are added and removed by the tree.
    # This caused duplicate monitors to be created for the root node.
##     def _root_changed(self, old, new):
##         """ Called when the root of the model has been changed. """

##         if old is not None:
##             # Remove a listener for structure/appearance changes
##             self.remove_listener(old)

##         if new is not None:
##             # Wire up a listener for structure/appearance changes
##             self.add_listener(new)

##         return

    #### Dynamic ####
Stops a monitor.
dataset/ETHPy150Open enthought/pyface/pyface/tree/node_tree_model.py/NodeTreeModel._stop_monitor