提交 8e97fef6 编写于 作者: B Benjamin Pasero

cleanup workbench startup

上级 90fec348
......@@ -166,9 +166,7 @@ export class WorkbenchShell {
// Workbench
this.workbench = instantiationService.createInstance(Workbench, parent.getHTMLElement(), workbenchContainer.getHTMLElement(), this.configuration, serviceCollection, this.lifecycleService);
try {
this.workbench.startup({
onWorkbenchStarted: (info: IWorkbenchStartedInfo) => this.onWorkbenchStarted(info, instantiationService)
});
this.workbench.startup().done(startupInfos => this.onWorkbenchStarted(startupInfos, instantiationService));
} catch (error) {
// Print out error
......
......@@ -125,11 +125,6 @@ export interface IWorkbenchStartedInfo {
restoredEditors: string[];
}
export interface IWorkbenchCallbacks {
onServicesCreated?: () => void;
onWorkbenchStarted?: (info: IWorkbenchStartedInfo) => void;
}
const Identifiers = {
WORKBENCH_CONTAINER: 'workbench.main.container',
TITLEBAR_PART: 'workbench.parts.titlebar',
......@@ -187,7 +182,6 @@ export class Workbench implements IPartService {
private workbenchLayout: WorkbenchLayout;
private toDispose: IDisposable[];
private toShutdown: { shutdown: () => void; }[];
private callbacks: IWorkbenchCallbacks;
private sideBarHidden: boolean;
private statusBarHidden: boolean;
private activityBarHidden: boolean;
......@@ -259,11 +253,10 @@ export class Workbench implements IPartService {
* Starts the workbench and creates the HTML elements on the container. A workbench can only be started
* once. Use the shutdown function to free up resources created by the workbench on startup.
*/
public startup(callbacks?: IWorkbenchCallbacks): void {
public startup(): TPromise<IWorkbenchStartedInfo> {
this.workbenchStarted = true;
this.callbacks = callbacks;
// Create Workbench
// Create Workbench Container
this.createWorkbench();
// Install some global actions
......@@ -271,9 +264,6 @@ export class Workbench implements IPartService {
// Services
this.initServices();
if (this.callbacks && this.callbacks.onServicesCreated) {
this.callbacks.onServicesCreated();
}
// Contexts
this.messagesVisibleContext = MessagesVisibleContext.bindTo(this.contextKeyService);
......@@ -294,13 +284,15 @@ export class Workbench implements IPartService {
this.createWorkbenchLayout();
// Restore Parts
this.restoreParts().done(startedInfo => {
this.workbenchCreated = true;
return this.restoreParts();
}
if (this.callbacks && this.callbacks.onWorkbenchStarted) {
this.callbacks.onWorkbenchStarted(startedInfo);
}
});
private createWorkbench(): void {
this.workbenchContainer = $('.monaco-workbench-container');
this.workbench = $().div({
'class': `monaco-workbench ${isWindows ? 'windows' : isLinux ? 'linux' : 'mac'}`,
id: Identifiers.WORKBENCH_CONTAINER
}).appendTo(this.workbenchContainer);
}
private restoreParts(): TPromise<IWorkbenchStartedInfo> {
......@@ -375,6 +367,8 @@ export class Workbench implements IPartService {
}
const onRestored = (error?: Error): IWorkbenchStartedInfo => {
this.workbenchCreated = true;
if (error) {
errors.onUnexpectedError(error);
}
......@@ -1138,13 +1132,6 @@ export class Workbench implements IPartService {
this.toDispose.push(this.workbenchLayout);
}
private createWorkbench(): void {
// Create Workbench DIV Off-DOM
this.workbenchContainer = $('.monaco-workbench-container');
this.workbench = $().div({ 'class': 'monaco-workbench ' + (isWindows ? 'windows' : isLinux ? 'linux' : 'mac'), id: Identifiers.WORKBENCH_CONTAINER }).appendTo(this.workbenchContainer);
}
private renderWorkbench(): void {
// Apply sidebar state as CSS class
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册