Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
00d5c289
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
00d5c289
编写于
9月 21, 2018
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix expand tree tests
上级
d3c1eda9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
44 addition
and
41 deletion
+44
-41
src/vs/base/browser/ui/tree/treeModel.ts
src/vs/base/browser/ui/tree/treeModel.ts
+5
-2
src/vs/base/test/browser/ui/tree/treeModel.test.ts
src/vs/base/test/browser/ui/tree/treeModel.test.ts
+39
-39
未找到文件。
src/vs/base/browser/ui/tree/treeModel.ts
浏览文件 @
00d5c289
...
...
@@ -86,7 +86,7 @@ function getTreeElementIterator<T>(elements: Iterator<ITreeElement<T>> | ITreeEl
function
treeElementToNode
<
T
>
(
treeElement
:
ITreeElement
<
T
>
,
parent
:
IMutableTreeNode
<
T
>
,
visible
:
boolean
,
treeListElements
:
ITreeNode
<
T
>
[]):
IMutableTreeNode
<
T
>
{
const
depth
=
parent
.
depth
+
1
;
const
{
element
,
collapsible
,
collapsed
}
=
treeElement
;
const
node
=
{
parent
,
element
,
children
:
[],
depth
,
collapsible
:
!!
collapsible
,
collapsed
:
!!
collapsed
,
visibleCount
:
0
};
const
node
=
{
parent
,
element
,
children
:
[],
depth
,
collapsible
:
!!
collapsible
,
collapsed
:
!!
collapsed
,
visibleCount
:
1
};
if
(
visible
)
{
treeListElements
.
push
(
node
);
...
...
@@ -95,7 +95,10 @@ function treeElementToNode<T>(treeElement: ITreeElement<T>, parent: IMutableTree
const
children
=
getTreeElementIterator
(
treeElement
.
children
);
node
.
children
=
Iterator
.
collect
(
Iterator
.
map
(
children
,
el
=>
treeElementToNode
(
el
,
node
,
visible
&&
!
treeElement
.
collapsed
,
treeListElements
)));
node
.
collapsible
=
node
.
collapsible
||
node
.
children
.
length
>
0
;
node
.
visibleCount
=
1
+
getVisibleCount
(
node
.
children
);
if
(
!
collapsed
)
{
node
.
visibleCount
+=
getVisibleCount
(
node
.
children
);
}
return
node
;
}
...
...
src/vs/base/test/browser/ui/tree/treeModel.test.ts
浏览文件 @
00d5c289
...
...
@@ -259,45 +259,45 @@ suite('TreeModel2', function () {
assert
.
deepEqual
(
list
[
2
].
depth
,
1
);
});
//
test('expand', function () {
//
const list = [] as ITreeNode<number>[];
//
const model = new TreeModel<number>(toSpliceable(list));
//
model.splice([0], 0, Iterator.fromArray([
//
{
//
element: 0, collapsed: true, children: Iterator.fromArray([
//
{ element: 10 },
//
{ element: 11 },
//
{ element: 12 },
//
])
//
},
//
{ element: 1 },
//
{ element: 2 }
//
]));
//
assert.deepEqual(list.length, 3);
//
model.setCollapsed([0], false);
//
assert.deepEqual(list.length, 6);
//
assert.deepEqual(list[0].element, 0);
//
assert.deepEqual(list[0].collapsed, false);
//
assert.deepEqual(list[0].depth, 1);
//
assert.deepEqual(list[1].element, 10);
//
assert.deepEqual(list[1].collapsed, false);
//
assert.deepEqual(list[1].depth, 2);
//
assert.deepEqual(list[2].element, 11);
//
assert.deepEqual(list[2].collapsed, false);
//
assert.deepEqual(list[2].depth, 2);
//
assert.deepEqual(list[3].element, 12);
//
assert.deepEqual(list[3].collapsed, false);
//
assert.deepEqual(list[3].depth, 2);
//
assert.deepEqual(list[4].element, 1);
//
assert.deepEqual(list[4].collapsed, false);
//
assert.deepEqual(list[4].depth, 1);
//
assert.deepEqual(list[5].element, 2);
//
assert.deepEqual(list[5].collapsed, false);
//
assert.deepEqual(list[5].depth, 1);
//
});
test
(
'
expand
'
,
function
()
{
const
list
=
[]
as
ITreeNode
<
number
>
[];
const
model
=
new
TreeModel
<
number
>
(
toSpliceable
(
list
));
model
.
splice
([
0
],
0
,
Iterator
.
fromArray
([
{
element
:
0
,
collapsed
:
true
,
children
:
Iterator
.
fromArray
([
{
element
:
10
},
{
element
:
11
},
{
element
:
12
},
])
},
{
element
:
1
},
{
element
:
2
}
]));
assert
.
deepEqual
(
list
.
length
,
3
);
model
.
setCollapsed
([
0
],
false
);
assert
.
deepEqual
(
list
.
length
,
6
);
assert
.
deepEqual
(
list
[
0
].
element
,
0
);
assert
.
deepEqual
(
list
[
0
].
collapsed
,
false
);
assert
.
deepEqual
(
list
[
0
].
depth
,
1
);
assert
.
deepEqual
(
list
[
1
].
element
,
10
);
assert
.
deepEqual
(
list
[
1
].
collapsed
,
false
);
assert
.
deepEqual
(
list
[
1
].
depth
,
2
);
assert
.
deepEqual
(
list
[
2
].
element
,
11
);
assert
.
deepEqual
(
list
[
2
].
collapsed
,
false
);
assert
.
deepEqual
(
list
[
2
].
depth
,
2
);
assert
.
deepEqual
(
list
[
3
].
element
,
12
);
assert
.
deepEqual
(
list
[
3
].
collapsed
,
false
);
assert
.
deepEqual
(
list
[
3
].
depth
,
2
);
assert
.
deepEqual
(
list
[
4
].
element
,
1
);
assert
.
deepEqual
(
list
[
4
].
collapsed
,
false
);
assert
.
deepEqual
(
list
[
4
].
depth
,
1
);
assert
.
deepEqual
(
list
[
5
].
element
,
2
);
assert
.
deepEqual
(
list
[
5
].
collapsed
,
false
);
assert
.
deepEqual
(
list
[
5
].
depth
,
1
);
});
test
(
'
collapse should recursively adjust visible count
'
,
function
()
{
const
list
=
[]
as
ITreeNode
<
number
>
[];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录