source: sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/MainPanel.ipf @ 575

Last change on this file since 575 was 572, checked in by srkline, 13 years ago

Merging changes:

NCNR_Utils -> merging these into FACILITY, HFIR, and ILL_Utils

HFIR files merged by hand to reflect JaeHie?'s 29JUL09 version

Changed MainPanel? to look for TISANE or RealTime? functions to prevent button procedures from being called when the procedures aren't there. Seemed easier than separate versions without the buttons. #define at the begining of TISANE.ipf -> #ifdef in MainPanel? didn't work for some reason?

File size: 18.9 KB
Line 
1#pragma rtGlobals=1             // Use modern global access method.
2#pragma version=5.0
3#pragma IgorVersion=6.1
4
5//*********************
6// Vers 1.2 091901
7//
8//draws main panel of buttons for all data reduction operations
9//panel can't be killed (without really trying)
10// initialize() from the SANS menu will redraw the panel
11//panel simply dispatches to previously written procedures (not functions)
12//
13// **function names are really self-explanatory...see the called function for the real details
14//
15//**********************
16
17Proc PickPath_MainButtonProc(ctrlName) : ButtonControl
18        String ctrlName
19       
20        PickPath()
21End
22
23Proc DrawMask_MainButtonProc(ctrlName) : ButtonControl
24        String ctrlName
25       
26        DrawMask()
27End
28
29Proc DisplayMainButtonProc(ctrlName) : ButtonControl
30        String ctrlName
31
32        Variable err=   LoadRawSANSData("Select a Raw SANS data file")
33        if(!err)
34                UpdateDisplayInformation("RAW")
35        endif
36End
37
38Proc PatchMainButtonProc(ctrlName) : ButtonControl
39        String ctrlName
40
41        PatchFiles()
42End
43
44Proc TransMainButtonProc(ctrlName) : ButtonControl
45        String ctrlName
46
47         CalcTrans()
48End
49
50Proc BuildProtocol_MainButtonProc(ctrlName) : ButtonControl
51        String ctrlName
52
53        ReductionProtocolPanel()
54End
55
56Proc ReduceAFile_MainButtonProc(ctrlName) : ButtonControl
57        String ctrlName
58
59        ReduceAFile()
60End
61
62Proc ReduceMultiple_MainButtonProc(ctrlName) : ButtonControl
63        String ctrlName
64
65        ReduceMultipleFiles()
66End
67
68Proc Plot1D_MainButtonProc(ctrlName) : ButtonControl
69        String ctrlName
70
71        //LoadOneDData()
72        Show_Plot_Manager()
73End
74
75Proc Sort1D_MainButtonProc(ctrlName) : ButtonControl
76        String ctrlName
77
78        ShowNSORTPanel()
79End
80
81Proc Fit1D_MainButtonProc(ctrlName) : ButtonControl
82        String ctrlName
83
84        OpenFITPanel()
85End
86
87Proc FitRPA_MainButtonProc(ctrlName) : ButtonControl
88        String ctrlName
89
90        OpenFITRPAPanel()
91End
92
93Proc Subtract1D_MainButtonProc(ctrlName) : ButtonControl
94        String ctrlName
95
96        OpenSubtract1DPanel()
97End
98
99Proc DisplayInterm_MainButtonProc(ctrlName) : ButtonControl
100        String ctrlName
101
102        ChangeDisplay()
103End
104
105Proc ReadMask_MainButtonProc(ctrlName) : ButtonControl
106        String ctrlName
107
108        ReadMask()
109End
110
111Proc Draw3D_MainButtonProc(ctrlName) : ButtonControl
112        String ctrlName
113
114        Plot3DSurface()
115End
116
117//on Misc Ops tab, generates a notebook
118Proc CatShort_MainButtonProc(ctrlName) : ButtonControl
119        String ctrlName
120
121        BuildCatShortNotebook()
122End
123
124//button is labeled "File Catalog"
125Proc CatVShort_MainButtonProc(ctrlName) : ButtonControl
126        String ctrlName
127
128        //BuildCatVeryShortNotebook()
129        BuildCatVeryShortTable()
130End
131
132Proc ShowCatShort_MainButtonProc(ctrlName) : ButtonControl
133        String ctrlName
134
135        ShowCATWindow()
136End
137
138Proc ShowSchematic_MainButtonProc(ctrlName) : ButtonControl
139        String ctrlName
140       
141        if(root:myGlobals:isDemoVersion == 1)
142                //      comment out in DEMO_MODIFIED version, and show the alert
143                DoAlert 0,"This operation is not available in the Demo version of IGOR"
144        else
145                ShowSchematic()
146        endif
147End
148
149Proc ShowAvePanel_MainButtonProc(ctrlName) : ButtonControl
150        String ctrlName
151
152        ShowAveragePanel()
153End
154
155Proc HelpMainButtonProc(ctrlName) : ButtonControl
156        String ctrlName
157        DisplayHelpTopic/Z/K=1 "SANS Data Reduction Tutorial"
158        if(V_flag !=0)
159                DoAlert 0,"The SANS Data Reduction Tutorial Help file could not be found"
160        endif
161End
162
163Proc ShowTilePanel_MainButtonProc(ctrlName) : ButtonControl
164        String ctrlName
165       
166        if(root:myGlobals:isDemoVersion == 1)
167                //      comment out in DEMO_MODIFIED version, and show the alert
168                DoAlert 0,"This operation is not available in the Demo version of IGOR"
169        else
170                Show_Tile_2D_Panel()
171        endif
172End
173
174Proc NG1TransConv_MainButtonProc(ctrlName) : ButtonControl
175        String ctrlName
176
177        TransformToTransFile()
178End
179
180Proc CopyWork_MainButtonProc(ctrlName) : ButtonControl
181        String ctrlName
182
183        CopyWorkFolder()                //will put up missing param dialog
184End
185
186Proc PRODIV_MainButtonProc(ctrlName) : ButtonControl
187        String ctrlName
188
189        //new, May 2009. show a full panel for input
190        BuildDIVPanel()
191//      MakeDIVFile("","")                     
192End
193
194
195Proc WorkMath_MainButtonProc(ctrlName) : ButtonControl
196        String ctrlName
197
198        Show_WorkMath_Panel()
199End
200
201Proc TISANE_MainButtonProc(ctrlName) : ButtonControl
202        String ctrlName
203       
204        if(exists("Show_TISANE_Panel")==0)
205                // procedure file was not loaded
206                DoAlert 0,"This operation is not available in this set of macros"
207        else
208                Show_TISANE_Panel()
209        endif
210       
211End
212
213Proc Raw2ASCII_MainButtonProc(ctrlName) : ButtonControl
214        String ctrlName
215
216        Export_RAW_Ascii_Panel()
217End
218
219Proc RealTime_MainButtonProc(ctrlName) : ButtonControl
220        String ctrlName
221
222        if(exists("Init_for_RealTime")==0)
223                // procedure file was not loaded
224                DoAlert 0,"This operation is not available in this set of macros"
225        else
226                Show_RealTime_Panel()
227        endif
228End
229
230Proc Preferences_MainButtonProc(ctrlName) : ButtonControl
231        String ctrlName
232
233        Show_Preferences_Panel()
234End
235
236////////////////////////////////////////////////
237//************* NEW version of Main control Panel *****************
238//
239// button management for the different tabs is handled by consistent
240// naming of each button with its tab number as documented below
241// then MainTabProc() can enable/disable the appropriate buttons for the
242// tab that is displayed
243//
244// panel must be killed and redrawn for new buttons to appear
245//
246Window Main_Panel()
247        PauseUpdate; Silent 1           // building window...
248        NewPanel /W=(500,60,924,320) /K=2 as "SANS Reduction Controls"
249        ModifyPanel cbRGB=(65535,58981,27524)
250        ModifyPanel fixedSize=1
251//////
252//on main portion of panel
253        Button MainButtonA,pos={8,8},size={80,20},title="Pick Path",proc=PickPath_MainButtonProc
254        Button MainButtonA,help={"Pick the local data folder that contains the SANS data"}
255        Button MainButtonB,pos={100,8},size={90,20},proc=CatVShort_MainButtonProc,title="File Catalog"
256        Button MainButtonB,help={"This will generate a condensed CATalog table of all files in a specified local folder"}
257        Button MainButtonC,pos={250,8},size={50,20},proc=HelpMainButtonProc,title="Help"
258        Button MainButtonC,help={"Display the help file"}
259        Button MainButtonD,pos={320,8},size={80,20},proc=SR_OpenTracTicketPage,title="Feedback"
260        Button MainButtonD,help={"Submit bug reports or feature requests"}
261       
262        TabControl MainTab,pos={7,49},size={410,202},tabLabel(0)="Raw Data",proc=MainTabProc
263        TabControl MainTab,tabLabel(1)="Reduction",tabLabel(2)="1-D Ops",tabLabel(3)="2-D Ops",tabLabel(4)="Misc Ops"
264        TabControl MainTab,value=0
265        //
266        TabControl MainTab labelBack=(65535,58981,27524)
267       
268//on tab(0) - Raw Data - initially visible
269        Button MainButton_0a,pos={15,90},size={130,20},proc=DisplayMainButtonProc,title="Display Raw Data"
270        Button MainButton_0a,help={"Display will load and plot a single 2-D raw data file"}
271        Button MainButton_0b,pos={15,120},size={70,20},proc=PatchMainButtonProc,title="Patch"
272        Button MainButton_0b,help={"Patch will update incorrect information in raw data headers"}
273        Button MainButton_0c,pos={15,150},size={110,20},proc=TransMainButtonProc,title="Transmission"
274        Button MainButton_0c,help={"Shows the \"Patch\" panel which allows calculation of sample transmissions and entering these values into raw data headers"}
275        Button MainButton_0d,pos={15,180},size={130,20},proc=RealTime_MainButtonProc,title="RealTime Display"
276        Button MainButton_0d,help={"Shows the panel for control of the RealTime data display. Only used during data collection"}
277
278//on tab(1) - Reduction
279        Button MainButton_1a,pos={15,90},size={110,20},proc=BuildProtocol_MainButtonProc,title="Build Protocol"
280        Button MainButton_1a,help={"Shows a panel where the CATalog window is used as input for creating a protocol. Can also be used for standard reductions"}
281        Button MainButton_1b,pos={15,120},size={110,20},proc=ReduceAFile_MainButtonProc,title="Reduce a File"
282        Button MainButton_1b,help={"Presents a questionnare for creating a reduction protocol, then reduces a single file"}
283        Button MainButton_1c,pos={15,150},size={160,20},proc=ReduceMultiple_MainButtonProc,title="Reduce Multiple Files"
284        Button MainButton_1c,help={"Use for reducing multiple raw datasets after protocol(s) have been created"}
285        Button MainButton_1d,pos={15,180},size={110,20},proc=ShowCatShort_MainButtonProc,title="Show CAT Table"
286        Button MainButton_1d,help={"This button will bring the CATalog window to the front, if it exists"}
287        Button MainButton_1a,disable=1
288        Button MainButton_1b,disable=1
289        Button MainButton_1c,disable=1
290        Button MainButton_1d,disable=1
291
292//on tab(2) - 1-D operations
293        Button MainButton_2a,pos={15,90},size={60,20},proc=Plot1D_MainButtonProc,title="Plot"
294        Button MainButton_2a,help={"Loads and plots a 1-D dataset in the format expected by \"FIT\""}
295        Button MainButton_2b,pos={15,120},size={60,20},proc=Sort1D_MainButtonProc,title="Sort"
296        Button MainButton_2b,help={"Sorts and combines 2 or 3 separate 1-D datasets into a single file. Use \"Plot\" button to import 1-D data files"}
297        Button MainButton_2c,pos={15,150},size={60,20},proc=Fit1D_MainButtonProc,title="FIT"
298        Button MainButton_2c,help={"Shows panel for performing a variety of linearized fits to 1-D data files. Use \"Plot\" button to import 1-D data files"}
299        Button MainButton_2d,pos={15,180},size={60,20},proc=FITRPA_MainButtonProc,title="FIT/RPA"
300        Button MainButton_2d,help={"Shows panel for performing a fit to a polymer standard."}
301        Button MainButton_2e,pos={120,90},size={90,20},proc=Subtract1D_MainButtonProc,title="Subtract 1D"
302        Button MainButton_2e,help={"Shows panel for subtracting two 1-D data sets"}
303        Button MainButton_2a,disable=1
304        Button MainButton_2b,disable=1
305        Button MainButton_2c,disable=1
306        Button MainButton_2d,disable=1
307        Button MainButton_2e,disable=1
308
309//on tab(3) - 2-D Operations
310        Button MainButton_3a,pos={15,90},size={90,20},proc=DisplayInterm_MainButtonProc,title="Display 2D"
311        Button MainButton_3a,help={"Display will plot a 2-D work data file that has previously been created during data reduction"}
312        Button MainButton_3b,pos={15,120},size={90,20},title="Draw Mask",proc=DrawMask_MainButtonProc
313        Button MainButton_3b,help={"Draw a mask file and save it."}
314        Button MainButton_3c,pos={15,150},size={90,20},proc=ReadMask_MainButtonProc,title="Read Mask"
315        Button MainButton_3c,help={"Reads a mask file into the proper work folder, and displays a small image of the mask. Yellow areas will be excluded from the data"}
316        Button MainButton_3d,pos={15,180},size={100,20},title="Tile RAW 2D",proc=ShowTilePanel_MainButtonProc
317        Button MainButton_3d,help={"Adds selected RAW data files to a layout."}
318        Button MainButton_3e,pos={150,90},size={100,20},title="Copy Work",proc=CopyWork_MainButtonProc
319        Button MainButton_3e,help={"Copies WORK data from specified folder to destination folder."}
320        Button MainButton_3f,pos={150,120},size={110,20},title="WorkFile Math",proc=WorkMath_MainButtonProc
321        Button MainButton_3f,help={"Perfom simple math operations on workfile data"}
322        Button MainButton_3g,pos={150,180},size={100,20},title="TISANE",proc=TISANE_MainButtonProc
323        Button MainButton_3g,help={"Manipulate TISANE Timeslice data"}
324       
325        Button MainButton_3a,disable=1
326        Button MainButton_3b,disable=1
327        Button MainButton_3c,disable=1
328        Button MainButton_3d,disable=1
329        Button MainButton_3e,disable=1
330        Button MainButton_3f,disable=1
331        Button MainButton_3g,disable=1
332
333//on tab(4) - Miscellaneous operations
334        Button MainButton_4a,pos={15,90},size={80,20},proc=Draw3D_MainButtonProc,title="3D Display"
335        Button MainButton_4a,help={"Plots a 3-D surface of the selected file type"}
336        Button MainButton_4b,pos={15,120},size={120,20},proc=ShowSchematic_MainButtonProc,title="Show Schematic"
337        Button MainButton_4b,help={"Use this to show a schematic of the data reduction process for a selected sample file and reduction protocol"}
338        Button MainButton_4c,pos={15,150},size={80,20},proc=ShowAvePanel_MainButtonProc,title="Average"
339        Button MainButton_4c,help={"Shows a panel for interactive selection of the 1-D averaging step"}
340        Button MainButton_4d,pos={15,180},size={110,20},proc=CatShort_MainButtonProc,title="CAT/Notebook"
341        Button MainButton_4d,help={"This will generate a CATalog notebook of all files in a specified local folder"}
342        Button MainButton_4e,pos={180,90},size={130,20},proc=NG1TransConv_MainButtonProc,title="NG1 Files to Trans"
343        Button MainButton_4e,help={"Converts NG1 transmission data files to be interpreted as such"}
344        Button MainButton_4f,pos={180,120},size={130,20},proc=PRODIV_MainButtonProc,title="Make DIV file"
345        Button MainButton_4f,help={"Merges two stored workfiles (CORrected) into a DIV file, and saves the result"}
346        Button MainButton_4g,pos={180,150},size={130,20},proc=Raw2ASCII_MainButtonProc,title="RAW ASCII Export"
347        Button MainButton_4g,help={"Exports selected RAW (2D) data file(s) as ASCII, either as pixel values or I(Qx,Qy)"}
348        Button MainButton_4h,pos={180,180},size={130,20},proc=Preferences_MainButtonProc,title="Preferences"
349        Button MainButton_4h,help={"Sets user preferences for selected parameters"}
350       
351        Button MainButton_4a,disable=1
352        Button MainButton_4b,disable=1
353        Button MainButton_4c,disable=1
354        Button MainButton_4d,disable=1
355        Button MainButton_4e,disable=1
356        Button MainButton_4f,disable=1
357        Button MainButton_4g,disable=1
358        Button MainButton_4h,disable=1
359//     
360EndMacro
361
362// function to control the drawing of buttons in the TabControl on the main panel
363// Naming scheme for the buttons MUST be strictly adhered to... else buttons will
364// appear in odd places...
365// all buttons are named MainButton_NA where N is the tab number and A is the letter denoting
366// the button's position on that particular tab.
367// in this way, buttons will always be drawn correctly..
368//
369Function MainTabProc(name,tab)
370        String name
371        Variable tab
372       
373//      Print "name,number",name,tab
374        String ctrlList = ControlNameList("",";"),item="",nameStr=""
375        Variable num = ItemsinList(ctrlList,";"),ii,onTab
376        for(ii=0;ii<num;ii+=1)
377                //items all start w/"MainButton_"
378                item=StringFromList(ii, ctrlList ,";")
379                nameStr=item[0,10]
380                if(cmpstr(nameStr,"MainButton_")==0)
381                        onTab = str2num(item[11])
382                        Button $item,disable=(tab!=onTab)
383                endif
384        endfor
385End
386
387//
388Function SR_OpenTracTicketPage(ctrlName)
389        String ctrlName
390        DoAlert 1,"Your web browser will open to a page where you can submit your bug report or feature request. OK?"
391        if(V_flag==1)
392                BrowseURL "http://danse.chem.utk.edu/trac/newticket"
393        endif
394End
395
396//********************************
397//************* OLD version of Main Panel *************
398//Window Main_Panel()
399Window OLD_Main_Panel()
400        PauseUpdate; Silent 1           // building window...
401        NewPanel /K=2 /W=(630,75,938,408) as "SANS Reduction Controls"
402        ModifyPanel cbRGB=(52428,52425,1)
403        ModifyPanel fixedSize=1
404        SetDrawLayer UserBack
405        SetDrawEnv fillfgc= (24672,51914,36494)
406        DrawRect 2,250,303,325
407        SetDrawEnv fillfgc= (24672,51914,36494)
408        DrawRect 2,243,186,194
409        SetDrawEnv fillfgc= (24672,51914,36494)
410        DrawRect 2,140,303,189
411        SetDrawEnv fillfgc= (24672,51914,36494)
412        DrawRect 2,59,303,133
413        SetDrawEnv fillfgc= (24672,51914,36494)
414        DrawRect 2,2,303,53
415        SetDrawEnv fstyle= 5
416        DrawText 6,20,"Raw Data Operations"
417        SetDrawEnv fstyle= 5
418        DrawText 6,79,"Data Reduction Operations"
419        SetDrawEnv fstyle= 5
420        DrawText 6,158,"1-D Data Operations"
421        SetDrawEnv fstyle= 5
422        DrawText 6,212,"Intermediate 2-D Files"
423        SetDrawEnv fstyle= 5
424        DrawText 6,268,"Miscellaneous"
425        SetDrawEnv fillfgc= (24672,51914,36494)
426        DrawRect 190,194,303,242
427        SetDrawEnv fstyle= 5
428        DrawText 200,211,"Data Folder"
429        Button MainButton_0,pos={6,25},size={70,20},proc=DisplayMainButtonProc,title="Display"
430        Button MainButton_0,help={"Display will load and plot a single 2-D raw data file"}
431        Button MainButton_1,pos={86,25},size={70,20},proc=PatchMainButtonProc,title="Patch"
432        Button MainButton_1,help={"Patch will update incorrect information in raw data headers"}
433        Button MainButton_2,pos={166,25},size={110,20},proc=TransMainButtonProc,title="Transmission"
434        Button MainButton_2,help={"Shows the \"Patch\" panel which allows calculation of sample transmissions and entering these values into raw data headers"}
435        Button MainButton_3,pos={6,82},size={110,20},proc=BuildProtocol_MainButtonProc,title="Build Protocol"
436        Button MainButton_3,help={"Shows a panel where the CATalog window is used as input for creating a protocol. Can also be used for standard reductions"}
437        Button MainButton_4,pos={147,82},size={110,20},proc=ReduceAFile_MainButtonProc,title="Reduce a File"
438        Button MainButton_4,help={"Presents a questionnare for creating a reduction protocol, then reduces a single file"}
439        Button MainButton_5,pos={6,107},size={160,20},proc=ReduceMultiple_MainButtonProc,title="Reduce Multiple Files"
440        Button MainButton_5,help={"Use for reducing multiple raw datasets after protocol(s) have been created"}
441
442        Button MainButton_19,pos={175,107},size={80,20},title="Draw Mask",proc=DrawMask_MainButtonProc
443        Button MainButton_19,help={"Draw a mask file and save it."}
444       
445        Button MainButton_6,pos={6,162},size={60,20},proc=Plot1D_MainButtonProc,title="Plot"
446        Button MainButton_6,help={"Loads and plots a 1-D dataset in the format expected by \"Sort\" and \"FIT\""}
447        Button MainButton_7,pos={77,162},size={60,20},proc=Sort1D_MainButtonProc,title="Sort"
448        Button MainButton_7,help={"Sorts and combines 2 or 3 separate 1-D datasets into a single file. Use \"Plot\" button to import 1-D data files"}
449        Button MainButton_8,pos={147,162},size={60,20},proc=Fit1D_MainButtonProc,title="FIT"
450        Button MainButton_8,help={"Shows panel for performing a variety of linearized fits to 1-D data files. Use \"Plot\" button to import 1-D data files"}
451
452        Button MainButton_17,pos={217,162},size={60,20},proc=FITRPA_MainButtonProc,title="FIT/RPA"
453        Button MainButton_17,help={"Shows panel for performing a fit to a polymer standard."}
454
455        Button MainButton_9,pos={6,216},size={70,20},proc=DisplayInterm_MainButtonProc,title="Display"
456        Button MainButton_9,help={"Display will plot a 2-D work data file that has previously been created during data reduction"}
457        Button MainButton_10,pos={89,216},size={90,20},proc=ReadMask_MainButtonProc,title="Read Mask"
458        Button MainButton_10,help={"Reads a mask file into the proper work folder, and displays a small image of the mask. Yellow areas will be excluded from the data"}
459        Button MainButton_11,pos={6,298},size={80,20},proc=Draw3D_MainButtonProc,title="3D Display"
460        Button MainButton_11,help={"Plots a 3-D surface of the selected file type"}
461        Button MainButton_12,pos={6,273},size={90,20},proc=CatShort_MainButtonProc,title="CAT/SHORT"
462        Button MainButton_12,help={"This will generate a CATalog window of all files in a specified local folder"}
463
464        Button MainButton_18,pos={106,273},size={90,20},proc=CatVShort_MainButtonProc,title="CAT/VShort"
465        Button MainButton_18,help={"This will generate a condensed CATalog table of all files in a specified local folder"}
466
467        Button MainButton_13,pos={206,273},size={90,20},proc=ShowCatShort_MainButtonProc,title="Show CAT"
468        Button MainButton_13,help={"This button will bring the CATalog window to the front, if it exists"}
469        Button MainButton_14,pos={96,298},size={110,20},proc=ShowSchematic_MainButtonProc,title="Show Schematic"
470        Button MainButton_14,help={"Use this to show a schematic of the data reduction process for a selected sample file and reduction protocol"}
471        Button MainButton_15,pos={216,298},size={80,20},proc=ShowAvePanel_MainButtonProc,title="Average"
472        Button MainButton_15,help={"Shows a panel for interactive selection of the 1-D averaging step"}
473        Button MainButton_16,pos={200,214},size={80,20},title="Pick Path",proc=PickPath_MainButtonProc
474        Button MainButton_16,help={"Pick the local data folder that contains the SANS data"}
475       
476EndMacro
477//****************above is OLD********************
Note: See TracBrowser for help on using the repository browser.