规范 - 如何更新保持当前选择的树列表?

Spec - how to update a tree list keeping current selection?

我正在显示一棵树,我需要添加一个元素,但我想保留当前选中的项目。 如果我这样做:

oldSelectedItem := treePresenter selectedItem.
treePresenter
    roots: newRootCollection;
    selectItem: oldSelectedItem

当然可以,但是有一个问题:激活事件(whenActivatedDo:)会被触发,我不知道这是什么! 我怎样才能避免它?

规范中的树和树表实现了 API updateRootsKeepingSelection: 以防止这种情况发生。
实际操作和上面的代码一样,但是不会触发任何激活,也不会激活传输。

此代码:

treePresenter updateRootsKeepingSelection: newRootCollection

与原代码效果相同,但执行时不会触发激活
(当然,要正常工作,需要新的集合包含之前选择的元素)。