提交 2c72fd0f 编写于 作者: J Joao Moreno

tree om: setChildren

上级 f971baa7
...@@ -20,7 +20,7 @@ export class TreeObjectModel<T extends NonNullable<any>, TFilterData = void> { ...@@ -20,7 +20,7 @@ export class TreeObjectModel<T extends NonNullable<any>, TFilterData = void> {
this.model = new TreeModel(list, options); this.model = new TreeModel(list, options);
} }
splice(element: T | null, start: number, deleteCount: number, toInsert?: ISequence<ITreeElement<T>>): Iterator<ITreeElement<T>> { setChildren(element: T | null, children?: ISequence<ITreeElement<T>>): Iterator<ITreeElement<T>> {
const location = this.getLocation(element); const location = this.getLocation(element);
const insertedElements = new Set<T>(); const insertedElements = new Set<T>();
...@@ -35,7 +35,7 @@ export class TreeObjectModel<T extends NonNullable<any>, TFilterData = void> { ...@@ -35,7 +35,7 @@ export class TreeObjectModel<T extends NonNullable<any>, TFilterData = void> {
} }
}; };
return this.model.splice([...location, start], deleteCount, toInsert, onDidCreateNode, onDidDeleteNode); return this.model.splice([...location, 0], Number.MAX_VALUE, children, onDidCreateNode, onDidDeleteNode);
} }
getListIndex(element: T): number { getListIndex(element: T): number {
......
...@@ -35,7 +35,7 @@ suite('TreeObjectModel', function () { ...@@ -35,7 +35,7 @@ suite('TreeObjectModel', function () {
const list = [] as ITreeNode<number>[]; const list = [] as ITreeNode<number>[];
const model = new TreeObjectModel<number>(toSpliceable(list)); const model = new TreeObjectModel<number>(toSpliceable(list));
model.splice(null, 0, 0, Iterator.fromArray([ model.setChildren(null, Iterator.fromArray([
{ element: 0 }, { element: 0 },
{ element: 1 }, { element: 1 },
{ element: 2 } { element: 2 }
...@@ -44,25 +44,25 @@ suite('TreeObjectModel', function () { ...@@ -44,25 +44,25 @@ suite('TreeObjectModel', function () {
assert.deepEqual(toArray(list), [0, 1, 2]); assert.deepEqual(toArray(list), [0, 1, 2]);
assert.equal(model.size, 3); assert.equal(model.size, 3);
model.splice(null, 3, 0, Iterator.fromArray([ model.setChildren(null, Iterator.fromArray([
{ element: 3 }, { element: 3 },
{ element: 4 }, { element: 4 },
{ element: 5 }, { element: 5 },
])); ]));
assert.deepEqual(toArray(list), [0, 1, 2, 3, 4, 5]); assert.deepEqual(toArray(list), [3, 4, 5]);
assert.equal(model.size, 6); assert.equal(model.size, 3);
model.splice(null, 2, 2); model.setChildren(null);
assert.deepEqual(toArray(list), [0, 1, 4, 5]); assert.deepEqual(toArray(list), []);
assert.equal(model.size, 4); assert.equal(model.size, 0);
}); });
test('nested', () => { test('nested', () => {
const list = [] as ITreeNode<number>[]; const list = [] as ITreeNode<number>[];
const model = new TreeObjectModel<number>(toSpliceable(list)); const model = new TreeObjectModel<number>(toSpliceable(list));
model.splice(null, 0, 0, Iterator.fromArray([ model.setChildren(null, Iterator.fromArray([
{ {
element: 0, children: Iterator.fromArray([ element: 0, children: Iterator.fromArray([
{ element: 10 }, { element: 10 },
...@@ -77,7 +77,7 @@ suite('TreeObjectModel', function () { ...@@ -77,7 +77,7 @@ suite('TreeObjectModel', function () {
assert.deepEqual(toArray(list), [0, 10, 11, 12, 1, 2]); assert.deepEqual(toArray(list), [0, 10, 11, 12, 1, 2]);
assert.equal(model.size, 6); assert.equal(model.size, 6);
model.splice(12, 0, 0, Iterator.fromArray([ model.setChildren(12, Iterator.fromArray([
{ element: 120 }, { element: 120 },
{ element: 121 } { element: 121 }
])); ]));
...@@ -85,15 +85,11 @@ suite('TreeObjectModel', function () { ...@@ -85,15 +85,11 @@ suite('TreeObjectModel', function () {
assert.deepEqual(toArray(list), [0, 10, 11, 12, 120, 121, 1, 2]); assert.deepEqual(toArray(list), [0, 10, 11, 12, 120, 121, 1, 2]);
assert.equal(model.size, 8); assert.equal(model.size, 8);
model.splice(0, 1, 1); model.setChildren(0);
assert.deepEqual(toArray(list), [0, 10, 12, 120, 121, 1, 2]); assert.deepEqual(toArray(list), [0, 1, 2]);
assert.equal(model.size, 7); assert.equal(model.size, 3);
model.splice(null, 0, 1);
assert.deepEqual(toArray(list), [1, 2]);
assert.equal(model.size, 2);
model.splice(null, 0, 2); model.setChildren(null);
assert.deepEqual(toArray(list), []); assert.deepEqual(toArray(list), []);
assert.equal(model.size, 0); assert.equal(model.size, 0);
}); });
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册