@@ -15,11 +15,15 @@ const slider = document.getElementById('range')
1515const thumb = document . getElementById ( 'thumb' )
1616const figurecontainer = document . getElementById ( "figurecontainer" )
1717
18+ // array of JSONs => {data, fName, sName, }
19+ var dataList = [ ] ;
20+ // array of JSONs => {dataIndex, col:{x,y,z,s}, lName}
21+ var traceList = [ ] ;
1822
1923var fullData = [ ] , fullDataCols = [ ] , fileNames = [ ] , saveNames = [ ] , legendNames = [ ] ,
2024 data = [ ] , dpsx = [ ] , dpsy = [ ] , index = [ ] , saved = true , firstSave = true ,
2125 col = { x : 0 , y : 0 , z : 0 , s : 0 } , currentEditable = 0 , xName = "X" ;
22- lockXc = 1 , swapped = 0 , issame = false , swapper = false , ddd = false ,
26+ lockXc = 1 , swapped = 0 , issame = false , swapper = false , ddd = false , oldDpsLen = 0 ,
2327 th_in = 0 , undoStack = [ ] , redoStack = [ ] , isAxesLocked = false ;
2428
2529
@@ -267,6 +271,7 @@ function addTrace(){
267271var cRange = false , cRangeY = [ NaN , NaN ] ; //hidden feature
268272function setCutRange ( ) {
269273 if ( ! cRange ) return
274+ // should also include other traces if they are currently plotted
270275 let a = Math . min ( ...dpsy ) , b = Math . max ( ...dpsy ) ;
271276 let [ aY , bY ] = cRangeY ;
272277 a = isNaN ( aY ) ? a : Math . max ( aY , a )
@@ -312,7 +317,6 @@ function updatePlot(all = true) {
312317
313318
314319
315- var oldDpsLen = 0
316320function sliderChanged ( shift = 0 ) {
317321 if ( ( shift == - 1 && th_in == 0 ) || ( shift == + 1 && th_in == data . length - 1 ) ) return
318322 th_in += shift
@@ -420,23 +424,26 @@ function keyBoardDrag(moveDown) {
420424
421425
422426var exportAll = false
427+ var timer ;
423428function updateOnServer ( ) {
424429 if ( ! viewerWindow ) return ;
425- if ( ! exportAll ) {
426- var s_data = [ [
427- data . map ( i => i [ swapped ? col . y : col . x ] ) ,
428- data . map ( i => i [ swapped ? col . x : col . y ] ) ,
429- data . map ( i => i [ col . z ] )
430- ] ]
431- } else {
432- var s_data = fullData . map ( ( el , j ) => [
433- el . map ( i => i [ swapped ? fullDataCols [ j ] . y : fullDataCols [ j ] . x ] ) ,
434- el . map ( i => i [ swapped ? fullDataCols [ j ] . x : fullDataCols [ j ] . y ] ) ,
435- el . map ( i => i [ fullDataCols [ j ] . z ] )
436- ] )
437- }
438-
439- viewerWindow . webContents . send ( "sdata" , [ s_data , swapped , col . z , data [ 0 ] . length ] ) ;
430+ clearTimeout ( timer ) ;
431+ timer = setTimeout ( ( ) => { //send updated value only once within .5 sec
432+ if ( ! exportAll ) {
433+ var s_data = [ [
434+ data . map ( i => i [ swapped ? col . y : col . x ] ) ,
435+ data . map ( i => i [ swapped ? col . x : col . y ] ) ,
436+ data . map ( i => i [ col . z ] )
437+ ] ]
438+ } else {
439+ var s_data = fullData . map ( ( el , j ) => [
440+ el . map ( i => i [ swapped ? fullDataCols [ j ] . y : fullDataCols [ j ] . x ] ) ,
441+ el . map ( i => i [ swapped ? fullDataCols [ j ] . x : fullDataCols [ j ] . y ] ) ,
442+ el . map ( i => i [ fullDataCols [ j ] . z ] )
443+ ] )
444+ }
445+ viewerWindow . webContents . send ( "sdata" , [ s_data , swapped , col . z , data [ 0 ] . length ] ) ;
446+ } , 500 )
440447}
441448
442449
0 commit comments