@@ -31,38 +31,11 @@ export class TableView {
31
31
private _disposables : Disposable [ ] = [ ] ;
32
32
33
33
/**
34
- * Creates new TableView instance for tabular data rendering.
35
- *
36
- * @param webviewPanel Reference to the webview panel.
37
- * @param extensionUri Extension directory Uri.
38
- * @param documentUri Data document Uri.
39
- */
40
- private constructor ( webviewPanel : WebviewPanel , extensionUri : Uri , documentUri : Uri ) {
41
- this . _webviewPanel = webviewPanel ;
42
- this . _extensionUri = extensionUri ;
43
- this . _documentUri = documentUri ;
44
-
45
- // create custom table view Uri
46
- this . _viewUri = documentUri . with ( { scheme : 'tabular-data' } ) ;
47
-
48
- // extract data file name from the data source document path
49
- this . _fileName = fileUtils . getFileName ( documentUri ) ;
50
-
51
- // dispose table view resources when table view panel is closed by the user or via vscode apis
52
- this . _webviewPanel . onDidDispose ( this . dispose , null , this . _disposables ) ;
53
-
54
- // configure webview panel
55
- this . configure ( ) ;
56
-
57
- // add it to the tracked table webviews
58
- TableView . _views . set ( this . _viewUri . toString ( ) , this ) ;
59
- }
60
-
61
- /**
62
- * Reveals current table view or creates new table webview panel for table data display.
34
+ * Reveals current table view or creates new table webview panel for tabular data display.
63
35
*
64
36
* @param extensionUri Extension directory Uri.
65
37
* @param documentUri Data document Uri.
38
+ * @param webviewPanel Optional webview panel instance.
66
39
*/
67
40
public static render ( extensionUri : Uri , documentUri : Uri , webviewPanel ?: WebviewPanel ) {
68
41
const viewUri : Uri = documentUri . with ( { scheme : 'tabular-data' } ) ;
@@ -76,11 +49,18 @@ export class TableView {
76
49
if ( ! webviewPanel ) {
77
50
// create new webview panel for the table view
78
51
webviewPanel = TableView . createWebviewPanel ( documentUri ) ;
79
-
80
- // set custom table view panel icon
81
- webviewPanel . iconPath = Uri . file ( path . join ( extensionUri . fsPath , './resources/icons/tabular-data-viewer.svg' ) ) ;
52
+ }
53
+ else {
54
+ // enable scripts for existing webview panel from table editor
55
+ webviewPanel . webview . options = {
56
+ enableScripts : true ,
57
+ enableCommandUris : true
58
+ } ;
82
59
}
83
60
61
+ // set custom table view panel icon
62
+ webviewPanel . iconPath = Uri . file ( path . join ( extensionUri . fsPath , './resources/icons/tabular-data-viewer.svg' ) ) ;
63
+
84
64
// set as current table view
85
65
TableView . currentView = new TableView ( webviewPanel , extensionUri , documentUri ) ;
86
66
}
@@ -101,7 +81,7 @@ export class TableView {
101
81
viewColumn : ViewColumn . Active , // use active view column for display
102
82
preserveFocus : true
103
83
} ,
104
- { // weview panel options
84
+ { // webview panel options
105
85
enableScripts : true , // enable JavaScript in webview
106
86
enableCommandUris : true ,
107
87
enableFindWidget : true ,
@@ -110,6 +90,34 @@ export class TableView {
110
90
) ;
111
91
}
112
92
93
+ /**
94
+ * Creates new TableView instance for tabular data rendering.
95
+ *
96
+ * @param webviewPanel Reference to the webview panel.
97
+ * @param extensionUri Extension directory Uri.
98
+ * @param documentUri Data document Uri.
99
+ */
100
+ private constructor ( webviewPanel : WebviewPanel , extensionUri : Uri , documentUri : Uri ) {
101
+ this . _webviewPanel = webviewPanel ;
102
+ this . _extensionUri = extensionUri ;
103
+ this . _documentUri = documentUri ;
104
+
105
+ // create custom table view Uri
106
+ this . _viewUri = documentUri . with ( { scheme : 'tabular-data' } ) ;
107
+
108
+ // extract data file name from the data source document path
109
+ this . _fileName = fileUtils . getFileName ( documentUri ) ;
110
+
111
+ // dispose table view resources when table view panel is closed by the user or via vscode apis
112
+ this . _webviewPanel . onDidDispose ( this . dispose , null , this . _disposables ) ;
113
+
114
+ // configure webview panel
115
+ this . configure ( ) ;
116
+
117
+ // add it to the tracked table webviews
118
+ TableView . _views . set ( this . _viewUri . toString ( ) , this ) ;
119
+ }
120
+
113
121
/**
114
122
* Disposes table view resources when webview panel is closed.
115
123
*/
0 commit comments