in src/install-jdk/index.ts [61:102]
private constructor(extensionPath: string, columnOrwebviewPanel: vscode.ViewColumn | vscode.WebviewPanel) {
this._extensionPath = extensionPath;
if ((columnOrwebviewPanel as vscode.WebviewPanel).viewType) {
this._panel = columnOrwebviewPanel as vscode.WebviewPanel;
} else {
this._panel = vscode.window.createWebviewPanel(InstallJdkPage.viewType, "Install New JDK", columnOrwebviewPanel as vscode.ViewColumn, {
enableScripts: true,
localResourceRoots: [
vscode.Uri.file(path.join(this._extensionPath, 'out'))
],
enableCommandUris: true,
retainContextWhenHidden: true
});
}
this._panel.iconPath = {
light: vscode.Uri.file(path.join(extensionPath, "caption.light.svg")),
dark: vscode.Uri.file(path.join(extensionPath, "caption.dark.svg"))
};
this._panel.webview.html = this._getHtmlForWebview();
this._panel.onDidDispose(() => this.dispose(), null, this._disposables);
// Handle messages from the webview
this._panel.webview.onDidReceiveMessage(message => {
switch (message.command) {
case 'onWillFetchAvailableReleases':
this.doFetchAvailableReleases();
return;
case 'onWillFetchAsset':
this.doFetchAsset(message.payload);
return;
case 'onWillDownloadTemurinJDK':
this.doDownloadTemurinJDK(message.payload);
return;
case 'onWillReloadWindow':
this.doReloadWindow();
}
}, null, this._disposables);
}