-
Notifications
You must be signed in to change notification settings - Fork 227
Expand file tree
/
Copy pathvariant-analysis-view.ts
More file actions
52 lines (44 loc) · 1.64 KB
/
variant-analysis-view.ts
File metadata and controls
52 lines (44 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import { ExtensionContext, ViewColumn } from 'vscode';
import { AbstractWebview, WebviewPanelConfig } from '../abstract-webview';
import { WebviewMessage } from '../interface-utils';
import { logger } from '../logging';
import { VariantAnalysisViewInterface, VariantAnalysisViewManager } from './variant-analysis-view-manager';
import { VariantAnalysis } from './shared/variant-analysis';
import { FromVariantAnalysisMessage, ToVariantAnalysisMessage } from '../pure/interface-types';
export class VariantAnalysisView extends AbstractWebview<ToVariantAnalysisMessage, FromVariantAnalysisMessage> implements VariantAnalysisViewInterface {
public constructor(
ctx: ExtensionContext,
public readonly variantAnalysisId: number,
private readonly manager: VariantAnalysisViewManager<VariantAnalysisView>,
) {
super(ctx);
manager.registerView(this);
}
public async openView() {
this.getPanel().reveal(undefined, true);
}
public async updateView(variantAnalysis: VariantAnalysis): Promise<void> {
if (!this.isShowingPanel) {
return;
}
await this.postMessage({
t: 'setVariantAnalysis',
variantAnalysis,
});
}
protected getPanelConfig(): WebviewPanelConfig {
return {
viewId: 'variantAnalysisView',
title: `CodeQL Query Results for ${this.variantAnalysisId}`,
viewColumn: ViewColumn.Active,
preserveFocus: true,
view: 'variant-analysis'
};
}
protected onPanelDispose(): void {
this.manager.unregisterView(this);
}
protected async onMessage(msg: WebviewMessage): Promise<void> {
void logger.log('Received message on variant analysis view: ' + msg.t);
}
}