Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/src/vs/workbench/contrib/notebook/browser/viewModel/eventDispatcher.ts
3296 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { Emitter } from '../../../../../base/common/event.js';
7
import { Disposable } from '../../../../../base/common/lifecycle.js';
8
import { NotebookCellStateChangedEvent, NotebookLayoutChangedEvent, NotebookMetadataChangedEvent, NotebookViewEvent, NotebookViewEventType } from '../notebookViewEvents.js';
9
10
export class NotebookEventDispatcher extends Disposable {
11
private readonly _onDidChangeLayout = this._register(new Emitter<NotebookLayoutChangedEvent>());
12
readonly onDidChangeLayout = this._onDidChangeLayout.event;
13
14
private readonly _onDidChangeMetadata = this._register(new Emitter<NotebookMetadataChangedEvent>());
15
readonly onDidChangeMetadata = this._onDidChangeMetadata.event;
16
17
private readonly _onDidChangeCellState = this._register(new Emitter<NotebookCellStateChangedEvent>());
18
readonly onDidChangeCellState = this._onDidChangeCellState.event;
19
20
emit(events: NotebookViewEvent[]) {
21
for (let i = 0, len = events.length; i < len; i++) {
22
const e = events[i];
23
24
switch (e.type) {
25
case NotebookViewEventType.LayoutChanged:
26
this._onDidChangeLayout.fire(e);
27
break;
28
case NotebookViewEventType.MetadataChanged:
29
this._onDidChangeMetadata.fire(e);
30
break;
31
case NotebookViewEventType.CellStateChanged:
32
this._onDidChangeCellState.fire(e);
33
break;
34
}
35
}
36
}
37
}
38
39
40