From b81f164c8cdcd1f81f6371a6e7dcc0e1343371da Mon Sep 17 00:00:00 2001 From: Taras Novak Date: Wed, 12 Jun 2019 05:54:24 -0500 Subject: [PATCH] #24 save data table name in webview state for display on vscode reload --- src/data.preview.ts | 13 ++++++++++++- src/extension.ts | 4 +++- templates/data.view.html | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/data.preview.ts b/src/data.preview.ts index ad588d0..f45cd4e 100644 --- a/src/data.preview.ts +++ b/src/data.preview.ts @@ -53,7 +53,8 @@ export class DataPreviewSerializer implements WebviewPanelSerializer { this.viewType, this.extensionPath, Uri.parse(state.uri), - state.config, // view config + state.table, // data table + state.config, // data view config webviewPanel.viewColumn, this.htmlTemplate, webviewPanel @@ -86,6 +87,7 @@ export class DataPreview { * @param viewType Preview webview type, i.e. data.preview. * @param extensionPath Extension path for loading webview scripts, etc. * @param uri Source data file uri to preview. + * @param table Data table name. * @param viewConfig Data view config. * @param viewColumn vscode IDE view column to display data preview in. * @param htmlTemplate Webview html template reference. @@ -95,6 +97,7 @@ export class DataPreview { viewType: string, extensionPath: string, uri: Uri, + table: string, viewConfig: any, viewColumn: ViewColumn, htmlTemplate: Template, @@ -103,6 +106,7 @@ export class DataPreview { // save ext path, document uri, view config, and create preview uri this._extensionPath = extensionPath; this._uri = uri; + this._dataTable = (table !== undefined) ? table: ''; this._config = viewConfig; this._fileName = path.basename(uri.fsPath); this._fileExtension = this._fileName.substr(this._fileName.lastIndexOf('.')); @@ -691,6 +695,13 @@ export class DataPreview { return this._schema; } + /** + * Gets data table name for data files with multiple data sets on vscode reload. + */ + get table(): string { + return this._dataTable; + } + /** * Gets UI theme to use for Data Preview display from workspace config. * see package.json 'configuration' section for more info. diff --git a/src/extension.ts b/src/extension.ts index 34844eb..bb43e1f 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -125,7 +125,9 @@ function createDataPreviewCommand( } } const preview: DataPreview = new DataPreview(viewType, - extensionPath, resource, {}, // viewConfig + extensionPath, resource, + '', // default data table + {}, // data view config viewColumn, viewTemplate); previewManager.add(preview); return preview.webview; diff --git a/templates/data.view.html b/templates/data.view.html index 0044f8b..1f5b32d 100644 --- a/templates/data.view.html +++ b/templates/data.view.html @@ -171,7 +171,7 @@ // check view config if (JSON.stringify(viewConfig) != JSON.stringify(data.config)) { viewConfig = data.config; - vscode.setState({uri: dataUri, config: viewConfig}); + vscode.setState({uri: dataUri, table: dataTable, config: viewConfig}); // update view config viewer.restore(viewConfig); // reset view data for reaload