本文整理汇总了TypeScript中vscode.WebviewPanel.onDidDispose方法的典型用法代码示例。如果您正苦于以下问题:TypeScript WebviewPanel.onDidDispose方法的具体用法?TypeScript WebviewPanel.onDidDispose怎么用?TypeScript WebviewPanel.onDidDispose使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vscode.WebviewPanel
的用法示例。
在下文中一共展示了WebviewPanel.onDidDispose方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1: show
async show(): Promise<void> {
const html = await this.getHtml();
if (this._panel === undefined) {
this._panel = window.createWebviewPanel(
this.id,
this.title,
{ viewColumn: ViewColumn.Active, preserveFocus: false },
{
retainContextWhenHidden: true,
enableFindWidget: true,
enableCommandUris: true,
enableScripts: true
}
);
this._panel.iconPath = Uri.file(Container.context.asAbsolutePath('images/gitlens-icon.png'));
this._disposablePanel = Disposable.from(
this._panel,
this._panel.onDidDispose(this.onPanelDisposed, this),
this._panel.onDidChangeViewState(this.onViewStateChanged, this),
this._panel.webview.onDidReceiveMessage(this.onMessageReceivedCore, this)
);
this._panel.webview.html = html;
}
else {
// Reset the html to get the webview to reload
this._panel.webview.html = '';
this._panel.webview.html = html;
this._panel.reveal(ViewColumn.Active, false);
}
}
示例2: show
async show(): Promise<void> {
const html = await this.getHtml();
const rootPath = Uri
.file(this.context.asAbsolutePath('.'))
.with({scheme: 'vscode-resource'}).toString();
// Replace placeholders in html content for assets and adding configurations as `window.bootstrap`
const fullHtml = html
.replace(/{{root}}/g, rootPath)
.replace('\'{{bootstrap}}\'', JSON.stringify(this.getBootstrap()));
// If panel already opened just reveal
if (this.panel !== undefined) {
this.panel.webview.html = fullHtml;
return this.panel.reveal(ViewColumn.Active);
}
this.panel = window.createWebviewPanel(
this.id,
this.title,
ViewColumn.Active,
{
retainContextWhenHidden: true,
enableFindWidget: true,
enableCommandUris: true,
enableScripts: true
}
);
// Applying listeners
this.disposablePanel = Disposable.from(
this.panel,
this.panel.onDidDispose(this.onPanelDisposed, this),
this.panel.onDidChangeViewState(this.onViewStateChanged, this),
this.panel.webview.onDidReceiveMessage(this.onMessageReceived, this)
);
this.panel.webview.html = fullHtml;
}
示例3: show
public async show(): Promise<void> {
if (!this.panel) {
this.panel = window.createWebviewPanel(
'requirementsPage',
'Azure Blockchain Development Kit - Preview',
ViewColumn.One,
{
enableCommandUris: true,
enableScripts: true,
retainContextWhenHidden: true,
},
);
const rootPath = Uri.file(this.context.asAbsolutePath('.')).with({scheme: 'vscode-resource'}).toString();
this.panel.webview.html = fs.readFileSync(Constants.requirementsPagePath, 'utf8').replace(/{{root}}/g, rootPath);
this.panel.onDidDispose(() => {
this.dispose();
});
} else {
this.panel.reveal(ViewColumn.One);
}
this.context.subscriptions.push(
this.panel.webview.onDidReceiveMessage(
async (message) => {
switch (message.command) {
case 'documentready':
if (this.panel) {
this.panel.webview.postMessage({ versions: await required.getAllVersions() });
}
return;
}
},
undefined,
this.context.subscriptions),
);
}