提交 6c24b5d4 编写于 作者: J Joao Moreno

tree test: setChildren on collapsed node

上级 e7d39fc6
......@@ -88,15 +88,18 @@ export class IndexTreeModel<T, TFilterData = void> implements ITreeModel<T, TFil
const lastIndex = location[location.length - 1];
const deletedNodes = parentNode.children.splice(lastIndex, deleteCount, ...nodesToInsert);
const visibleDeleteCount = deletedNodes.reduce((r, node) => r + node.revealedCount, 0);
this._updateAncestorsRevealedCount(parentNode, revealedCount - visibleDeleteCount);
if (!parentNode.collapsed) {
const visibleDeleteCount = deletedNodes.reduce((r, node) => r + node.revealedCount, 0);
if (revealed) {
this.list.splice(listIndex, visibleDeleteCount, treeListElementsToInsert);
this._updateAncestorsRevealedCount(parentNode, revealedCount - visibleDeleteCount);
if (revealed) {
this.list.splice(listIndex, visibleDeleteCount, treeListElementsToInsert);
}
}
if (onDidDeleteNode) {
if (deletedNodes.length > 0 && onDidDeleteNode) {
const visit = (node: ITreeNode<T, TFilterData>) => {
onDidDeleteNode(node);
node.children.forEach(visit);
......@@ -187,7 +190,7 @@ export class IndexTreeModel<T, TFilterData = void> implements ITreeModel<T, TFil
element: treeElement.element,
children: [],
depth: parent.depth + 1,
collapsible: !!treeElement.collapsible,
collapsible: typeof treeElement.collapsible === 'boolean' ? treeElement.collapsible : (typeof treeElement.collapsed === 'boolean'),
collapsed: !!treeElement.collapsed,
revealedCount: 1,
visible: true,
......
......@@ -93,4 +93,25 @@ suite('ObjectTreeModel', function () {
assert.deepEqual(toArray(list), []);
assert.equal(model.size, 0);
});
test('setChildren on collapsed node', () => {
const list = [] as ITreeNode<number>[];
const model = new ObjectTreeModel<number>(toSpliceable(list));
model.setChildren(null, Iterator.fromArray([
{ element: 0, collapsed: true }
]));
assert.deepEqual(toArray(list), [0]);
model.setChildren(0, Iterator.fromArray([
{ element: 1 },
{ element: 2 }
]));
assert.deepEqual(toArray(list), [0]);
model.setCollapsed(0, false);
assert.deepEqual(toArray(list), [0, 1, 2]);
});
});
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册