@@ -12,12 +12,16 @@ let saveDataFileName = '';
1212let tableContainer , table , progressRing , saveFileTypeSelector , tablePageSelector ;
1313
1414// table view vars
15+ let tableConfig = { } ;
1516let tableSchema ;
1617let tableColumns = [ ] ;
1718let tableData = [ ] ;
1819let loadedRows = 0 ;
1920let totalRows = 0 ;
2021let loadedDataPage = 0 ;
22+ let viewState = {
23+ tableConfig : tableConfig
24+ } ;
2125
2226// table view settings
2327const toolbarHeight = 40 ; // table view toolbar height offset
@@ -102,7 +106,8 @@ window.addEventListener('message', event => {
102106 case 'refresh' :
103107 documentUrl = event . data . documentUrl ;
104108 fileName = event . data . fileName ;
105- vscode . setState ( { documentUrl : documentUrl } ) ;
109+ viewState . documentUrl = documentUrl ;
110+ vscode . setState ( viewState ) ;
106111 tableSchema = event . data . tableSchema ;
107112 tableData = event . data . tableData ;
108113 totalRows = event . data . totalRows ;
@@ -145,6 +150,19 @@ function initializeView() {
145150 saveFileTypeSelector = document . getElementById ( 'save-file-type-selector' ) ;
146151 saveFileTypeSelector . onchange = saveData ;
147152
153+ // restore previous table view state
154+ viewState = vscode . getState ( ) ;
155+ if ( viewState && viewState . tableConfig ) {
156+ // get last table view config
157+ tableConfig = viewState . tableConfig ;
158+ }
159+ else {
160+ // create new empty table view config
161+ viewState = { } ;
162+ viewState . tableConfig = tableConfig ;
163+ vscode . setState ( viewState ) ;
164+ }
165+
148166 // request initial rows data load
149167 vscode . postMessage ( { command : 'refresh' } ) ;
150168}
@@ -202,8 +220,8 @@ function createTable(tableSchema, tableData) {
202220 }
203221
204222 // create tabulator table instance for tabular data display
205- const tableConfig = createTableConfig ( tableColumns ) ;
206- table = new Tabulator ( '#table-container' , tableConfig ) ;
223+ const tableOptions = createTableConfig ( tableColumns ) ;
224+ table = new Tabulator ( '#table-container' , tableOptions ) ;
207225
208226 // update table settings after initial data rows load
209227 table . on ( 'tableBuilt' , onTableBuilt ) ;
@@ -435,6 +453,16 @@ function saveTableSetting(id, type, data) {
435453
436454 // save table settings in local storage for now
437455 localStorage . setItem ( tableSettingKey , JSON . stringify ( data ) ) ;
456+
457+ if ( viewState . tableConfig === undefined ) {
458+ // add table config to table view state
459+ viewState . tableConfig = tableConfig ;
460+ }
461+
462+ // update table config in view state
463+ tableConfig [ type ] = data ;
464+ vscode . setState ( viewState ) ;
465+ console . log ( `tableView.saveTableSetting():viewState` , viewState ) ;
438466}
439467
440468/**
0 commit comments