提交 2c74a5b7 编写于 作者: T t-amqi

Add actions to task panel

上级 1ea9f292
......@@ -6,23 +6,29 @@
import * as nls from 'vs/nls';
import { Builder, Dimension } from 'vs/base/browser/builder';
import { IAction } from 'vs/base/common/actions';
import { Panel, PanelRegistry, PanelDescriptor, Extensions } from 'vs/workbench/browser/panel';
import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IThemeService } from 'vs/platform/theme/common/themeService';
import { ITaskService } from 'vs/workbench/parts/tasks/common/taskService';
import { Registry } from 'vs/platform/registry/common/platform';
import { TPromise } from 'vs/base/common/winjs.base';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { ShowTasksAction } from 'vs/workbench/parts/tasks/electron-browser/taskPanelActions';
const TASK_PANEL_ID = 'workbench.panel.task';
export class TaskPanel extends Panel {
private _actions: IAction[];
constructor(
@ITelemetryService telemetryService: ITelemetryService,
@IThemeService protected themeService: IThemeService,
@ITaskService private taskService: ITaskService
@ITaskService private taskService: ITaskService,
@IInstantiationService private _instantiationService: IInstantiationService
) {
super(TASK_PANEL_ID, telemetryService, themeService);
......@@ -39,17 +45,31 @@ export class TaskPanel extends Panel {
}
}
public getActions(): IAction[] {
if (!this._actions) {
this._actions = [
this._instantiationService.createInstance(ShowTasksAction, ShowTasksAction.ID, ShowTasksAction.LABEL)
];
this._actions.forEach(a => {
this._register(a);
});
}
return this._actions;
}
public setVisible(visible: boolean): TPromise<void> {
return super.setVisible(visible);
}
public focus(): void {
}
}
(<PanelRegistry>Registry.as(Extensions.Panels)).registerPanel(new PanelDescriptor(
'vs/workbench/parts/tasks/electron-browser/taskPanel.ts',
'TaskPanel',
TASK_PANEL_ID,
nls.localize('task', "Tasks"),
nls.localize('tasks', "Tasks"),
'task',
41,
'testing'
50
));
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import { TPromise } from 'vs/base/common/winjs.base';
import nls = require('vs/nls');
import { Action } from 'vs/base/common/actions';
import { IQuickOpenService } from 'vs/platform/quickOpen/common/quickOpen';
import { IConfigurationService } from "vs/platform/configuration/common/configuration";
export const ALL_COMMANDS_PREFIX = '>';
export class ShowTasksAction extends Action {
public static ID = 'workbench.action.showTasks';
public static LABEL = nls.localize('showTasks', "Show task menu");
constructor(
id: string,
label: string,
@IQuickOpenService private quickOpenService: IQuickOpenService,
@IConfigurationService private configurationService: IConfigurationService
) {
super(id, label);
}
public run(context?: any): TPromise<any> {
const value = `${ALL_COMMANDS_PREFIX}tasks`;
this.quickOpenService.show(value);
return TPromise.as(null);
}
}
......@@ -78,7 +78,7 @@ import 'vs/workbench/parts/trust/electron-browser/unsupportedWorkspaceSettings.c
import 'vs/workbench/parts/relauncher/electron-browser/relauncher.contribution';
import 'vs/workbench/parts/tasks/electron-browser/task.contribution';
import 'vs/workbench/parts/tasks/electron-browser/taskPanel';
import 'vs/workbench/parts/tasks/electron-browser/taskPanel'; // can be packaged separately
import 'vs/workbench/parts/emmet/browser/emmet.browser.contribution';
import 'vs/workbench/parts/emmet/electron-browser/emmet.contribution';
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册