Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
d51eedec
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,体验更适合开发者的 AI 搜索 >>
提交
d51eedec
编写于
6月 20, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
combined install action
上级
e42b24c6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
53 addition
and
10 deletion
+53
-10
src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts
...ch/parts/extensions/electron-browser/extensionsActions.ts
+48
-0
src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts
...bench/parts/extensions/electron-browser/extensionsList.ts
+2
-6
src/vs/workbench/parts/extensions/electron-browser/extensionsModel.ts
...ench/parts/extensions/electron-browser/extensionsModel.ts
+3
-4
未找到文件。
src/vs/workbench/parts/extensions/electron-browser/extensionsActions.ts
浏览文件 @
d51eedec
...
...
@@ -241,3 +241,51 @@ export class UninstallAction extends Action {
this
.
disposables
=
dispose
(
this
.
disposables
);
}
}
export
class
CombinedInstallAction
extends
Action
{
private
installAction
:
InstallAction
;
private
uninstallAction
:
UninstallAction
;
private
disposables
:
IDisposable
[]
=
[];
constructor
(
private
model
:
ExtensionsModel
,
private
extension
:
IExtension
)
{
super
(
'
extensions.combinedInstall
'
,
''
,
''
,
false
);
this
.
installAction
=
new
InstallAction
(
model
,
extension
);
this
.
uninstallAction
=
new
UninstallAction
(
model
,
extension
);
this
.
disposables
.
push
(
this
.
installAction
,
this
.
uninstallAction
);
this
.
disposables
.
push
(
this
.
installAction
.
addListener2
(
Action
.
ENABLED
,
()
=>
this
.
update
()));
this
.
disposables
.
push
(
this
.
uninstallAction
.
addListener2
(
Action
.
ENABLED
,
()
=>
this
.
update
()));
this
.
update
();
}
private
update
():
void
{
if
(
this
.
installAction
.
enabled
)
{
this
.
enabled
=
true
;
this
.
label
=
this
.
installAction
.
label
;
this
.
class
=
this
.
installAction
.
class
;
}
else
if
(
this
.
uninstallAction
.
enabled
)
{
this
.
enabled
=
true
;
this
.
label
=
this
.
uninstallAction
.
label
;
this
.
class
=
this
.
uninstallAction
.
class
;
}
else
{
this
.
enabled
=
false
;
}
}
run
():
TPromise
<
any
>
{
if
(
this
.
installAction
.
enabled
)
{
return
this
.
installAction
.
run
();
}
else
if
(
this
.
uninstallAction
.
enabled
)
{
return
this
.
uninstallAction
.
run
();
}
return
TPromise
.
as
(
null
);
}
dispose
():
void
{
super
.
dispose
();
this
.
disposables
=
dispose
(
this
.
disposables
);
}
}
\ No newline at end of file
src/vs/workbench/parts/extensions/electron-browser/extensionsList.ts
浏览文件 @
d51eedec
...
...
@@ -12,7 +12,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti
import
{
IDelegate
}
from
'
vs/base/browser/ui/list/list
'
;
import
{
IPagedRenderer
}
from
'
vs/base/browser/ui/list/listPaging
'
;
import
{
IExtension
,
ExtensionsModel
}
from
'
./extensionsModel
'
;
import
{
InstallAction
,
Uni
nstallAction
}
from
'
./extensionsActions
'
;
import
{
CombinedI
nstallAction
}
from
'
./extensionsActions
'
;
export
interface
ITemplateData
{
extension
:
IExtension
;
...
...
@@ -89,13 +89,9 @@ export class Renderer implements IPagedRenderer<IExtension, ITemplateData> {
data
.
description
.
textContent
=
extension
.
description
;
data
.
actionbar
.
clear
();
const
installAction
=
new
InstallAction
(
this
.
model
,
extension
);
const
installAction
=
new
Combined
InstallAction
(
this
.
model
,
extension
);
data
.
actionbar
.
push
(
installAction
,
actionOptions
);
data
.
disposables
.
push
(
installAction
);
const
uninstallAction
=
new
UninstallAction
(
this
.
model
,
extension
);
data
.
actionbar
.
push
(
uninstallAction
,
actionOptions
);
data
.
disposables
.
push
(
uninstallAction
);
}
disposeTemplate
(
data
:
ITemplateData
):
void
{
...
...
src/vs/workbench/parts/extensions/electron-browser/extensionsModel.ts
浏览文件 @
d51eedec
...
...
@@ -122,8 +122,7 @@ export class ExtensionsModel {
const
installedById
=
index
(
this
.
installed
,
e
=>
e
.
local
.
id
);
this
.
installed
=
result
.
map
(
local
=>
{
const
id
=
local
.
path
;
const
extension
=
installedById
[
id
]
||
new
Extension
(
this
.
stateProvider
,
local
);
const
extension
=
installedById
[
local
.
id
]
||
new
Extension
(
this
.
stateProvider
,
local
);
extension
.
local
=
local
;
return
extension
;
});
...
...
@@ -241,11 +240,11 @@ export class ExtensionsModel {
}
private
getExtensionState
(
extension
:
Extension
):
ExtensionState
{
if
(
this
.
installed
.
indexOf
(
extension
)
>
-
1
)
{
if
(
this
.
installed
.
some
(
e
=>
e
===
extension
||
(
e
.
gallery
&&
extension
.
gallery
&&
e
.
gallery
.
id
===
extension
.
gallery
.
id
))
)
{
return
ExtensionState
.
Installed
;
}
if
(
this
.
installing
.
some
(
e
=>
e
.
extension
===
extension
))
{
if
(
extension
.
gallery
&&
this
.
installing
.
some
(
e
=>
e
.
extension
.
gallery
.
id
===
extension
.
gallery
.
id
))
{
return
ExtensionState
.
Installing
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录