Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
306feb42
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,发现更多精彩内容 >>
提交
306feb42
编写于
1月 21, 2019
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
filter empty affordance
上级
4df85d28
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
35 addition
and
6 deletion
+35
-6
src/vs/base/browser/ui/list/list.css
src/vs/base/browser/ui/list/list.css
+18
-0
src/vs/base/browser/ui/tree/abstractTree.ts
src/vs/base/browser/ui/tree/abstractTree.ts
+17
-6
未找到文件。
src/vs/base/browser/ui/list/list.css
浏览文件 @
306feb42
...
...
@@ -168,4 +168,22 @@
.hc-black
.monaco-list-type-filter
>
.controls
>
.clear
{
background-image
:
url("media/close-hc.svg")
;
}
.monaco-list-type-filter-message
{
position
:
absolute
;
box-sizing
:
border-box
;
width
:
100%
;
height
:
100%
;
top
:
0
;
left
:
0
;
padding
:
40px
1em
1em
1em
;
text-align
:
center
;
white-space
:
normal
;
opacity
:
0.7
;
pointer-events
:
none
;
}
.monaco-list-type-filter-message
:empty
{
display
:
none
;
}
\ No newline at end of file
src/vs/base/browser/ui/tree/abstractTree.ts
浏览文件 @
306feb42
...
...
@@ -341,12 +341,10 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
return
this
.
_pattern
;
}
private
_onDidChangePattern
=
new
Emitter
<
string
>
();
readonly
onDidChangePattern
=
this
.
_onDidChangePattern
.
event
;
private
enabled
=
false
;
private
positionClassName
=
'
ne
'
;
private
domNode
:
HTMLElement
;
private
messageDomNode
:
HTMLElement
;
private
labelDomNode
:
HTMLElement
;
private
filterOnTypeDomNode
:
HTMLInputElement
;
private
clearDomNode
:
HTMLElement
;
...
...
@@ -365,6 +363,8 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
this
.
domNode
.
draggable
=
true
;
domEvent
(
this
.
domNode
,
'
dragstart
'
)(
this
.
onDragStart
,
this
,
this
.
disposables
);
this
.
messageDomNode
=
append
(
view
.
getHTMLElement
(),
$
(
`.monaco-list-type-filter-message`
));
this
.
labelDomNode
=
append
(
this
.
domNode
,
$
(
'
span.label
'
));
const
controls
=
append
(
this
.
domNode
,
$
(
'
.controls
'
));
...
...
@@ -392,6 +392,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
this
.
filterOnTypeDomNode
.
checked
=
!!
options
.
filterOnType
;
this
.
tree
.
refilter
();
this
.
updateMessage
();
}
private
enable
():
void
{
...
...
@@ -425,6 +426,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
onInput
(
this
.
onInput
,
this
,
this
.
enabledDisposables
);
this
.
filter
.
pattern
=
''
;
this
.
tree
.
refilter
();
this
.
updateMessage
();
this
.
enabled
=
true
;
}
...
...
@@ -436,6 +438,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
this
.
domNode
.
remove
();
this
.
enabledDisposables
=
dispose
(
this
.
enabledDisposables
);
this
.
tree
.
refilter
();
this
.
updateMessage
();
this
.
enabled
=
false
;
}
...
...
@@ -456,8 +459,9 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
this
.
_pattern
=
pattern
;
this
.
filter
.
pattern
=
pattern
;
this
.
tree
.
refilter
();
this
.
tree
.
focusNext
(
0
,
true
);
this
.
_onDidChangePattern
.
fire
(
pattern
);
this
.
updateMessage
(
);
}
private
onDragStart
():
void
{
...
...
@@ -536,6 +540,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
this
.
tree
.
updateOptions
({
filterOnType
:
this
.
filterOnTypeDomNode
.
checked
});
this
.
tree
.
refilter
();
this
.
tree
.
domFocus
();
this
.
updateMessage
();
this
.
updateFilterOnTypeTitle
();
}
...
...
@@ -547,6 +552,14 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
}
}
private
updateMessage
():
void
{
if
(
this
.
pattern
&&
this
.
view
.
length
===
0
)
{
this
.
messageDomNode
.
textContent
=
localize
(
'
empty
'
,
"
No elements found
"
);
}
else
{
this
.
messageDomNode
.
innerHTML
=
''
;
}
}
dispose
()
{
this
.
disable
();
this
.
disposables
=
dispose
(
this
.
disposables
);
...
...
@@ -662,8 +675,6 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
const
typeFilterController
=
new
TypeFilterController
(
this
,
this
.
view
,
filter
as
TypeFilter
<
T
>
,
_options
.
keyboardNavigationLabelProvider
);
this
.
focusNavigationFilter
=
node
=>
!
typeFilterController
.
pattern
||
!
FuzzyScore
.
isDefault
(
node
.
filterData
as
any
as
FuzzyScore
);
// TODO@joao
this
.
disposables
.
push
(
typeFilterController
);
typeFilterController
.
onDidChangePattern
(()
=>
this
.
focusNext
(
0
,
true
),
this
,
this
.
disposables
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录