Changeset 912


Ignore:
Timestamp:
Apr 5, 2020 4:54:37 PM (2 years ago)
Author:
ilavsky
Message:

Added beta version of Metadta Browser tool, fixes for BioSAXS tools etc.

Location:
trunk/User Procedures
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/User Procedures/Indra 2/IN2_GeneralProcedures.ipf

    r910 r912  
    695695//************************************************************************************************
    696696//************************************************************************************************
     697//https://www.wavemetrics.com/forum/igor-pro-wish-list/request-duplicategraph-function
     698static Function/S IN2G_ReFactorWinRec(WRstr)
     699    string WRstr
     700   
     701    string gstr
     702    string fstr, istr, rstr, estr
     703   
     704    // remove the /W component
     705    gstr = "((?s).+)(Display/W=\(\\d+,\\d+,\\d+,\\d+\))((?s).+)"   
     706    SplitString/E=gstr WRstr, istr, rstr, estr   
     707    fstr = istr + "Display" + estr
     708   
     709    // remove the /HOST component
     710    gstr = "((?s).+)(/HOST=#)((?s).+)"
     711    SplitString/E=gstr fstr, istr, rstr, estr 
     712
     713    fstr = istr + estr
     714    return (fstr)
     715end
     716
    697717Function IN2G_DuplGraphInPanelSubwndw(String gname)
    698     String rec = WinRecreation(gname, 0)    
     718    String rec = WinRecreation(gname, 0)   
    699719    Variable lines=ItemsInList(rec, "\r")
    700720    Variable i
    701     String newrec=""
    702     for (i = 0; i < lines; i++)
    703         String oneline = StringFromList(i, rec, "\r")
    704         if (StringMatch(oneline, "*Display*") && StringMatch(oneline, "*HOST*"))
    705             oneline = IN2G_RemoveSlashW(oneline)
    706             oneline = IN2G_RemoveSlashHost(oneline)
    707         endif
    708         newrec += oneline+"\r"
    709     endfor
     721    String newrec = IN2G_ReFactorWinRec(rec)
    710722    Execute newrec
    711723end
    712 static Function/S IN2G_RemoveSlashW(String aLine)
    713     String newstr = ""
    714     if (StringMatch(aLine, "*/W=*"))
    715         Variable pos1 = StrSearch(aLine, "/W=", 0)
    716         Variable pos2 = StrSearch(aLine, ")", pos1)
    717         newstr = aLine[0,pos1-1]
    718         newstr += aLine[pos2+1,strlen(aLine)]
    719     endif 
    720     return newstr
    721 end
    722 static Function/S IN2G_RemoveSlashHost(String aLine)
    723     String newstr = ""
    724     if (StringMatch(aLine, "*/HOST=*"))
    725         Variable pos1 = StrSearch(aLine, "/HOST=", 0)
    726         Variable pos2 = StrSearch(aLine, " ", pos1)     // This fails if there is another flag after /HOST=...
    727         newstr = aLine[0,pos1-1]
    728         newstr += aLine[pos2,strlen(aLine)]
    729     endif
    730     return newstr
    731 end
     724
     725//
     726//Function IN2G_DuplGraphInPanelSubwndw(String gname)
     727//    String rec = WinRecreation(gname, 0)   
     728//    Variable lines=ItemsInList(rec, "\r")
     729//    Variable i
     730//    String newrec=""
     731//    for (i = 0; i < lines; i++)
     732//        String oneline = StringFromList(i, rec, "\r")
     733//        if (StringMatch(oneline, "*Display*") && StringMatch(oneline, "*HOST*"))
     734//            oneline = IN2G_RemoveSlashW(oneline)
     735//            oneline = IN2G_RemoveSlashHost(oneline)
     736//        endif
     737//        newrec += oneline+"\r"
     738//    endfor
     739//    Execute newrec
     740//end
     741//static Function/S IN2G_RemoveSlashW(String aLine)
     742//    String newstr = ""
     743//    if (StringMatch(aLine, "*/W=*"))
     744//        Variable pos1 = StrSearch(aLine, "/W=", 0)
     745//        Variable pos2 = StrSearch(aLine, ")", pos1)
     746//        newstr = aLine[0,pos1-1]
     747//        newstr += aLine[pos2+1,strlen(aLine)]
     748//    endif 
     749//    return newstr
     750//end
     751//static Function/S IN2G_RemoveSlashHost(String aLine)
     752//    String newstr = ""
     753//    if (StringMatch(aLine, "*/HOST=*"))
     754//        Variable pos1 = StrSearch(aLine, "/HOST=", 0)
     755//        Variable pos2 = StrSearch(aLine, " ", pos1)     // This fails if there is another flag after /HOST=...
     756//        newstr = aLine[0,pos1-1]
     757//        newstr += aLine[pos2,strlen(aLine)]
     758//    endif
     759//    return newstr
     760//end
    732761//************************************************************************************************
    733762//************************************************************************************************
  • trunk/User Procedures/Irena/IR1_Main.ipf

    r903 r912  
    1616
    1717//2.691 Beta version after February2020 release
     18//                      New bioSAXS tools
     19//                      New Metadata Browser tool
    1820//2.69  Removed 14 ipf files to reduce clutter.
    1921//                      Combined with IR1_CreateFldrStrctr.ipf, IR1_Functions.ipf
     
    152154                "Merge two data sets", IR3D_DataMerging()
    153155                help={"Merge two data sets - two segments at different q ranges"}
     156                "Metadata Browser", IR3B_MetadataBrowser()
     157                help={"Tool to extarct quickly metadata stored in wave notes"}
    154158                "Data mining [extract information]", IR2M_GetDataMiner()
    155159                help={"Data miner to find various data and plot various waves"}
     
    322326        WindowProcNames+="POVPDBPanel=IR3P_MainCheckVersion;AnisotropicSystemsPanel=IR3N_MainCheckVersion;IR3L_MultiSamplePlotPanel=IR3L_MainCheckVersion;"
    323327        WindowProcNames+="IR1I_ImportBioSAXSASCIIData=IR1B_ImportASCIIMainCheckVersion;IRB1_DataManipulationPanel=IR1B_DataManMainCheckVersion;"
    324         WindowProcNames+="IRB1_ATSASInterfacePanel=IR1B_PDDFMainCheckVersion;IR3J_SimpleFitsPanel=IR1B_SimpleFitsMainCheckVersion;"
     328        WindowProcNames+="IRB1_ATSASInterfacePanel=IR1B_PDDFMainCheckVersion;IR3J_SimpleFitsPanel=IR1B_SimpleFitsMainCheckVersion;IR3B_MetadataBrowserPanel=IR3B_MainCheckVersion;"
    325329 
    326330        IR2C_CheckWIndowsProcVersions(WindowProcNames)
     
    358362                endif
    359363        endfor
    360        
     364         
    361365end
    362366///////////////////////////////////////////
  • trunk/User Procedures/Irena/IR2_DataMiner.ipf

    r893 r912  
    11#pragma rtGlobals=1             // Use modern global access method.
    2 #pragma version=1.13
    3 Constant IR2MversionNumber = 1.13
     2#pragma version=1.14
     3
     4Constant IR2MversionNumber = 1.13                       //Data mining tool version number
     5constant IR3BversionNumber = 0.1                        //MetadataBrowser tool version number.
    46
    57//*************************************************************************\
     
    911//*************************************************************************/
    1012
     13//1.14 added MetadataBrowser tool in this package,
    1114//1.13 GetHelp button
    1215//1.12 more fixes for panel scaling.
     
    6063//     fill  = fills[ int(2*index/number(fills)) ]
    6164
     65
     66
     67
     68
     69
     70
     71///******************************************************************************************
     72///******************************************************************************************
     73///                     Data mining tool main procedures.
     74///******************************************************************************************
     75///******************************************************************************************
    6276Function IR2M_GetDataMiner()
    6377
     
    111125//*****************************************************************************************************************
    112126//*****************************************************************************************************************
     127
     128
     129
     130///******************************************************************************************
     131///******************************************************************************************
     132///                     Metadata Browser tool, easy way to pull metadata out of wave notes
     133///******************************************************************************************
     134///******************************************************************************************
     135Function IR3B_MetadataBrowser()
     136
     137        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     138        IN2G_CheckScreenSize("width",1000)
     139        IN2G_CheckScreenSize("height",670)
     140        DoWIndow IR3B_MetadataBrowserPanel
     141        if(V_Flag)
     142                DoWindow/F IR3B_MetadataBrowserPanel
     143        else
     144                IR3B_InitMetadataBrowser()
     145                IR3B_MetadataBrowserPanelFnct()
     146                IR1_UpdatePanelVersionNumber("IR3B_MetadataBrowserPanel", IR3BversionNumber,1)
     147        endif
     148        IR3C_MultiUpdateListOfAvailFiles("Irena:MetadataBrowser")
     149end
     150//**********************************************************************************************************
     151//**********************************************************************************************************
     152//**********************************************************************************************************
     153
     154Function IR3B_MainCheckVersion()       
     155        DoWindow IR3B_MetadataBrowserPanel
     156        if(V_Flag)
     157                if(!IR1_CheckPanelVersionNumber("IR3B_MetadataBrowserPanel", IR3BversionNumber))
     158                        DoAlert /T="The Metadata Browser panel was created by different version of Irena " 1, "Metadata Browser may need to be restarted to work properly. Restart now?"
     159                        if(V_flag==1)
     160                                KillWIndow/Z IR3B_MetadataBrowserPanel
     161                                IR3B_MetadataBrowser()
     162                        else            //at least reinitialize the variables so we avoid major crashes...
     163                                IR3B_InitMetadataBrowser()
     164                        endif
     165                endif
     166        endif
     167end
     168//**********************************************************************************************************
     169//**********************************************************************************************************
     170//**********************************************************************************************************
     171//************************************************************************************************************
     172//************************************************************************************************************
     173Function IR3B_MetadataBrowserPanelFnct()
     174        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     175        PauseUpdate; Silent 1           // building window...
     176        NewPanel /K=1 /W=(5.25,43.25,800,820) as "MultiData Ploting tool"
     177        DoWIndow/C IR3B_MetadataBrowserPanel
     178        TitleBox MainTitle title="\Zr220Metadata Browser",pos={140,1},frame=0,fstyle=3, fixedSize=1,font= "Times New Roman", size={360,30},fColor=(0,0,52224)
     179        string UserDataTypes=""
     180        string UserNameString=""
     181        string XUserLookup=""
     182        string EUserLookup=""
     183        IR2C_AddDataControls("Irena:MetadataBrowser","IR3B_MetadataBrowserPanel","DSM_Int;M_DSM_Int;SMR_Int;M_SMR_Int;","AllCurrentlyAllowedTypes",UserDataTypes,UserNameString,XUserLookup,EUserLookup, 0,1, DoNotAddControls=1)
     184        Button GetHelp,pos={700,10},size={80,15},fColor=(65535,32768,32768), proc=IR3B_ButtonProc,title="Get Help", help={"Open www manual page for this tool"}
     185        IR3C_MultiAppendControls("Irena:MetadataBrowser","IR3B_MetadataBrowserPanel", "IR3B_DoubleClickAction","IR3B_MouseDownAction", 0,1)
     186        //graph controls
     187        TitleBox Instructions1 title="\Zr100Single/Double click to check data note",size={330,15},pos={4,680},frame=0,fColor=(0,0,65535),labelBack=0
     188        TitleBox Instructions2 title="\Zr100Shift-click to select range of data",size={330,15},pos={4,695},frame=0,fColor=(0,0,65535),labelBack=0
     189        TitleBox Instructions3 title="\Zr100Ctrl/Cmd-click to select one data set",size={330,15},pos={4,710},frame=0,fColor=(0,0,65535),labelBack=0
     190        TitleBox Instructions4 title="\Zr100Regex for not contain: ^((?!string).)*$",size={330,15},pos={4,725},frame=0,fColor=(0,0,65535),labelBack=0
     191        TitleBox Instructions5 title="\Zr100Regex for contain:  string, two: str2.*str1",size={330,15},pos={4,740},frame=0,fColor=(0,0,65535),labelBack=0
     192        TitleBox Instructions6 title="\Zr100Regex for case independent:  (?i)string",size={330,15},pos={4,755},frame=0,fColor=(0,0,65535),labelBack=0
     193 
     194        //Note listing and selection options
     195        TitleBox KeySelectionInfo title="\Zr140Selected sample & metadata : ",fixedSize=1,size={220,20},pos={290,100},frame=0,fstyle=1, fixedSize=1,fColor=(0,0,52224)
     196        SetVariable DataFolderName,pos={270,124},size={280,20}, proc=IR3B_SetVarProc,title=" ",noedit=1,frame=0,fstyle=1, valueColor=(65535,0,0)
     197        Setvariable DataFolderName,fStyle=2, variable=root:Packages:Irena:MetadataBrowser:DataFolderName, help={"This is grep string to clean up the key names"}
     198        SetVariable GrepItemNameString,pos={270,150},size={240,20}, proc=IR3B_SetVarProc,title="\Zr120Regex key name: "
     199        Setvariable GrepItemNameString,fStyle=2, variable=root:Packages:Irena:MetadataBrowser:GrepItemNameString, help={"This is grep string to clean up the key names"}
     200        ListBox NoteItemsSelection,win=IR3B_MetadataBrowserPanel,pos={265,180},size={250,495}, mode=10
     201        ListBox NoteItemsSelection,listWave=root:Packages:Irena:MetadataBrowser:ListOfWaveNoteItems
     202        ListBox NoteItemsSelection,selWave=root:Packages:Irena:MetadataBrowser:SelectionOfWaveNoteItems
     203        ListBox NoteItemsSelection,proc=IR3B_MultiListBoxProc
     204       
     205        TitleBox Instructions11 title="\Zr100Double click to add item to list",size={330,15},pos={280,680},frame=0,fColor=(0,0,65535),labelBack=0
     206        TitleBox Instructions21 title="\Zr100Use Regex to display less",size={330,15},pos={280,695},frame=0,fColor=(0,0,65535),labelBack=0
     207        //TitleBox Instructions31 title="\Zr100Regex for not contain: ^((?!string).)*$",size={330,15},pos={280,710},frame=0,fColor=(0,0,65535),labelBack=0
     208        //TitleBox Instructions41 title="\Zr100Regex for contain:  string, two: str2.*str1",size={330,15},pos={280,725},frame=0,fColor=(0,0,65535),labelBack=0
     209        //TitleBox Instructions51 title="\Zr100Regex for case independent:  (?i)string",size={330,15},pos={280,740},frame=0,fColor=(0,0,65535),labelBack=0
     210        TitleBox Instructions61 title="\Zr100https://www.rexegg.com/regex-quickstart.html",size={330,15},pos={280,755},frame=0,fColor=(0,0,65535),labelBack=0
     211
     212        //selected data
     213        TitleBox SelectedItemsInfo title="\Zr140List to process : ",fixedSize=1,size={150,20},pos={590,110},frame=0,fstyle=1, fixedSize=1,fColor=(0,0,52224)
     214        PopupMenu ExtractFromFileName,pos={560,150},size={310,20},proc=IR3B_PopMenuProc, title="Extract From Folder Name : ",help={"Select if to extarct from name some information"}
     215        PopupMenu ExtractFromFileName,value="---;_xyzC;_xyzmin;_xyz;_xyzpct;",mode=1, popvalue="---"
     216        ListBox SeletectedItems,win=IR3B_MetadataBrowserPanel,pos={530,180},size={250,250}, mode=10
     217        ListBox SeletectedItems,listWave=root:Packages:Irena:MetadataBrowser:SeletectedItems
     218        ListBox SeletectedItems,selWave=root:Packages:Irena:MetadataBrowser:SelectionOfSelectedItems
     219        ListBox SeletectedItems,proc=IR3B_MultiListBoxProc
     220        TitleBox Instructions12 title="\Zr100Double click to remove item from list",size={330,15},pos={550,440},frame=0,fColor=(0,0,65535),labelBack=0
     221
     222        TitleBox Instructions13 title="\Zr100Select where and extract data",size={330,15},pos={550,460},frame=0,fColor=(0,0,65535),labelBack=0
     223
     224
     225        SetVariable SaveToFoldername,pos={525,490},size={260,20}, noproc,title="\Zr120Save to:"
     226        Setvariable SaveToFoldername,fStyle=2, variable=root:Packages:Irena:MetadataBrowser:SaveToFoldername, help={"Where to store saved metadata"}
     227
     228        Button ExtractDataInWave,pos={540,530},size={220,20}, proc=IR3B_ButtonProc,title="Process Selected folders", help={"Extract above listed metadata as waves and save"}
     229                //      Button ExportGraphJPG,pos={450,680},size={140,20}, proc=IR3L_ButtonProc,title="Export as jpg", help={"Export as jpg file"}
     230                //      Button ExportGraphTIF,pos={450,705},size={140,20}, proc=IR3L_ButtonProc,title="Export as tiff", help={"Export as tiff file"}
     231                //      Button SaveGraphAsFile,pos={450,730},size={140,20}, proc=IR3L_ButtonProc,title="Export as pxp", help={"Save Graph As Igor experiment"}
     232end
     233//**********************************************************************************************************
     234//**********************************************************************************************************
     235//**********************************************************************************************************
     236
     237Function IR3B_ButtonProc(ba) : ButtonControl
     238        STRUCT WMButtonAction &ba
     239
     240        variable i
     241        string FoldernameStr
     242        switch( ba.eventCode )
     243                case 2: // mouse up
     244                        // click code here
     245                        if(cmpstr(ba.ctrlname,"ExtractDataInWave")==0)
     246                                IR3B_ExtractMetadataFromList()
     247                        endif
     248                        break
     249                        if(cmpstr(ba.ctrlname,"GetHelp")==0)
     250                                //Open www manual with the right page
     251                                IN2G_OpenWebManual("Irena/DataManipulation.html")
     252                        endif
     253                case -1: // control being killed
     254                        break
     255        endswitch
     256        return 0
     257End
     258//**********************************************************************************************************
     259//**********************************************************************************************************
     260//**********************************************************************************************************
     261
     262Function IR3B_PopMenuProc(pa) : PopupMenuControl
     263        STRUCT WMPopupAction &pa
     264
     265        String ctrlName=Pa.ctrlName
     266        Variable popNum=Pa.popNum
     267        String popStr=Pa.popStr
     268       
     269        if(Pa.eventcode!=2)
     270                return 0
     271        endif
     272        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     273        if(stringmatch(ctrlName,"ExtractFromFileName"))
     274                //do something here
     275                IR3B_AddToSelectedItems("Extract"+popStr,1)
     276        endif
     277        DOWIndow/F IR3L_MultiSamplePlotPanel
     278end
     279
     280//**************************************************************************************
     281//**************************************************************************************
     282///**************************************************************************************
     283//**************************************************************************************
     284
     285Function IR3B_SetVarProc(sva) : SetVariableControl
     286        STRUCT WMSetVariableAction &sva
     287
     288        variable tempP
     289        switch( sva.eventCode )
     290                case 1: // mouse up
     291                case 2: // Enter key
     292                                //                      if(stringmatch(sva.ctrlName,"FolderNameMatchString"))
     293                                //                              IR3L_UpdateListOfAvailFiles()
     294                                //                      endif
     295                                if(stringmatch(sva.ctrlName,"GrepItemNameString"))
     296                                        IR3B_DisplayWaveNote("")
     297                                endif
     298                                break
     299                case 3: // live update
     300                        break
     301                case -1: // control being killed
     302                        break
     303        endswitch
     304        DoWIndow/F IR3L_MultiSamplePlotPanel
     305        return 0
     306End
     307
     308//**************************************************************************************
     309//**********************************************************************************************************
     310//**********************************************************************************************************
     311
     312
     313Function IR3B_MultiListBoxProc(lba) : ListBoxControl
     314        STRUCT WMListboxAction &lba
     315
     316        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     317        Variable row = lba.row
     318        WAVE/T/Z listWave = lba.listWave
     319        WAVE/Z selWave = lba.selWave
     320        string WinNameStr=lba.win
     321
     322        switch( lba.eventCode )
     323                case -1: // control being killed
     324                        break
     325                case 1: // mouse down
     326                        break
     327                case 2: // mouse up
     328                        break
     329                case 3: // double click
     330                        if(stringmatch(lba.ctrlName,"NoteItemsSelection"))
     331                                IR3B_AddToSelectedItems(listWave[row],1)
     332                        endif
     333                        if(stringmatch(lba.ctrlName,"SeletectedItems"))
     334                                IR3B_AddToSelectedItems(listWave[row],0)
     335                        endif
     336                        break
     337                case 4: // cell selection
     338                case 5: // cell selection plus shift key
     339                        break
     340                case 6: // begin edit
     341                        break
     342                case 7: // finish edit
     343                        break
     344                case 13: // checkbox clicked (Igor 6.2 or later)
     345                        break
     346        endswitch
     347
     348        return 0
     349End
     350//**************************************************************************************
     351//**************************************************************************************
     352Function IR3B_AddToSelectedItems(ItemToAddorRemove,Add)
     353        string ItemToAddorRemove
     354        variable Add                    //Add=1 to add, 0 to remove
     355
     356        string KeyName=StringFromList(0, ItemToAddorRemove, "=")
     357        Wave/T listWave=root:Packages:Irena:MetadataBrowser:SeletectedItems
     358        Wave selWave=root:Packages:Irena:MetadataBrowser:SelectionOfSelectedItems
     359        //no issue to remove it first, if it is nto there, no issue.
     360        //this prevents duplicates...
     361        //exact match: "\bdeiauk\b"
     362        make/T/Free wt
     363        Grep/E={"\b"+KeyName+"\b",0} listWave as wt
     364        if(numpnts(wt)>0 && Add==0)                             //item is already there... Remove
     365                Grep/E={"\b"+KeyName+"\b",1} listWave as listWave
     366        elseif(numpnts(wt)>0 && Add)                            //item is already there... nothing to do
     367                //nothing to do
     368        else                                                                                    //next, add it if needed
     369                variable NewLength=numpnts(listWave)
     370                if(NewLength<1)
     371                        NewLength=1
     372                endif
     373                if(Add)
     374                        Redimension/N=(NewLength+1) listWave
     375                        listWave[0]="FolderName"
     376                        listWave[NewLength] = KeyName
     377                endif
     378        endif
     379        Redimension/N=(numpnts(listWave)) selWave
     380        selWave = 0
     381end
     382//**************************************************************************************
     383//**************************************************************************************
     384Function IR3B_DoubleClickAction(FoldernameStr)
     385                string FoldernameStr
     386                IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     387
     388                IR3B_DisplayWaveNote(FoldernameStr)
     389end
     390//**************************************************************************************
     391//**********************************************************************************************************
     392//**********************************************************************************************************
     393
     394Function IR3B_MouseDownAction(FoldernameStr)
     395                string FoldernameStr
     396                IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     397
     398                IR3B_DisplayWaveNote(FoldernameStr)
     399end
     400//**********************************************************************************************************
     401//**********************************************************************************************************
     402//**********************************************************************************************************
     403//**********************************************************************************************************
     404
     405
     406Function IR3B_ExtractMetadataFromList()
     407       
     408        Wave/T ListOfAvailableData=root:Packages:Irena:MetadataBrowser:ListOfAvailableData
     409        Wave SelectionOfAvailableData=root:Packages:Irena:MetadataBrowser:SelectionOfAvailableData
     410        variable i, imax=numpnts(ListOfAvailableData)
     411        For(i=0;i<imax;i+=1)
     412                if(SelectionOfAvailableData[i])
     413                        print "Extracting data from "+ListOfAvailableData[i]
     414                        IR3B_ExtractMetadataFromOneFolder(ListOfAvailableData[i])
     415                endif   
     416        endfor
     417        print "Extracted data from "+num2str(sum(SelectionOfAvailableData))+"   folder with data"
     418end
     419
     420Function IR3B_ExtractMetadataFromOneFolder(FolderNameStr)
     421        string FolderNameStr
     422
     423        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     424        DfRef OldDf=GetDataFolderDFR()
     425        SetDataFolder root:Packages:Irena:MetadataBrowser                                       //go into the folder
     426        SVAR SaveToFoldername = root:Packages:Irena:MetadataBrowser:SaveToFoldername
     427        SVAR DataStartFolder=root:Packages:Irena:MetadataBrowser:DataStartFolder
     428        SVAR DataFolderName=root:Packages:Irena:MetadataBrowser:DataFolderName
     429        SVAR IntensityWaveName=root:Packages:Irena:MetadataBrowser:IntensityWaveName
     430//      if(DataFolderExists(SaveToFoldername))
     431//              Abort "This data folder exists, change the name. Improve me to allow overwrite here"
     432//      else
     433        NewDataFOlder/O/S $(SaveToFoldername)
     434//      endif
     435
     436       
     437        //to decide if this value is number of string...
     438        //print GrepString("Sample1", "^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$")
     439        // prints 1 for number, 0 for string.
     440       
     441        if(strlen(FolderNameStr)>0)             //if strlen(FolderNameStr)=0, this is called from other otherols and all is set here...
     442                IR3C_SelectWaveNamesData("Irena:MetadataBrowser", FolderNameStr)                        //this routine will preset names in strings as needed
     443        endif
     444        Wave/Z SourceIntWv=$(DataFolderName+IntensityWaveName)
     445        if(!WaveExists(SourceIntWv))
     446                DoAlert /T="Incorrectly defined data type" 0, "Please, check definition of data type, it seems incorrectly defined yet"
     447                SetDataFolder oldDf
     448                abort
     449        endif
     450        //OK, this is list of stuff we can get values from...
     451        string CurrentNote=note(SourceIntWv)
     452        //now which values?
     453        Wave/T listofItemsWave=root:Packages:Irena:MetadataBrowser:SeletectedItems     
     454        variable i, imax=numpnts(listofItemsWave)
     455        string KeyString, ValueString, CleanKeyName
     456        Wave/Z/T FolderNameWv
     457        if(!WaveExists(FolderNameWv))
     458                Make/O/N=0/T FolderNameWv
     459        endif
     460        variable NumberOfExtractedItems
     461        NumberOfExtractedItems = numpnts(FolderNameWv)
     462        For(i=0;i<imax;i+=1)
     463                KeyString = listofItemsWave[i]
     464                ValueString = StringByKey(KeyString, CurrentNote, "=", ";")
     465                if(StringMatch(KeyString, "FolderName"))
     466                        Redimension/N=(NumberOfExtractedItems+1) FolderNameWv
     467                        FolderNameWv[NumberOfExtractedItems] = DataFolderName
     468                elseif(StringMatch(KeyString, "Extract_xyzC"))          //_xyzC, _xyzmin, _xyzpct, _xyz
     469                                Wave/Z TmpWv=TemperatureWv
     470                                if(!WaveExists(TmpWv))
     471                                        Make/O/N=(NumberOfExtractedItems+1) TemperatureWv
     472                                endif
     473                                Wave TmpWv=TemperatureWv
     474                                Redimension/N=(NumberOfExtractedItems+1) TmpWv
     475                                TmpWv[NumberOfExtractedItems] = IR3B_IdentifyNameComponent(DataFolderName, "_xyzC")
     476                elseif(StringMatch(KeyString, "Extract_xyzmin"))                //_xyzC, _xyzmin, _xyzpct, _xyz
     477                                Wave/Z TmpWv=TimeWv
     478                                if(!WaveExists(TmpWv))
     479                                        Make/O/N=(NumberOfExtractedItems+1) TimeWv
     480                                endif
     481                                Wave TmpWv=TimeWv
     482                                Redimension/N=(NumberOfExtractedItems+1) TmpWv
     483                                TmpWv[NumberOfExtractedItems] = IR3B_IdentifyNameComponent(DataFolderName, "_xyzmin")
     484                elseif(StringMatch(KeyString, "Extract_xyz"))           //_xyzC, _xyzmin, _xyzpct, _xyz
     485                                Wave/Z TmpWv=OrderWv
     486                                if(!WaveExists(TmpWv))
     487                                        Make/O/N=(NumberOfExtractedItems+1) OrderWv
     488                                endif
     489                                Wave TmpWv=OrderWv
     490                                Redimension/N=(NumberOfExtractedItems+1) OrderWv
     491                                TmpWv[NumberOfExtractedItems] = IR3B_IdentifyNameComponent(DataFolderName, "_xyz")
     492                elseif(StringMatch(KeyString, "Extract_xyzpct"))                //_xyzC, _xyzmin, _xyzpct, _xyz
     493                                Wave/Z TmpWv=PercentWv
     494                                if(!WaveExists(TmpWv))
     495                                        Make/O/N=(NumberOfExtractedItems+1) PercentWv
     496                                endif
     497                                Wave TmpWv=PercentWv
     498                                Redimension/N=(NumberOfExtractedItems+1) PercentWv
     499                                TmpWv[NumberOfExtractedItems] = IR3B_IdentifyNameComponent(DataFolderName, "_xyzpct")
     500                //done with special name based waves...
     501                else            ///all others.
     502                        if(GrepString(ValueString, "^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$"))         //thsi si number
     503                                CleanKeyName = CleanupName(KeyString, 0, 31)
     504                                Wave/Z TmpWv=$(CleanKeyName)
     505                                if(!WaveExists(TmpWv))
     506                                        Make/O/N=(NumberOfExtractedItems+1) $(CleanKeyName)
     507                                endif
     508                                Wave TmpWv=$(CleanKeyName)
     509                                Redimension/N=(NumberOfExtractedItems+1) TmpWv
     510                                TmpWv[NumberOfExtractedItems] = str2num(ValueString)
     511                        else    //string, may be add handling of dates later.
     512                                CleanKeyName = CleanupName(KeyString, 0, 31)
     513                                Wave/Z/T TmpStrWv=$(CleanKeyName)
     514                                if(!WaveExists(TmpStrWv))
     515                                        Make/O/N=(NumberOfExtractedItems+1)/T $(CleanKeyName)
     516                                endif
     517                                Wave/T TmpStrWv=$(CleanKeyName)
     518                                Redimension/N=(NumberOfExtractedItems+1) TmpStrWv
     519                                TmpStrWv[NumberOfExtractedItems] = ValueString
     520                        endif
     521                endif
     522
     523        endfor 
     524
     525        SetDataFolder oldDf
     526        return 1
     527
     528end
     529//**********************************************************************************************************
     530//**********************************************************************************************************
     531
     532
     533Function IR3B_IdentifyNameComponent(NameStr, whichComp)
     534                string NameStr, whichComp               //"_xyzC",  _xyzmin, _xyzpct, _xyz
     535               
     536                string NameStrLoc=StringFromList(ItemsInList(NameStr, ":")-1, NameStr, ":"  )
     537                string result="", tmpStr
     538                variable i
     539                if(StringMatch(whichComp, "_xyz"))
     540                        FOr(i=ItemsInList(NameStrLoc, "_")-1;i>=0;i-=1)
     541                                tmpStr = StringFromList(i, NameStrLoc, "_")
     542                                if(GrepString(tmpStr, "^[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?$"))
     543                                        return str2num(tmpStr)
     544                                endif
     545                        endfor
     546                endif
     547                FOr(i=0;i<ItemsInList(NameStrLoc, "_");i+=1)
     548                        tmpStr = StringFromList(i, NameStrLoc, "_")
     549                        strswitch(whichComp)                                    // string switch
     550                                case "_xyzC":                                           // execute if case matches expression
     551                                        if(GrepString(tmpStr, "^[-+]?[0-9]*\.?[0-9]+C$" ))
     552                                                return str2num(tmpStr)
     553                                        endif
     554                                        break                                                   // exit from switch
     555                                case "_xyzmin": // execute if case matches expression
     556                                        if(GrepString(tmpStr, "^[-+]?[0-9]*\.?[0-9]+min$" ))
     557                                                return str2num(tmpStr)
     558                                        endif
     559                                        break
     560                                case "_xyzpct": // execute if case matches expression
     561                                        if(GrepString(tmpStr, "^[-+]?[0-9]*\.?[0-9]+pct$" ))
     562                                                return str2num(tmpStr)
     563                                        endif
     564                                        break
     565                        endswitch               
     566                endfor
     567        return Nan
     568end
     569//**********************************************************************************************************
     570//**********************************************************************************************************
     571
     572static Function IR3B_DisplayWaveNote(FolderNameStr)
     573        string FolderNameStr
     574       
     575        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     576        DfRef OldDf=GetDataFolderDFR()
     577        SetDataFolder root:Packages:Irena:MetadataBrowser                                       //go into the folder
     578                SVAR DataStartFolder=root:Packages:Irena:MetadataBrowser:DataStartFolder
     579                SVAR DataFolderName=root:Packages:Irena:MetadataBrowser:DataFolderName
     580                SVAR IntensityWaveName=root:Packages:Irena:MetadataBrowser:IntensityWaveName
     581                SVAR QWavename=root:Packages:Irena:MetadataBrowser:QWavename
     582                SVAR ErrorWaveName=root:Packages:Irena:MetadataBrowser:ErrorWaveName
     583                SVAR dQWavename=root:Packages:Irena:MetadataBrowser:dQWavename
     584                NVAR UseIndra2Data=root:Packages:Irena:MetadataBrowser:UseIndra2Data
     585                NVAR UseQRSdata=root:Packages:Irena:MetadataBrowser:UseQRSdata
     586                NVAR useResults=root:Packages:Irena:MetadataBrowser:useResults
     587                SVAR DataSubType = root:Packages:Irena:MetadataBrowser:DataSubType
     588                //these are variables used by the control procedure
     589                NVAR  UseUserDefinedData=  root:Packages:Irena:MetadataBrowser:UseUserDefinedData
     590                NVAR  UseModelData = root:Packages:Irena:MetadataBrowser:UseModelData
     591                SVAR DataFolderName  = root:Packages:Irena:MetadataBrowser:DataFolderName
     592                SVAR IntensityWaveName = root:Packages:Irena:MetadataBrowser:IntensityWaveName
     593                SVAR QWavename = root:Packages:Irena:MetadataBrowser:QWavename
     594                SVAR ErrorWaveName = root:Packages:Irena:MetadataBrowser:ErrorWaveName
     595                //graph control variable
     596                //SVAR GraphUserTitle=root:Packages:Irena:MetadataBrowser:GraphUserTitle
     597                //SVAR GraphWindowName=root:Packages:Irena:MetadataBrowser:GraphWindowName
     598                SVAR ResultsDataTypesLookup=root:Packages:IrenaControlProcs:ResultsDataTypesLookup
     599                //Grep controls 
     600                SVAR GrepItemNameString=root:Packages:Irena:MetadataBrowser:GrepItemNameString
     601                //SVAR ListOfDefinedDataPlots=root:Packages:Irena:MetadataBrowser:ListOfDefinedDataPlots
     602                if(strlen(FolderNameStr)>0)             //if strlen(FolderNameStr)=0, this is called from other otherols and all is set here...
     603                        IR3C_SelectWaveNamesData("Irena:MetadataBrowser", FolderNameStr)                        //this routine will preset names in strings as needed
     604                endif
     605                Wave/Z SourceIntWv=$(DataFolderName+IntensityWaveName)
     606                if(!WaveExists(SourceIntWv))
     607                        DoAlert /T="Incorrectly defined data type" 0, "Please, check definition of data type, it seems incorrectly defined yet"
     608                        SetDataFolder oldDf
     609                        abort
     610                endif
     611                string CurrentNote=note(SourceIntWv)
     612               
     613                WAVE/T ListOfWaveNoteItems = root:Packages:Irena:MetadataBrowser:ListOfWaveNoteItems
     614                WAVE     SelectionOfWaveNoteItems = root:Packages:Irena:MetadataBrowser:SelectionOfWaveNoteItems
     615
     616                Wave/T w = ListToTextWave(CurrentNote, ";")
     617                Grep/E=GrepItemNameString w as w
     618                REDIMENSION/N=(numpnts(w)) SelectionOfWaveNoteItems, ListOfWaveNoteItems
     619                ListOfWaveNoteItems = w
     620                SelectionOfWaveNoteItems=0
     621
     622        SetDataFolder oldDf
     623        return 1
     624end
     625//**********************************************************************************************************
     626//**********************************************************************************************************
     627
     628Function IR3B_InitMetadataBrowser()     
     629        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
     630        DfRef OldDf=GetDataFolderDFR()
     631        string ListOfVariables
     632        string ListOfStrings
     633        variable i
     634               
     635        if (!DataFolderExists("root:Packages:Irena:MetadataBrowser"))           //create folder
     636                NewDataFolder/O root:Packages
     637                NewDataFolder/O root:Packages:Irena
     638                NewDataFolder/O root:Packages:Irena:MetadataBrowser
     639        endif
     640        SetDataFolder root:Packages:Irena:MetadataBrowser                                       //go into the folder
     641
     642        //here define the lists of variables and strings needed, separate names by ;...
     643        ListOfStrings="DataFolderName;IntensityWaveName;QWavename;ErrorWaveName;dQWavename;DataUnits;"
     644        ListOfStrings+="DataStartFolder;DataMatchString;FolderSortString;FolderSortStringAll;"
     645        ListOfStrings+="GrepItemNameString;"
     646        ListOfStrings+="SelectedResultsTool;SelectedResultsType;ResultsGenerationToUse;"
     647        ListOfStrings+="DataSubTypeUSAXSList;DataSubTypeResultsList;DataSubType;"
     648        ListOfStrings+="SaveToFoldername;"
     649        ListOfStrings+="QvecLookupUSAXS;ErrorLookupUSAXS;dQLookupUSAXS;"
     650//      ListOfStrings+="ListOfDefinedStyles;SelectedStyle;ListOfDefinedDataPlots;SelectedDataPlot;"
     651
     652        ListOfVariables="UseIndra2Data;UseQRSdata;UseResults;"
     653        ListOfVariables+="InvertGrepSearch;"
     654//      ListOfVariables+="LogXAxis;LogYAxis;MajorGridXaxis;MajorGridYaxis;MinorGridXaxis;MinorGridYaxis;"
     655//      ListOfVariables+="Colorize;UseSymbols;UseLines;SymbolSize;LineThickness;"
     656//      ListOfVariables+="XOffset;YOffset;DisplayErrorBars;ApplyFormatingEveryTime;"
     657//      ListOfVariables+="AddLegend;UseOnlyFoldersInLegend;LegendSize;"
     658       
     659        //and here we create them
     660        for(i=0;i<itemsInList(ListOfVariables);i+=1)   
     661                IN2G_CreateItem("variable",StringFromList(i,ListOfVariables))
     662        endfor         
     663                                                               
     664        for(i=0;i<itemsInList(ListOfStrings);i+=1)     
     665                IN2G_CreateItem("string",StringFromList(i,ListOfStrings))
     666        endfor 
     667
     668        ListOfStrings="DataFolderName;IntensityWaveName;QWavename;ErrorWaveName;dQWavename;"
     669        for(i=0;i<itemsInList(ListOfStrings);i+=1)     
     670                SVAR teststr=$(StringFromList(i,ListOfStrings))
     671                teststr =""
     672        endfor         
     673        ListOfStrings="DataMatchString;FolderSortString;FolderSortStringAll;"
     674        for(i=0;i<itemsInList(ListOfStrings);i+=1)     
     675                SVAR teststr=$(StringFromList(i,ListOfStrings))
     676                if(strlen(teststr)<1)
     677                        teststr =""
     678                endif
     679        endfor         
     680        ListOfStrings="DataStartFolder;"
     681        for(i=0;i<itemsInList(ListOfStrings);i+=1)     
     682                SVAR teststr=$(StringFromList(i,ListOfStrings))
     683                if(strlen(teststr)<1)
     684                        teststr ="root:"
     685                endif
     686        endfor         
     687        SVAR FolderSortStringAll
     688        FolderSortStringAll = "Alphabetical;Reverse Alphabetical;_xyz;_xyz.ext;Reverse _xyz;Reverse _xyz.ext;Sxyz_;Reverse Sxyz_;_xyzmin;_xyzC;_xyzpct;_xyz_000;Reverse _xyz_000;"
     689        SVAR DataSubTypeUSAXSList
     690        DataSubTypeUSAXSList="DSM_Int;SMR_Int;R_Int;Blank_R_Int;USAXS_PD;Monitor;"
     691        SVAR DataSubTypeResultsList
     692        DataSubTypeResultsList="Size"
     693        SVAR DataSubType
     694        DataSubType="DSM_Int"
     695       
     696        SVAR QvecLookupUSAXS
     697        QvecLookupUSAXS="R_Int=R_Qvec;Blank_R_Int=Blank_R_Qvec;SMR_Int=SMR_Qvec;DSM_Int=DSM_Qvec;USAXS_PD=Ar_encoder;Monitor=Ar_encoder;"
     698        SVAR ErrorLookupUSAXS
     699        ErrorLookupUSAXS="R_Int=R_Error;Blank_R_Int=Blank_R_error;SMR_Int=SMR_Error;DSM_Int=DSM_error;"
     700        SVAR dQLookupUSAXS
     701        dQLookupUSAXS="SMR_Int=SMR_dQ;DSM_Int=DSM_dQ;"
     702       
     703        SVAR SaveToFoldername
     704        if(strlen(SaveToFoldername)<5)
     705                SaveToFoldername="root:SavedMetadata"
     706        endif
     707//      SVAR GraphWindowName
     708//      GraphUserTitle=""
     709//      GraphWindowName=stringFromList(0,WinList("MultiDataPlot_*", ";", "WIN:1" ))
     710//      if(strlen(GraphWindowName)<2)
     711//              GraphWindowName="---"
     712//      endif
     713        SVAR SelectedResultsTool
     714        SVAR SelectedResultsType
     715        SVAR ResultsGenerationToUse
     716        if(strlen(SelectedResultsTool)<1)
     717                SelectedResultsTool="Unified Fit"
     718        endif
     719        if(strlen(SelectedResultsTool)<1)
     720                SelectedResultsTool=IR2C_ReturnKnownToolResults(SelectedResultsTool)
     721        endif
     722        if(strlen(ResultsGenerationToUse)<1)
     723                ResultsGenerationToUse="Latest"
     724        endif
     725       
     726//      NVAR LegendSize
     727//      if(LegendSize<8)
     728//              LegendSize=12
     729//      endif
     730//      NVAR UseSymbols
     731//      NVAR UseLines
     732//      NVAR Colorize
     733//      NVAR SymbolSize
     734//      NVAR LineThickness
     735//      NVAR AddLegend
     736//      NVAR UseOnlyFoldersInLegend
     737//      NVAR LegendSize
     738//      if(UseSymbols+UseLines < 1)                     //seems to start new tool
     739//              UseLines = 1
     740//              Colorize = 1
     741//              SymbolSize = 2
     742//              LineThickness = 2
     743//              AddLegend = 1
     744//              UseOnlyFoldersInLegend = 1
     745//              LegendSize = 12
     746//      endif
     747       
     748        Make/O/T/N=(0) ListOfAvailableData, ListOfWaveNoteItems
     749        Make/O/N=(0) SelectionOfAvailableData, SelectionOfWaveNoteItems
     750        Make/O/T/N=(1) SeletectedItems
     751        Make/O/N=(1) SelectionOfSelectedItems
     752        Wave/T SeletectedItems
     753        SeletectedItems[0]="FolderName"
     754        Wave SelectionOfSelectedItems
     755        SelectionOfSelectedItems = 0
     756        SetDataFolder oldDf
     757
     758end
     759//**************************************************************************************
     760//**************************************************************************************
     761
     762
     763
     764
     765
     766
     767
     768
     769
     770
     771
     772///******************************************************************************************
     773///******************************************************************************************
     774///                     Data mining tool procedrues.
     775///******************************************************************************************
     776///******************************************************************************************
     777//**********************************************************************************************************
    113778//*****************************************************************************************************************
    114779//*****************************************************************************************************************
  • trunk/User Procedures/Irena/IR2_PanelCntrlProcs.ipf

    r903 r912  
    32353235//**************************************************************************************
    32363236
    3237 Function IR3C_MultiAppendControls(ToolPackageFolder,PanelName, DoubleClickFunNm, OnlyUSAXSReducedData,AllowSlitSmearedData)
    3238                 string PanelName,ToolPackageFolder,DoubleClickFunNm
     3237Function IR3C_MultiAppendControls(ToolPackageFolder,PanelName, DoubleClickFunNm, MouseDownFunNm, OnlyUSAXSReducedData,AllowSlitSmearedData)
     3238                string PanelName,ToolPackageFolder,DoubleClickFunNm, MouseDownFunNm
    32393239                variable OnlyUSAXSReducedData,AllowSlitSmearedData
    32403240                //this will append controls to panels, which require set of control for multi sample selection 
     
    32453245                IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
    32463246                string PathToPackagesFolder="root:Packages:"+ToolPackageFolder
    3247                 IR3C_InitMultiControls(PathToPackagesFolder, PanelName, DoubleClickFunNm,OnlyUSAXSReducedData,AllowSlitSmearedData)                     
     3247                IR3C_InitMultiControls(PathToPackagesFolder, PanelName, DoubleClickFunNm,MouseDownFunNm, OnlyUSAXSReducedData,AllowSlitSmearedData)                     
    32483248                TitleBox Dataselection, win=$(PanelName), title="\Zr130Data selection",size={100,15},pos={10,10},frame=0,fColor=(0,0,65535),labelBack=0
    32493249                Checkbox UseIndra2Data, win=$(PanelName),pos={10,30},size={76,14},title="USAXS", proc=IR3C_MultiCheckProc, variable=$(PathToPackagesFolder+":UseIndra2Data")
     
    34783478        SVAR ControlDoubleClickFunction = root:Packages:IrenaControlProcs:ControlDoubleClickFunction
    34793479        DoubleClickFunctionName=StringByKey(WinNameStr, ControlDoubleClickFunction,":",";" )
     3480        string ControlMouseDownFunctionName
     3481        SVAR ControlMouseDownFunction = root:Packages:IrenaControlProcs:ControlMouseDownFunction
     3482        ControlMouseDownFunctionName=StringByKey(WinNameStr, ControlMouseDownFunction,":",";" )
    34803483
    34813484        switch( lba.eventCode )
     
    34833486                        break
    34843487                case 1: // mouse down
     3488                        FoldernameStr=listWave[row]
     3489                        if(strlen(ControlMouseDownFunctionName)>0)
     3490                                Execute(ControlMouseDownFunctionName+"(\""+FoldernameStr+"\")")
     3491                        endif
    34853492                        break
    34863493                case 3: // double click
    34873494                        FoldernameStr=listWave[row]
    3488                         Execute(DoubleClickFunctionName+"(\""+FoldernameStr+"\")")
     3495                        if(strlen(DoubleClickFunctionName)>0)
     3496                                Execute(DoubleClickFunctionName+"(\""+FoldernameStr+"\")")
     3497                        endif
    34893498                        break
    34903499                case 4: // cell selection
     
    35073516
    35083517
    3509 Function IR3C_InitMultiControls(PathToPackagesFolder, PanelName, DoubleClickFunction,OnlyUSAXSReducedData,AllowSlitSmearedData)
    3510         string PathToPackagesFolder, PanelName, DoubleClickFunction
     3518Function IR3C_InitMultiControls(PathToPackagesFolder, PanelName, DoubleClickFunction,MouseDownFunction, OnlyUSAXSReducedData,AllowSlitSmearedData)     
     3519        string PathToPackagesFolder, PanelName, DoubleClickFunction, MouseDownFunction
    35113520        variable OnlyUSAXSReducedData,AllowSlitSmearedData
    35123521
     
    35183527        IN2G_PrintDebugStatement(IrenaDebugLevel, 5,"")
    35193528               
     3529        string/G root:Packages:IrenaControlProcs:ControlMouseDownFunction
     3530        SVAR ControlMouseDownFunction = root:Packages:IrenaControlProcs:ControlMouseDownFunction
     3531        ControlMouseDownFunction=ReplaceStringByKey(PanelName, ControlMouseDownFunction, MouseDownFunction,":",";" )
     3532       
    35203533        string/G root:Packages:IrenaControlProcs:ControlDoubleClickFunction
    35213534        SVAR ControlDoubleClickFunction = root:Packages:IrenaControlProcs:ControlDoubleClickFunction
    35223535        ControlDoubleClickFunction=ReplaceStringByKey(PanelName, ControlDoubleClickFunction, DoubleClickFunction,":",";" )
     3536
    35233537
    35243538        SetDataFolder $(PathToPackagesFolder)                                   //go into the folder
  • trunk/User Procedures/Irena/IR3_MultiDataPlot.ipf

    r902 r912  
    107107        IR2C_AddDataControls("Irena:MultiSamplePlot","IR3L_MultiSamplePlotPanel","DSM_Int;M_DSM_Int;SMR_Int;M_SMR_Int;","AllCurrentlyAllowedTypes",UserDataTypes,UserNameString,XUserLookup,EUserLookup, 0,1, DoNotAddControls=1)
    108108        Button GetHelp,pos={480,10},size={80,15},fColor=(65535,32768,32768), proc=IR3L_ButtonProc,title="Get Help", help={"Open www manual page for this tool"}
    109         IR3C_MultiAppendControls("Irena:MultiSamplePlot","IR3L_MultiSamplePlotPanel", "IR3L_DoubleClickAction",0,1)
     109        IR3C_MultiAppendControls("Irena:MultiSamplePlot","IR3L_MultiSamplePlotPanel", "IR3L_DoubleClickAction","",0,1)
    110110        //graph controls
    111111        SVAR GraphWindowName=root:Packages:Irena:MultiSamplePlot:GraphWindowName
     
    704704
    705705                IR3C_SelectWaveNamesData("Irena:MultiSamplePlot", FolderNameStr)                        //thsi routine will presetn names in strings as needed
    706                                 //              if(UseQRSdata+UseIndra2Data+useResults> 1)
    707                                 //                      Abort "Data type not selected right, please, select type of data first"
    708                                 //              endif
    709                                 //             
    710                                 //              string TempStr, result, tempStr2, TempYName, TempXName, tempStr3
    711                                 //              variable i, j
    712                                 //             
    713                                 //              UseUserDefinedData = 0
    714                                 //              UseModelData = 0
    715                                 //              DataFolderName = DataStartFolder+FolderNameStr
    716                                 //              if(UseQRSdata)
    717                                 //                      //get the names of waves, assume this tool actually works. May not under some conditions. In that case this tool will not work.
    718                                 //                      QWavename = stringFromList(0,IR2P_ListOfWaves("Xaxis","", "IR3L_MultiSamplePlotPanel"))
    719                                 //                      IntensityWaveName = stringFromList(0,IR2P_ListOfWaves("Yaxis","*", "IR3L_MultiSamplePlotPanel"))
    720                                 //                      ErrorWaveName = stringFromList(0,IR2P_ListOfWaves("Error","*", "IR3L_MultiSamplePlotPanel"))
    721                                 //                      if(UseIndra2Data)
    722                                 //                              dQWavename = ReplaceString("Qvec", QWavename, "dQ")
    723                                 //                      elseif(UseQRSdata)
    724                                 //                              dQWavename = "w"+QWavename[1,31]
    725                                 //                      else
    726                                 //                              dQWavename = ""
    727                                 //                      endif
    728                                 //              elseif(UseIndra2Data)
    729                                 //                      string DataSubTypeInt = DataSubType
    730                                 //                      SVAR QvecLookup = root:Packages:Irena:MultiSamplePlot:QvecLookupUSAXS
    731                                 //                      SVAR ErrorLookup = root:Packages:Irena:MultiSamplePlot:ErrorLookupUSAXS
    732                                 //                      SVAR dQLookup = root:Packages:Irena:MultiSamplePlot:dQLookupUSAXS
    733                                 //                      //string QvecLookup="R_Int=R_Qvec;BL_R_Int=BL_R_Qvec;SMR_Int=SMR_Qvec;DSM_Int=DSM_Qvec;USAXS_PD=Ar_encoder;Monitor=Ar_encoder;"
    734                                 //                      //string ErrorLookup="R_Int=R_Error;BL_R_Int=BL_R_error;SMR_Int=SMR_Error;DSM_Int=DSM_error;"
    735                                 //                      // string dQLookup="SMR_Int=SMR_dQ;DSM_Int=DSM_dQ;"
    736                                 //                      string DataSubTypeQvec = StringByKey(DataSubTypeInt, QvecLookup,"=",";")
    737                                 //                      string DataSubTypeError = StringByKey(DataSubTypeInt, ErrorLookup,"=",";")
    738                                 //                      string DataSubTypedQ = StringByKey(DataSubTypeInt, dQLookup,"=",";")
    739                                 //                      IntensityWaveName = DataSubTypeInt
    740                                 //                      QWavename = DataSubTypeQvec
    741                                 //                      ErrorWaveName = DataSubTypeError
    742                                 //                      dQWavename = DataSubTypedQ
    743                                 //              elseif(useResults)
    744                                 //                      SVAR SelectedResultsTool = root:Packages:Irena:MultiSamplePlot:SelectedResultsTool
    745                                 //                      SVAR SelectedResultsType = root:Packages:Irena:MultiSamplePlot:SelectedResultsType
    746                                 //                      SVAR ResultsGenerationToUse = root:Packages:Irena:MultiSamplePlot:ResultsGenerationToUse
    747                                 //                      //follow IR2S_CallWithPlottingToolII
    748                                 //                      if(stringmatch(ResultsGenerationToUse,"Latest"))
    749                                 //                                      DFREF TestFldr=$(DataFolderName)
    750                                 //                                      TempStr = GrepList(stringfromList(1,RemoveEnding(DataFolderDir(2, TestFldr),";\r"),":"), SelectedResultsType,0,",")
    751                                 //                                      //and need to find the one with highest generation number.
    752                                 //                                      result = stringFromList(0,TempStr,",")
    753                                 //                                      For(j=1;j<ItemsInList(TempStr,",");j+=1)
    754                                 //                                              tempStr2=stringFromList(j,TempStr,",")
    755                                 //                                              if(str2num(StringFromList(ItemsInList(result,"_")-1, result, "_"))<str2num(StringFromList(ItemsInList(tempStr2,"_")-1, tempStr2, "_")))
    756                                 //                                                      result = tempStr2
    757                                 //                                              endif
    758                                 //                                      endfor
    759                                 //                                      IntensityWaveName = result                              //this is intensity wave name
    760                                 //                                      tempStr2 = removeending(result, "_"+StringFromList(ItemsInList(result,"_")-1, result, "_"))
    761                                 //                                      //for some (Modeling II there are two x-wave options, need to figure out which one is present...
    762                                 //                                      TempXName=StringByKey(tempStr2, ResultsDataTypesLookup  , ":", ";")
    763                                 //                                      TempXName=RemoveEnding(TempXName , ",")+","
    764                                 //                                      if(ItemsInList(TempXName,",")>1)
    765                                 //                                              j=0
    766                                 //                                              Do
    767                                 //                                                      tempStr3=stringFromList(j,TempXName,",")
    768                                 //                                                      if(stringmatch(DataFolderDir(2, TestFldr), "*"+tempStr3+"_"+StringFromList(ItemsInList(result,"_")-1, result, "_")+"*" ))
    769                                 //                                                              TempXName=tempStr3
    770                                 //                                                              break
    771                                 //                                                      endif
    772                                 //                                                      j+=1
    773                                 //                                              while(j<ItemsInList(TempXName,","))     
    774                                 //                                      endif
    775                                 //                                      TempXName=RemoveEnding(TempXName , ",")
    776                                 //                                      QWavename = TempXName+"_"+StringFromList(ItemsInList(result,"_")-1, result, "_")                        //this is X wave name
    777                                 //                                      ErrorWaveName = ""
    778                                 //                                      dQWavename = ""
    779                                 //                                     
    780                                 //                              else    //known result we want to use... It should exist (guarranteed by prior code)
    781                                 //                                      DFREF TestFldr=$(DataFolderName)
    782                                 //                                      IntensityWaveName = SelectedResultsType+ResultsGenerationToUse
    783                                 //                                      TempXName=StringByKey(SelectedResultsType, ResultsDataTypesLookup  , ":", ";")
    784                                 //                                      TempXName=RemoveEnding(TempXName , ",")+","
    785                                 //                                      if(ItemsInList(TempXName,",")>1)
    786                                 //                                              j=0
    787                                 //                                              Do
    788                                 //                                                      tempStr3=stringFromList(j,TempXName,",")
    789                                 //                                                      if(stringmatch(DataFolderDir(2, TestFldr), "*"+tempStr3+ResultsGenerationToUse+"*" ))
    790                                 //                                                              TempXName=tempStr3+ResultsGenerationToUse
    791                                 //                                                              break
    792                                 //                                                      endif
    793                                 //                                                      j+=1
    794                                 //                                              while(j<ItemsInList(TempXName,","))     
    795                                 //                                      endif
    796                                 //                                      TempXName=RemoveEnding(TempXName , ",")
    797                                 //                                      QWavename = TempXName+ResultsGenerationToUse
    798                                 //                                      ErrorWaveName = ""
    799                                 //                                      dQWavename = ""
    800                                 //                              endif
    801                                 //              else
    802                                 //                      //these are generic data...
    803                                 //                      SVAR genericXgrepString=root:Packages:Irena:MultiSamplePlot:genericXgrepString
    804                                 //                      SVAR genericYgrepString=root:Packages:Irena:MultiSamplePlot:genericYgrepString
    805                                 //                      SVAR genericEgrepString=root:Packages:Irena:MultiSamplePlot:genericEgrepString
    806                                 //                      DFREF TestFldr=$(DataFolderName)
    807                                 //                      string ListOfWavesStr=DataFolderDir(2, TestFldr)
    808                                 //                      ListOfWavesStr = removeListItem(0,ListOfWavesStr,":")
    809                                 //                      ListOfWavesStr = ReplaceString("\r", ListOfWavesStr, "")
    810                                 //                      ListOfWavesStr = ReplaceString(",", ListOfWavesStr, ";")
    811                                 //                      IntensityWaveName=StringFromList(0,GrepList(ListOfWavesStr, genericYgrepString ))
    812                                 //                      QWavename = StringFromList(0,GrepList(ListOfWavesStr, genericXgrepString ))
    813                                 //                      if(strlen(genericEgrepString)>0)
    814                                 //                              ErrorWaveName = StringFromList(0,GrepList(ListOfWavesStr, genericEgrepString ))
    815                                 //                      else
    816                                 //                              ErrorWaveName=""
    817                                 //                      endif
    818                                 //              endif
    819706                Wave/Z SourceIntWv=$(DataFolderName+IntensityWaveName)
    820707                Wave/Z SourceQWv=$(DataFolderName+QWavename)
  • trunk/User Procedures/Irena/IR3_SimpleFits.ipf

    r903 r912  
    9696        string EUserLookup=""
    9797        IR2C_AddDataControls("Irena:SimpleFits","IR3J_SimpleFitsPanel","DSM_Int;M_DSM_Int;SMR_Int;M_SMR_Int;","AllCurrentlyAllowedTypes",UserDataTypes,UserNameString,XUserLookup,EUserLookup, 0,1, DoNotAddControls=1)
    98         IR3C_MultiAppendControls("Irena:SimpleFits","IR3J_SimpleFitsPanel", "IR3J_CopyAndAppendData",1,0)
     98        IR3C_MultiAppendControls("Irena:SimpleFits","IR3J_SimpleFitsPanel", "IR3J_CopyAndAppendData","",1,0)
    9999        //hide what is not needed
    100100        checkbox UseResults, disable=1
  • trunk/User Procedures/Irena/IRB1_bioSAXS.ipf

    r911 r912  
    513513        string EUserLookup=""
    514514        IR2C_AddDataControls("Irena:BioSAXSDataMan","IRB1_DataManipulationPanel","DSM_Int;M_DSM_Int;SMR_Int;M_SMR_Int;","AllCurrentlyAllowedTypes",UserDataTypes,UserNameString,XUserLookup,EUserLookup, 0,1, DoNotAddControls=1)
    515         IR3C_MultiAppendControls("Irena:BioSAXSDataMan","IRB1_DataManipulationPanel", "IRB1_DataManAppendOneDataSet",1,0)
     515        IR3C_MultiAppendControls("Irena:BioSAXSDataMan","IRB1_DataManipulationPanel", "IRB1_DataManAppendOneDataSet","",1,0)
    516516        TitleBox Dataselection pos={10,25}
    517517        ListBox DataFolderSelection pos={4,135},size={250,540}
     
    14901490        string EUserLookup=""
    14911491        IR2C_AddDataControls("Irena:PDDFInterface","IRB1_PDDFInterfacePanel","DSM_Int;M_DSM_Int;SMR_Int;M_SMR_Int;","AllCurrentlyAllowedTypes",UserDataTypes,UserNameString,XUserLookup,EUserLookup, 0,1, DoNotAddControls=1)
    1492         IR3C_MultiAppendControls("Irena:PDDFInterface","IRB1_PDDFInterfacePanel", "IRB1_PDDFAppendOneDataSet",1,0)
     1492        IR3C_MultiAppendControls("Irena:PDDFInterface","IRB1_PDDFInterfacePanel", "IRB1_PDDFAppendOneDataSet","",1,0)
    14931493        TitleBox Dataselection pos={10,25}
    14941494        ListBox DataFolderSelection pos={4,135},size={250,540}
     
    27512751        Wave/Z pddfModelQvector         =root:Packages:Irena:PDDFInterface:pddfModelQvector
    27522752        Wave/Z pddfModelIntensity       =root:Packages:Irena:PDDFInterface:pddfModelIntensity
    2753         Wave/Z pddfModelError                   =root:Packages:Irena:PDDFInterface:pddfModelError
     2753        //Wave/Z pddfModelError                 =root:Packages:Irena:PDDFInterface:pddfModelError
    27542754        Wave/Z pddfRadius                               =root:Packages:Irena:PDDFInterface:pddfRadius
    27552755        Wave/Z pddfPr                                   =root:Packages:Irena:PDDFInterface:pddfPr
     
    27622762        Duplicate/O pddfPr, tempCurrentResultPdf
    27632763        Duplicate/O CurrentResultsGamma, tempCurrentResultsGamma
    2764         Duplicate/O pddfModelError, tempPDDFErrors
     2764        //Duplicate/O pddfModelError, tempPDDFErrors
    27652765        Duplicate/O pddfInputQVector, tempQ_vec
    27662766        Duplicate/O ChisquaredWave, tempCurrentChiSq
     
    27872787        tempname="PDDFDistFunction_"+num2str(ii)
    27882788        Duplicate /O tempCurrentResultPdf, $tempname
    2789         tempname="PDDFErrors_"+num2str(ii)
    2790         Duplicate /O tempPDDFErrors, $tempname
     2789        //tempname="PDDFErrors_"+num2str(ii)
     2790        //Duplicate /O tempPDDFErrors, $tempname
    27912791        tempname="PDDFDistances_"+num2str(ii)
    27922792        Duplicate /O tempR_distribution, $tempname
Note: See TracChangeset for help on using the changeset viewer.