Add localContentManger and dummy sessionManager (#3130)

* - keyboard binding to arrow keys
- toggle markdown editor by double click

* Added localContentManger and dummpy sessionManager
This commit is contained in:
Yurong He
2018-11-05 17:55:13 -08:00
committed by GitHub
parent 3c785ae7d8
commit 5da89ac05b
7 changed files with 152 additions and 6 deletions

View File

@@ -7,8 +7,11 @@
import { nb } from 'sqlops';
import * as nls from 'vs/nls';
import { INotebookService, INotebookManager, INotebookProvider } from 'sql/services/notebook/notebookService';
import { INotebookService, INotebookManager, INotebookProvider, DEFAULT_NOTEBOOK_PROVIDER } from 'sql/services/notebook/notebookService';
import URI from 'vs/base/common/uri';
import { LocalContentManager } from 'sql/services/notebook/localContentManager';
import { session } from 'electron';
import { SessionManager } from 'sql/services/notebook/sessionManager';
export class NotebookService implements INotebookService {
_serviceBrand: any;
@@ -16,6 +19,11 @@ export class NotebookService implements INotebookService {
private _providers: Map<string, INotebookProvider> = new Map();
private _managers: Map<URI, INotebookManager> = new Map();
constructor() {
let defaultProvider = new BuiltinProvider();
this.registerProvider(defaultProvider.providerId, defaultProvider);
}
registerProvider(providerId: string, provider: INotebookProvider): void {
this._providers.set(providerId, provider);
}
@@ -57,4 +65,48 @@ export class NotebookService implements INotebookService {
return op(provider);
}
}
}
export class BuiltinProvider implements INotebookProvider {
private manager: BuiltInNotebookManager;
constructor() {
this.manager = new BuiltInNotebookManager();
}
public get providerId(): string {
return DEFAULT_NOTEBOOK_PROVIDER;
}
getNotebookManager(notebookUri: URI): Thenable<INotebookManager> {
return Promise.resolve(this.manager);
}
handleNotebookClosed(notebookUri: URI): void {
// No-op
}
}
export class BuiltInNotebookManager implements INotebookManager {
private _contentManager: nb.ContentManager;
private _sessionManager: nb.SessionManager;
constructor() {
this._contentManager = new LocalContentManager();
this._sessionManager = new SessionManager();
}
public get providerId(): string {
return DEFAULT_NOTEBOOK_PROVIDER;
}
public get contentManager(): nb.ContentManager {
return this._contentManager;
}
public get serverManager(): nb.ServerManager {
return undefined;
}
public get sessionManager(): nb.SessionManager {
return this._sessionManager;
}
}