99/// @file MIES_AnalysisBrowser_SweepBrowser.ipf
1010/// @brief __SB__ Visualization of sweep data in the analysis browser
1111
12- static StrConstant AXES_SCALING_CHECKBOXES = "check_Display_VisibleXrange;check_Display_EqualYrange;check_Display_EqualYignore"
13- static StrConstant WAVE_NOTE_LAYOUT_KEY = "WAVE_LAYOUT_VERSION"
14-
15- Function /S SB_GetSweepBrowserLeftPanel ( win)
16- string win
17-
18- return BSP_GetPanel ( win)
19- End
20-
2112static Function/Wave SB_GetSweepBrowserMapFromGraph ( win)
2213 string win
2314
24- return SB_GetSweepBrowserMap ( SB_GetSweepBrowserFolder ( win))
25- End
26-
27- static Function/Wave SB_GetSweepBrowserMap ( sweepBrowser)
28- DFREF sweepBrowser
29-
30- ASSERT ( DataFolderExistsDFR ( sweepBrowser) , "Missing SweepBrowser DFR" )
31-
32- Variable versionOfWave = 1
33-
34- WAVE /T/ Z/ SDFR= sweepBrowser wv = map
35- if ( WaveExists ( wv))
36- if ( GetNumberFromWaveNote ( wv, WAVE_NOTE_LAYOUT_KEY) == versionOfWave)
37- return wv
38- endif
39- else
40- Make / T/ N= ( MINIMUM_WAVE_SIZE, 4 ) sweepBrowser: map/Wave = wv
41- SetNumberInWaveNote ( wv, NOTE_INDEX, 0 )
42- endif
43-
44- SetDimLabel COLS, 0, FileName, wv
45- SetDimLabel COLS, 1, DataFolder, wv
46- SetDimLabel COLS, 2, Device, wv
47- SetDimLabel COLS, 3, Sweep, wv
48-
49- SetNumberInWaveNote ( wv, WAVE_NOTE_LAYOUT_KEY, versionOfWave)
50-
51- return wv
15+ return GetSweepBrowserMap ( SB_GetSweepBrowserFolder ( win))
5216End
5317
5418Function /DF SB_GetSweepBrowserFolder ( win)
@@ -64,7 +28,7 @@ static Function/DF SB_GetSweepDataPathFromIndex(sweepBrowserDFR, mapIndex)
6428 string device, expFolder
6529 variable sweep
6630
67- WAVE /T sweepMap = SB_GetSweepBrowserMap ( sweepBrowserDFR)
31+ WAVE /T sweepMap = GetSweepBrowserMap ( sweepBrowserDFR)
6832
6933 if ( ! IsFinite ( mapIndex) || mapIndex < 0 || mapIndex >= DimSize ( sweepMap, ROWS))
7034 return $ ""
@@ -88,8 +52,7 @@ Function SB_GetIndexFromSweepDataPath(win, dataDFR)
8852 variable mapIndex, sweepNo
8953 string device, expFolder, sweepFolder
9054
91- DFREF sweepBrowserDFR = SB_GetSweepBrowserFolder ( win)
92- WAVE /T sweepMap = SB_GetSweepBrowserMap ( sweepBrowserDFR)
55+ WAVE /T sweepMap = SB_GetSweepBrowserMapFromGraph ( win)
9356
9457 SplitSTring / E= "root:MIES:Analysis:([^:]+):([^:]+):sweep:([^:]+):" GetDataFolder ( 1, dataDFR) , expFolder, device, sweepFolder
9558 ASSERT ( V_flag == 3, "Unmatched string" )
@@ -113,13 +76,6 @@ Function SB_GetIndexFromSweepDataPath(win, dataDFR)
11376 return matches[ 0 ]
11477End
11578
116- /// @see DB_GraphUpdate
117- Function SB_PanelUpdate ( win)
118- string win
119-
120- SB_ScaleAxes ( win)
121- End
122-
12379/// @brief set graph userdata similar to DB_SetUserData()
12480///
12581/// @param win name of main window or external subwindow in SweepBrowser
@@ -132,25 +88,6 @@ static Function SB_SetUserData(win)
13288 BSP_SetFolder ( win, dfr, MIES_BSP_PANEL_FOLDER)
13389End
13490
135- /// @see DB_InitPostPlotSettings
136- static Function SB_InitPostPlotSettings ( graph, pps)
137- string graph
138- STRUCT PostPlotSettings & pps
139-
140- string bsPanel = BSP_GetPanel ( graph)
141-
142- pps. averageDataFolder = SB_GetSweepBrowserFolder ( graph)
143- pps. averageTraces = GetCheckboxState ( bsPanel, "check_Calculation_AverageTraces" )
144- pps. zeroTraces = GetCheckBoxState ( bsPanel, "check_Calculation_ZeroTraces" )
145- pps. timeAlignRefTrace = ""
146- pps. timeAlignMode = TIME_ALIGNMENT_NONE
147- pps. hideSweep = GetCheckBoxState ( bsPanel, "check_SweepControl_HideSweep" )
148-
149- PA_GatherSettings ( graph, pps)
150-
151- FUNCREF FinalUpdateHookProto pps. finalUpdateHook = SB_PanelUpdate
152- End
153-
15491/// @brief Return numeric labnotebook entries
15592///
15693/// @param graph sweep browser graph
@@ -166,8 +103,7 @@ static Function/WAVE SB_GetSweepPropertyFromNumLBN(graph, mapIndex, key)
166103 string device, expFolder
167104 variable sweep
168105
169- DFREF sweepBrowserDFR = SB_GetSweepBrowserFolder ( graph)
170- WAVE /T sweepMap = SB_GetSweepBrowserMap ( sweepBrowserDFR)
106+ WAVE /T sweepMap = SB_GetSweepBrowserMapFromGraph ( graph)
171107
172108 if ( ! IsFinite ( mapIndex) || mapIndex < 0 || mapIndex >= DimSize ( sweepMap, ROWS))
173109 return $ ""
189125Function /S SB_GetListOfExperiments ( graph)
190126 string graph
191127
192- DFREF sweepBrowserDFR = SB_GetSweepBrowserFolder ( graph)
193- WAVE /T sweepMap = SB_GetSweepBrowserMap ( sweepBrowserDFR)
128+ WAVE /T sweepMap = SB_GetSweepBrowserMapFromGraph ( graph)
194129
195130 variable numEntries, i
196131 string experiment
@@ -249,8 +184,7 @@ Function/WAVE SB_GetChannelInfoFromGraph(graph, channel, [experiment])
249184
250185 ASSERT ( FindListitem ( channel, ITC_CHANNEL_NAMES) != -1, "Given channel could not be found in ITC_CHANNEL_NAMES" )
251186
252- DFREF sweepBrowserDFR = SB_GetSweepBrowserFolder ( graph)
253- WAVE /T sweepMap = SB_GetSweepBrowserMap ( sweepBrowserDFR)
187+ WAVE /T sweepMap = SB_GetSweepBrowserMapFromGraph ( graph)
254188
255189 Make / FREE/ T/ N= ( MINIMUM_WAVE_SIZE, 3 ) channelMap
256190
@@ -319,11 +253,11 @@ Function SB_UpdateSweepPlot(win, [newSweep])
319253 string win
320254 variable newSweep
321255
322- string device, dataFolder, graph, bsPanel, scPanel, lbPanel, experiment
323- variable mapIndex, i , numEntries, sweepNo, highlightSweep, traceIndex, currentSweep
256+ string device, dataFolder, graph, scPanel, lbPanel, experiment
257+ variable mapIndex, i , numEntries, sweepNo, traceIndex, currentSweep
258+ STRUCT TiledGraphSettings tgs
324259
325260 graph = GetMainWindow ( win)
326- bsPanel = BSP_GetPanel ( graph)
327261 scPanel = BSP_GetSweepControlsPanel ( win)
328262 lbPanel = BSP_GetNotebookSubWindow ( win)
329263
@@ -338,19 +272,7 @@ Function SB_UpdateSweepPlot(win, [newSweep])
338272 SetPopupMenuIndex ( scPanel, "popup_SweepControl_Selector" , newSweep)
339273 endif
340274
341- STRUCT TiledGraphSettings tgs
342- tgs. overlaySweep = OVS_IsActive ( graph)
343- tgs. displayDAC = GetCheckBoxState ( bsPanel, "check_BrowserSettings_DAC" )
344- tgs. displayADC = GetCheckBoxState ( bsPanel, "check_BrowserSettings_ADC" )
345- tgs. displayTTL = GetCheckBoxState ( bsPanel, "check_BrowserSettings_TTL" )
346- tgs. overlayChannels = GetCheckBoxState ( bsPanel, "check_BrowserSettings_OChan" )
347- tgs. splitTTLBits = GetCheckBoxState ( bsPanel, "check_BrowserSettings_splitTTL" )
348- tgs. dDAQDisplayMode = GetCheckBoxState ( bsPanel, "check_BrowserSettings_dDAQ" )
349- tgs. dDAQHeadstageRegions = BSP_GetDDAQ ( win)
350- tgs. hideSweep = GetCheckBoxState ( bsPanel, "check_SweepControl_HideSweep" )
351-
352- STRUCT PostPlotSettings pps
353- SB_InitPostPlotSettings ( graph, pps)
275+ [ tgs] = BSP_GatherTiledGraphSettings ( graph)
354276
355277 WAVE /Z sweepsToOverlay = OVS_GetSelectedSweeps ( graph, OVS_SWEEP_SELECTION_INDEX)
356278
@@ -361,7 +283,7 @@ Function SB_UpdateSweepPlot(win, [newSweep])
361283 RemoveFreeAxisFromGraph ( graph)
362284 TUD_Clear ( graph)
363285
364- WAVE /T sweepMap = SB_GetSweepBrowserMap ( sweepBrowserDFR)
286+ WAVE /T sweepMap = GetSweepBrowserMap ( sweepBrowserDFR)
365287 WAVE channelSel = GetChannelSelectionWave ( sweepBrowserDFR)
366288
367289 currentSweep = GetPopupMenuIndex ( scPanel, "popup_SweepControl_Selector" )
@@ -380,8 +302,7 @@ Function SB_UpdateSweepPlot(win, [newSweep])
380302 experiment = sweepMap[ mapIndex][ % FileName]
381303 sweepNo = str2num ( sweepMap[ mapIndex][ % Sweep])
382304
383- WAVE /Z activeHS = OVS_ParseIgnoreList ( graph, highlightSweep, index= mapIndex)
384- tgs. highlightSweep = highlightSweep
305+ WAVE /Z activeHS = OVS_ParseIgnoreList ( graph, index= mapIndex)
385306
386307 if ( WaveExists ( activeHS))
387308 Duplicate / FREE channelSel, sweepChannelSel
@@ -411,8 +332,10 @@ Function SB_UpdateSweepPlot(win, [newSweep])
411332 ReplaceNotebookText ( lbPanel, "Sweep note: \r " + sweepNote)
412333 endif
413334
414- PostPlotTransformations ( graph, pps )
335+ PostPlotTransformations ( graph)
415336 SetAxesRanges ( graph, axesRanges)
337+
338+ LayoutGraph ( graph, tgs)
416339End
417340
418341Function SB_AddToSweepBrowser ( sweepBrowser, fileName, dataFolder, device, sweep)
@@ -423,7 +346,7 @@ Function SB_AddToSweepBrowser(sweepBrowser, fileName, dataFolder, device, sweep)
423346 variable index
424347 string sweepStr = num2str ( sweep)
425348
426- WAVE /T map = SB_GetSweepBrowserMap ( sweepBrowser)
349+ WAVE /T map = GetSweepBrowserMap ( sweepBrowser)
427350
428351 index = GetNumberFromWaveNote ( map, NOTE_INDEX)
429352 EnsureLargeEnoughWave ( map, minimumSize= index)
@@ -449,49 +372,6 @@ Function SB_AddToSweepBrowser(sweepBrowser, fileName, dataFolder, device, sweep)
449372 SetNumberInWaveNote ( map, NOTE_INDEX, index + 1 )
450373End
451374
452- /// @see DB_HandleTimeAlignPropChange
453- static Function SB_HandleTimeAlignPropChange ( win)
454- string win
455-
456- string bsPanel, graph
457-
458- graph = GetMainWindow ( win)
459- bsPanel = BSP_GetPanel ( graph)
460-
461- STRUCT PostPlotSettings pps
462- SB_InitPostPlotSettings ( graph, pps)
463-
464- TimeAlignGatherSettings ( bsPanel, pps)
465-
466- PostPlotTransformations ( graph, pps)
467- End
468-
469- static Function SB_ScaleAxes ( win)
470- string win
471-
472- string graph, bsPanel
473- variable visXRange, equalY, equalYIgn, level
474-
475- graph = GetMainWindow ( win)
476- bsPanel = BSP_GetPanel ( win)
477- visXRange = GetCheckBoxState ( bsPanel, "check_Display_VisibleXrange" )
478- equalY = GetCheckBoxState ( bsPanel, "check_Display_EqualYrange" )
479- equalYIgn = GetCheckBoxState ( bsPanel, "check_Display_EqualYignore" )
480-
481- ASSERT ( visXRange + equalY + equalYIgn <= 1, "Only one scaling mode is allowed to be selected" )
482-
483- if ( visXRange)
484- AutoscaleVertAxisVisXRange ( graph)
485- elseif ( equalY)
486- EqualizeVerticalAxesRanges ( graph, ignoreAxesWithLevelCrossing=0 )
487- elseif ( equalYIgn)
488- level = GetSetVariable ( bsPanel, "setvar_Display_EqualYlevel" )
489- EqualizeVerticalAxesRanges ( graph, ignoreAxesWithLevelCrossing=1, level= level)
490- else
491- // do nothing
492- endif
493- End
494-
495375Function SB_SweepBrowserWindowHook ( s)
496376 STRUCT WMWinHookStruct & s
497377
@@ -547,7 +427,7 @@ Function/DF SB_OpenSweepBrowser()
547427
548428
549429 DFREF sweepBrowserDFR = BSP_GetFolder ( mainWin, MIES_BSP_PANEL_FOLDER)
550- SB_GetSweepBrowserMap ( sweepBrowserDFR)
430+ GetSweepBrowserMap ( sweepBrowserDFR)
551431
552432 renameWin = UniqueName ( SWEEPBROWSER_WINDOW_TITLE, 9, 1 )
553433 DoWindow / W=$ mainWin/ C $ renameWin
@@ -556,7 +436,7 @@ Function/DF SB_OpenSweepBrowser()
556436 string /G sweepBrowserDFR: graph = mainWin
557437
558438 BSP_InitPanel ( mainWin)
559- SB_PanelUpdate ( mainWin)
439+ BSP_ScaleAxes ( mainWin)
560440 return sweepBrowserDFR
561441End
562442
@@ -695,71 +575,6 @@ Function SB_ButtonProc_ChangeSweep(ba) : ButtonControl
695575 return 0
696576End
697577
698- Function SB_DoTimeAlignment ( ba) : ButtonControl
699- STRUCT WMButtonAction & ba
700-
701- switch ( ba. eventCode )
702- case 2: // mouse up
703- SB_HandleTimeAlignPropChange ( ba. win)
704- break
705- endswitch
706-
707- return 0
708- End
709-
710- Function SB_CheckProc_ScaleAxes ( cba) : CheckBoxControl
711- STRUCT WMCheckboxAction & cba
712-
713- string ctrls, graph, bsPanel
714- variable numCtrls, i
715-
716- graph = GetMainWindow ( cba. win)
717- bsPanel = BSP_GetPanel ( graph)
718-
719- switch ( cba. eventCode )
720- case 2: // mouse up
721- if ( cba. checked)
722- ctrls = ListMatch ( AXES_SCALING_CHECKBOXES, "!" + cba. ctrlName)
723- numCtrls = ItemsInList ( ctrls)
724- for ( i = 0; i < numCtrls; i += 1 )
725- SetCheckBoxState ( bsPanel, StringFromList ( i , ctrls) , CHECKBOX_UNSELECTED)
726- endfor
727- endif
728-
729- if ( GetCheckBoxState ( bsPanel, "check_Display_EqualYignore" ))
730- EnableControl ( bsPanel, "setvar_Display_EqualYlevel" )
731- else
732- DisableControl ( bsPanel, "setvar_Display_EqualYlevel" )
733- endif
734-
735- SB_ScaleAxes ( graph)
736- break
737- endswitch
738-
739- return 0
740- End
741-
742- Function SB_AxisScalingLevelCross ( sva) : SetVariableControl
743- STRUCT WMSetVariableAction & sva
744-
745- string graph, bsPanel
746-
747- graph = GetMainWindow ( sva. win)
748- bsPanel = BSP_GetPanel ( graph)
749-
750- switch ( sva. eventCode)
751- case 1: // mouse up
752- case 2: // Enter key
753- case 3: // Live update
754- if ( GetCheckBoxState ( bsPanel, "check_Display_EqualYignore" ))
755- SB_ScaleAxes ( graph)
756- endif
757- break
758- endswitch
759-
760- return 0
761- End
762-
763578Function SB_ButtonProc_ExportTraces ( ba) : ButtonControl
764579 STRUCT WMButtonAction & ba
765580
0 commit comments