fix link cell not working issue (#23223)

This commit is contained in:
Alan Ren
2023-05-25 13:30:44 -07:00
committed by GitHub
parent f4d84e1478
commit 36c8945f1e
2 changed files with 18 additions and 16 deletions

View File

@@ -267,6 +267,7 @@ class DataResourceTable extends GridTableBase<any> {
this._chart.onOptionsChange(options => {
this.setChartOptions(options);
});
this.providerId = cellModel.notebookModel.context?.providerName;
}
public get gridDataProvider(): IGridDataProvider {

View File

@@ -798,24 +798,25 @@ export abstract class GridTableBase<T> extends Disposable implements IView, IQue
const subset = await this.getRowData(event.cell.row, 1);
const value = subset[0][event.cell.cell - 1];
if (column.isXml || (this.gridConfig.showJsonAsLink && isJsonCell(value))) {
const result = await this.executionPlanService.isExecutionPlan(this.providerId, value.displayValue);
if (result.isExecutionPlan) {
const executionPlanGraphInfo = {
graphFileContent: value.displayValue,
graphFileType: result.queryExecutionPlanFileExtension
};
if (column.isXml && this.providerId) {
const result = await this.executionPlanService.isExecutionPlan(this.providerId, value.displayValue);
if (result.isExecutionPlan) {
const executionPlanGraphInfo = {
graphFileContent: value.displayValue,
graphFileType: result.queryExecutionPlanFileExtension
};
const executionPlanInput = this.instantiationService.createInstance(ExecutionPlanInput, undefined, executionPlanGraphInfo);
await this.editorService.openEditor(executionPlanInput);
}
else {
const content = value.displayValue;
const input = this.untitledEditorService.create({ languageId: column.isXml ? 'xml' : 'json', initialValue: content });
await input.resolve();
await this.instantiationService.invokeFunction(formatDocumentWithSelectedProvider, input.textEditorModel, FormattingMode.Explicit, Progress.None, CancellationToken.None);
input.setDirty(false);
await this.editorService.openEditor(input);
const executionPlanInput = this.instantiationService.createInstance(ExecutionPlanInput, undefined, executionPlanGraphInfo);
await this.editorService.openEditor(executionPlanInput);
return;
}
}
const content = value.displayValue;
const input = this.untitledEditorService.create({ languageId: column.isXml ? 'xml' : 'json', initialValue: content });
await input.resolve();
await this.instantiationService.invokeFunction(formatDocumentWithSelectedProvider, input.textEditorModel, FormattingMode.Explicit, Progress.None, CancellationToken.None);
input.setDirty(false);
await this.editorService.openEditor(input);
}
}
}