def apply(self, value_root): source_parent = Tree._navigate_to_index_parent(self._index, value_root) moved_node = source_parent.pop_child(self._index[-1]) dest_parent = Tree._navigate_to_index_parent( self._dest_index, value_root) dest_parent.insert_child(self._dest_index[-1], moved_node) event = self.Event(source_parent, moved_node) source_parent.trigger_event(event)
def apply(self, value_root): class Pair: pass remove_pairs = [] # build a pointer-based deletion reference so sibling's can't screw with # eachother's indicies for index in self._index_list: pair = Pair() pair.parent = Tree._navigate_to_index_parent(index, value_root) pair.child = pair.parent.get_child(index[-1]) remove_pairs.append(pair) for pair in remove_pairs: pair.parent.remove_child(pair.child) pair.parent.trigger_event(self.Event(pair.child))
def apply(self, value_root): parent_node = Tree._navigate_to_index_parent(self._index, value_root) new_node = parent_node.create_child(self._index[-1]) parent_node.trigger_event(self.Event(new_node))