taskPanel.ts 2.3 KB
Newer Older
T
t-amqi 已提交
1 2 3 4 5 6 7 8
/*---------------------------------------------------------------------------------------------
 *  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 * as nls from 'vs/nls';
import { Builder, Dimension } from 'vs/base/browser/builder';
T
t-amqi 已提交
9
import { IAction } from 'vs/base/common/actions';
T
t-amqi 已提交
10 11 12 13
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';
T
t-amqi 已提交
14
import { Registry } from 'vs/platform/registry/common/platform';
T
t-amqi 已提交
15
import { TPromise } from 'vs/base/common/winjs.base';
T
t-amqi 已提交
16 17
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
import { ShowTasksAction } from 'vs/workbench/parts/tasks/electron-browser/taskPanelActions';
T
t-amqi 已提交
18 19 20 21 22 23

const TASK_PANEL_ID = 'workbench.panel.task';


export class TaskPanel extends Panel {

T
t-amqi 已提交
24 25
	private _actions: IAction[];

T
t-amqi 已提交
26 27 28 29
	constructor(

		@ITelemetryService telemetryService: ITelemetryService,
		@IThemeService protected themeService: IThemeService,
T
t-amqi 已提交
30 31
		@ITaskService private taskService: ITaskService,
		@IInstantiationService private _instantiationService: IInstantiationService
T
t-amqi 已提交
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

	) {
		super(TASK_PANEL_ID, telemetryService, themeService);
	}

	public create(parent: Builder): TPromise<any> {
		super.create(parent);
		return TPromise.as(void 0);
	}

	public layout(dimension?: Dimension): void {
		if (!dimension) {
			return;
		}
	}

T
t-amqi 已提交
48 49 50 51 52 53 54 55 56 57 58 59
	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;
	}

T
t-amqi 已提交
60 61 62
	public setVisible(visible: boolean): TPromise<void> {
		return super.setVisible(visible);
	}
T
t-amqi 已提交
63 64 65

	public focus(): void {
	}
T
t-amqi 已提交
66 67 68 69 70 71
}

(<PanelRegistry>Registry.as(Extensions.Panels)).registerPanel(new PanelDescriptor(
	'vs/workbench/parts/tasks/electron-browser/taskPanel.ts',
	'TaskPanel',
	TASK_PANEL_ID,
T
t-amqi 已提交
72
	nls.localize('tasks', "Tasks"),
T
t-amqi 已提交
73
	'task',
T
t-amqi 已提交
74
	50
T
t-amqi 已提交
75
));