Ignore:
Timestamp:
Apr 8, 2010 1:28:21 PM (13 years ago)
Author:
srkline
Message:

Corrections to NSORT and CombineFiles? to work with XML i/o.

CombineFiles? table hook now is properly active only in the upper table.

Some file filtering functions have been streamlined, but are still somewhat redundant, and could be consolidated. These are whenever listing of reduced files is requested (filter out what is known to be something else)

Commented out print statements from XML reader.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/NSORT.ipf

    r665 r670  
    14211421// run numbers and a run prefix 
    14221422// 
     1423// it is assumed that you are combining data from the current reduction session, 
     1424// so that the XML y/n hasn't changed. 
    14231425// 
    14241426Function Set3NSORTFiles(low,med,hi,pref) 
     
    14271429         
    14281430        //make strings from the numbers 
    1429         String absStr="" 
     1431        String absStr="",ext 
    14301432        Variable popNum 
    14311433        DoWindow/F NSORT_Panel 
     
    14341436        SVAR medHiQPopStr = root:myGlobals:NSORT:gDataPopList_3 
    14351437         
    1436         String ext = ".ABS" 
     1438        NVAR useXMLOutput = root:Packages:NIST:gXML_Write 
     1439        if(useXMLOutput) 
     1440                ext = ".ABSx" 
     1441        else 
     1442                ext = ".ABS" 
     1443        endif 
    14371444         
    14381445        //lowQ menu 
    14391446        absStr = pref+ThreeDigitString(low)+ext 
    1440         popNum = 1+WhichListItem(absStr,lowQPopStr,";",0) 
     1447        popNum = WhichListItem(absStr,lowQPopStr,";",0) 
     1448        if(popNum == -1) 
     1449                Abort "Could not find file: " + absStr +" aborting..." 
     1450        endif 
     1451        popNum += 1             // add 1 to get the item number 
    14411452        PopupMenu popup_1,win=NSORT_Panel,mode=(popNum) 
     1453         
    14421454        //medQ (a different list for the popup) 
    14431455        absStr = pref+ThreeDigitString(med)+ext 
    1444         popNum = 1+WhichListItem(absStr,medHiQPopStr,";",0) 
     1456        popNum = WhichListItem(absStr,medHiQPopStr,";",0) 
     1457        if(popNum == -1) 
     1458                Abort "Could not find file: "+absStr+" aborting..." 
     1459        endif 
     1460        popNum += 1             // add 1 to get the item number 
    14451461        PopupMenu popup_2,win=NSORT_Panel,mode=(popNum) 
     1462         
     1463         
    14461464        //highQ (same pop list as medQ) 
    14471465        if(hi != 0) 
    14481466                absStr = pref+ThreeDigitString(hi)+ext 
    1449                 popNum = 1+WhichListItem(absStr,medHiQPopStr,";",0) 
     1467                popNum = WhichListItem(absStr,medHiQPopStr,";",0) 
     1468                if(popNum == -1) 
     1469                        Abort "Could not find file: "+absStr+" aborting..." 
     1470                endif 
     1471                popNum += 1             // add 1 to get the item number 
    14501472                PopupMenu popup_3,win=NSORT_Panel,mode=(popNum) 
    14511473        else 
     
    14861508        Make/O/D/N=0 $"root:myGlobals:CombineTable:IsTrans" 
    14871509 
    1488 //      If(V_Flag==0) 
    1489                 BuildCombineTableWindow() 
    1490                 ModifyTable/W=CombinePanel#FilesToCombine width(:myGlobals:CombineTable:SDD)=40 
    1491                 ModifyTable/W=CombinePanel#FilesToCombine width(:myGlobals:CombineTable:Labels)=180 
    1492                  
    1493                 ModifyTable/W=CombinePanel#FilesToCombine width(Point)=0                //JUN04, remove point numbers - confuses users since point != run 
    1494 //      Endif 
     1510 
     1511        AppendToTable/W=CombinePanel#GroupedFiles root:myGlobals:CombineTable:Labels, root:myGlobals:CombineTable:SDD, root:myGlobals:CombineTable:RunNumber 
     1512 
     1513        ModifyTable/W=CombinePanel#GroupedFiles width(:myGlobals:CombineTable:SDD)=40 
     1514        ModifyTable/W=CombinePanel#GroupedFiles width(:myGlobals:CombineTable:Labels)=180 
     1515        ModifyTable/W=CombinePanel#GroupedFiles width(Point)=0          //JUN04, remove point numbers - confuses users since point != run 
     1516 
    14951517 
    14961518        //get a list of all files in the folder, some will be junk version numbers that don't exist      
     
    15541576        Make/O/T/N=0 $"root:myGlobals:CombineTable:Prefix" 
    15551577        Make/O/T/N=0 $"root:myGlobals:CombineTable:SaveName" 
    1556         MakeTableToCombine() 
    1557  
     1578         
     1579        SetDataFolder root:myGlobals:CombineTable 
     1580         
     1581        // make the second table 
     1582        AppendToTable/W=CombinePanel#RunNumbersToCombine LowRun,MediumRun,HighRun,Prefix,SaveName 
     1583 
     1584        SetDataFolder root: 
    15581585End 
    15591586 
     
    15751602                ii-=1 
    15761603        while(ii>=0) 
    1577         return(0) 
    1578 End 
    1579  
    1580 Function MakeTabletoCombine() 
    1581  
    1582         Wave low = $"root:myGlobals:CombineTable:LowRun" 
    1583         Wave medium = $"root:myGlobals:CombineTable:MediumRun" 
    1584         Wave high = $"root:myGlobals:CombineTable:HighRun" 
    1585         Wave/T prefix = $"root:myGlobals:CombineTable:Prefix" 
    1586         Wave/T saveName = $"root:myGlobals:CombineTable:SaveName" 
    1587  
    1588 //      DoWindow/F ToCombine 
    1589 //      if(V_flag==0) 
    1590 //              edit Low,Medium,High,Prefix,SaveName as "Run Numbers to Combine" 
    1591 //              DoWindow/C ToCombine 
    1592 //      endif 
    1593 //      AutoPositionWindow/M=1/R=CombineTable toCombine 
    1594         AppendToTable/W=CombinePanel#RunNumbersToCombine Low,Medium,High,Prefix,SaveName 
    1595          
    1596         ///// 
    1597 //      SetWindow kwTopWin hook=CombineTableHook, hookevents=1  // mouse down events 
    1598          
    1599 end 
    1600  
    1601 Function BuildCombineTableWindow() 
    1602         Wave/T Filenames = $"root:myGlobals:CombineTable:Filenames" 
    1603         Wave/T Labels = $"root:myGlobals:CombineTable:Labels" 
    1604         Wave SDD = $"root:myGlobals:CombineTable:SDD" 
    1605         Wave/T suffix = $"root:myGlobals:CombineTable:Suffix" 
    1606         Wave runnum = $"root:myGlobals:CombineTable:RunNumber" 
    1607         Wave isTrans = $"root:myGlobals:CombineTable:IsTrans" 
    1608          
    1609 //      Edit Filenames, Labels, DateAndTime, SDD, Lambda, CntTime, TotCnts, CntRate, Transmission, Thickness, XCenter, YCenter, NumAttens as "Files to Combine" 
    1610 //      Edit Labels, SDD, runNum as "Files to Combine" 
    1611         AppendToTable/W=CombinePanel#FilesToCombine Labels, SDD, runNum 
    1612          
    1613         SetWindow kwTopWin hook=CombineTableHook, hookevents=1  // mouse down events 
    1614  
    1615 //      String name="CombineTable" 
    1616 //      DoWindow/C $name 
    16171604        return(0) 
    16181605End 
     
    17381725                WriteNSORTFileButton("") 
    17391726                 
     1727                Print "wrote file : ",path+saveName[ii] 
    17401728                ii+=1 
    17411729        while(ii<num) 
     
    17471735 
    17481736 
    1749 // Commentized lines here are incomplete - and NON-FUNCTIONING 
     1737// only respond to clicks in the subwindow (table) rather than everywhere. Hooks can't be set for subwindows 
    17501738// 
    17511739//// Window hook example: 
     1740//  WINDOW:CombinePanel;HCSPEC:CombinePanel#GroupedFiles;EVENT:mouseup;MOUSEX:152;MOUSEY:143;TICKS:7722029;MODIFIERS:0; 
    17521741// 
    17531742Function CombineTableHook(infoStr) 
    17541743        String infoStr 
    17551744        String event= StringByKey("EVENT",infoStr) 
     1745        String subwin = StringByKey("HCSPEC",infoStr) 
     1746//      Print subwin 
     1747//      Print infoStr 
    17561748//      Print "EVENT= ",event 
    1757         strswitch(event) 
    1758                 case "mousedown": 
    1759                         Variable xpix= NumberByKey("MOUSEX",infoStr) 
    1760                         Variable ypix= NumberByKey("MOUSEY",infoStr) 
    1761                         Variable modif= NumberByKey("MODIFIERS",infoStr) 
    1762                         //print modif 
    1763                         if(modif & 2^1)         //bit 1 set, shift key is down 
    1764                                 PopupContextualMenu/C=(xpix, ypix) "combine;" 
    1765                                 strswitch(S_selection) 
    1766                                         case "combine": 
    1767                                                 //Print "combine the files" 
    1768                                                 SendSelectionToTable() 
    1769                                                 break 
    1770         //                              case "no": 
    1771         //                                      break 
    1772         //                              case "maybe": 
    1773         //                                      // do something because "maybe" was chosen 
    1774         //                                      break 
    1775                                 endswitch               //on selection 
    1776                         endif 
    1777         endswitch       // on event 
    1778          
     1749        if(cmpstr(subwin,"CombinePanel#GroupedFiles")==0) 
     1750                strswitch(event) 
     1751                        case "mousedown": 
     1752                                Variable xpix= NumberByKey("MOUSEX",infoStr) 
     1753                                Variable ypix= NumberByKey("MOUSEY",infoStr) 
     1754                                Variable modif= NumberByKey("MODIFIERS",infoStr) 
     1755                                //print modif 
     1756                                if(modif & 2^1)         //bit 1 set, shift key is down 
     1757                                        PopupContextualMenu/C=(xpix, ypix) "combine;" 
     1758                                        strswitch(S_selection) 
     1759                                                case "combine": 
     1760                                                        //Print "combine the files" 
     1761                                                        SendSelectionToTable() 
     1762                                                        break 
     1763                                        endswitch               //on selection 
     1764                                endif 
     1765                endswitch       // on event 
     1766        endif 
    17791767        return 0 
    17801768End 
     
    18081796        endif 
    18091797         
    1810         GetSelection table,CombinePanel#FilesToCombine,3 
    1811         Print V_startRow, V_endRow 
     1798        GetSelection table,CombinePanel#GroupedFiles,3 
     1799//      Print V_startRow, V_endRow 
    18121800         
    18131801        //prompt for combined name, give the user a chance to cancel 
     
    19051893        Edit/W=(20,54,368,249)/HOST=#  
    19061894        ModifyTable format=1,width=0 
    1907         RenameWindow #,FilesToCombine 
     1895        RenameWindow #,GroupedFiles 
    19081896        SetActiveSubwindow ## 
    19091897        Edit/W=(20,263,634,455)/HOST=#  
     
    19111899        RenameWindow #,RunNumbersToCombine 
    19121900        SetActiveSubwindow ## 
     1901        SetWindow kwTopWin hook=CombineTableHook, hookevents=1  // mouse down events 
    19131902EndMacro 
    19141903 
Note: See TracChangeset for help on using the changeset viewer.