Ignore:
Timestamp:
Aug 29, 2007 5:01:21 PM (15 years ago)
Author:
srkline
Message:

some tweaks to the fit wrapper, starting to get plot and append functional

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Analysis/branches/ajj_23APR07/IGOR_Package_Files/Put in User Procedures/SANS_Models_v3.00/Packages/Wrapper.ipf

    r151 r152  
    33 
    44// 
    5 // 
     5// need a way of importing more functions into the experiment 
     6// ? call the picker panel from the panel? 
    67// 
    78// 
     
    2122         
    2223        GroupBox grpBox_0,pos={18,11},size={350,113} 
    23         Button button_0,pos={519,134},size={100,20},proc=DoTheFitButton,title="Do The Fit" 
     24        GroupBox grpBox_1,pos={386,10},size={247,113} 
     25        Button button_0,pos={523,93},size={100,20},proc=DoTheFitButton,title="Do The Fit" 
     26        Button button_1,pos={270,57},size={80,20},proc=PlotModelFunction,title="Plot" 
     27        Button button_2,pos={270,93},size={80,20},proc=AppendModelToTarget,title="Append" 
    2428        PopupMenu popup_0,pos={30,21},size={218,20},title="Data Set" 
    2529        PopupMenu popup_0,mode=1,value= #"DataSetPopupList()" 
     
    2832        PopupMenu popup_2,pos={30,93},size={123,20},title="Coefficients" 
    2933        PopupMenu popup_2,mode=1,value= #"W_CoefPopupList()",proc=Coef_PopMenuProc 
    30         CheckBox check_0,pos={411,22},size={79,14},title="Use Cursors?",value= 0 
    31         CheckBox check_1,pos={412,45},size={74,14},title="Use Epsilon?",value= 0 
    32         CheckBox check_2,pos={412,68},size={95,14},title="Use Constraints?",value= 0 
     34        CheckBox check_0,pos={400,19},size={79,14},title="Use Cursors?",value= 0 
     35        CheckBox check_1,pos={400,42},size={74,14},title="Use Epsilon?",value= 0 
     36        CheckBox check_2,pos={400,65},size={95,14},title="Use Constraints?",value= 0 
    3337        CheckBox check_3,pos={280,24},size={72,14},title="From target",value= 0 
    3438        Edit/W=(20,174,634,435)/HOST=#   
     
    6064                str = "No data loaded" 
    6165        endif 
     66        str = SortList(str) 
     67         
    6268        return(str) 
    6369End 
     
    6571 
    6672// show the available models 
    67 // but not the smeared versions 
    6873// not the f* 
    6974// not the *X XOPS 
     
    9196                list = "No functions plotted" 
    9297        endif 
     98         
     99        list = SortList(list) 
    93100        return(list) 
    94101End 
     
    117124                list = "No functions plotted" 
    118125        endif 
     126        list = SortList(list) 
     127         
    119128        setDataFolder root: 
    120129        return(list) 
     
    195204End 
    196205 
     206// How to bypass the step of plot and append? 
     207// 
     208// - does not yet work 
     209// -- may need more serious changes in the way the "Plot" macros work 
     210// - may need to have a separate "append" button that looks at what is available in the specified  
     211//   data folder, or as a PauseForUser, after the plot is done 
     212// 
     213// - different Cmd if smeared or unsmeared 
     214// - stringent "PlotNNN" naming requirements 
     215// - how to kill the generated table and graph, that are not needed now 
     216// 
     217// - how to plot when there are no files loaded, no data folders, no resolution information 
     218// 
     219Function PlotModelFunction(ba) : ButtonControl 
     220        STRUCT WMButtonAction &ba 
     221 
     222        String folderStr,funcStr,coefStr,cmdStr="" 
     223        Variable useCursors,useEps,useConstr 
     224         
     225        switch( ba.eventCode ) 
     226                case 2: // mouse up 
     227                        ControlInfo popup_0 
     228                        folderStr=S_Value 
     229                         
     230                        ControlInfo popup_1 
     231                        funcStr=S_Value 
     232                         
     233                        // check for smeared or smeared function 
     234                        if(stringmatch(funcStr, "Smear*" )==1) 
     235                                //it's a smeared model 
     236                                sprintf cmdStr, "Plot%s(\"%s\")",funcStr,folderStr 
     237                        else 
     238                                // it's not,                     
     239                                sprintf cmdStr, "Plot%s()",funcStr 
     240                        endif 
     241                         
     242                        //Print cmdStr 
     243                        Execute cmdStr 
     244                        break 
     245        endswitch 
     246         
     247        return 0 
     248End 
     249 
     250// How to bypass the step of plot and append? 
     251// 
     252// do it in two separate events 
     253// 
     254Function AppendModelToTarget(ba) : ButtonControl 
     255        STRUCT WMButtonAction &ba 
     256 
     257        String coefStr,suffix,yWStr,xWStr,folderStr 
     258         
     259        switch( ba.eventCode ) 
     260                case 2: // mouse up                      
     261                        ControlInfo popup_2 
     262                        coefStr=S_Value 
     263                        suffix = getModelSuffix(coefStr) 
     264                         
     265                        // check for smeared or smeared function 
     266                        if(stringmatch(coefStr, "smear*" )==1) 
     267                                //it's a smeared model 
     268                                ControlInfo popup_0 
     269                                folderStr=S_Value 
     270                                xWStr = "root:"+folderStr+":smeared_qvals" 
     271                                ywStr = "root:"+folderStr+":smeared"+suffix 
     272                        else 
     273                                // it's not, so it's in the root folder 
     274                                xWStr = "xwave"+suffix 
     275                                yWStr = "ywave"+suffix 
     276                        endif 
     277                         
     278                        Wave yw = $yWStr 
     279                        Wave xw = $xWStr 
     280                        AppendtoGraph yw vs xw 
     281                        break 
     282        endswitch 
     283         
     284        return 0 
     285End 
     286 
     287 
    197288// this should parse the panel and call the FitWrapper() function 
    198289Function DoTheFitButton(ba) : ButtonControl 
Note: See TracChangeset for help on using the changeset viewer.