Skip to content

Commit 3bdf6de

Browse files
#89 implemented Open Data File feature on import icon button click
1 parent e8739b0 commit 3bdf6de

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/data.preview.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,10 @@ export class DataPreview {
238238
// saves data view config, or filtered .arrow, .csv, .json(s), .md, .yml, etc. data
239239
this.saveData(message.data, message.fileType);
240240
break;
241+
case 'openFile':
242+
// shows open file dialog for lauching new data preview
243+
this.openFile();
244+
break;
241245
case 'loadView':
242246
// launch new view
243247
this.loadView(message.viewName, message.uri);
@@ -280,6 +284,29 @@ export class DataPreview {
280284
}
281285
}
282286

287+
288+
/**
289+
* Shows open file dialog for launchign new data preview.
290+
*/
291+
private async openFile() {
292+
// display open file dialog
293+
let openFolderUri: Uri = Uri.parse(this._dataUrl).with({scheme: 'file'});
294+
const workspaceFolders: Array<WorkspaceFolder> = workspace.workspaceFolders;
295+
if (workspaceFolders && workspaceFolders.length >= 1) {
296+
// change open file folder uri to the 1st workspace folder, usuallay workspace root
297+
openFolderUri = workspaceFolders[0].uri;
298+
}
299+
const selectedFiles: Array<Uri> = await window.showOpenDialog({
300+
defaultUri: openFolderUri,
301+
canSelectMany: false,
302+
canSelectFolders: false
303+
});
304+
if (selectedFiles && selectedFiles.length >= 1) {
305+
// launch new data preview for the selected data file
306+
this.loadView('data.preview', selectedFiles[0].fsPath);
307+
}
308+
}
309+
283310
/**
284311
* Launches new view via commands.executeCommand interface.
285312
* @param viewName View name to launch.
@@ -891,6 +918,7 @@ export class DataPreview {
891918
}
892919
} // end of saveData()
893920

921+
/*-------------------- TODO: move these to new markdown.data.provider impl. and interface --------------------*/
894922

895923
/**
896924
* Converts CSV to markdown table.

templates/data.view.html

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@
132132
<!--
133133
<label id="data-url-label" for="data-url-input">| new data url:</label>
134134
-->
135-
<a id="open-data-file-button" title="Open Data File" href="#" onClick="openDataFile()">📤</a>
135+
<a id="open-file-button" title="Open Data File" href="#" onClick="openFile()">📤</a>
136136
<input id="data-url-input" type="text" title="Enter new Data File Path to Preview"
137137
onKeyPress="loadDataPreviewForUrl()" />
138138
</div>
@@ -590,6 +590,14 @@
590590
}
591591
}
592592

593+
/**
594+
* Opens file dialog to launch new data preview
595+
* for the selected data file from the supported data formats list.
596+
**/
597+
function openFile() {
598+
vscode.postMessage({command: 'openFile'});
599+
}
600+
593601
/**
594602
* Loads data preview help in a browser window.
595603
*/

0 commit comments

Comments
 (0)