Changeset 661 for sans


Ignore:
Timestamp:
Apr 5, 2010 4:29:46 PM (13 years ago)
Author:
srkline
Message:

Added routines to enforce short enough names to keep the Igor-generated object names to less than 31 characters (once I add extensions). Changed the ExecuteProtocol? to automatically trim text from the HFIR data file names, since they are ridiculously long.

Added routines in 1D Data loader (and XML loader) to enforce 25 characters, in the case that a long file name was generated by another program.

If XML files are generated, "x" is tagged at the end of the suffix, as in ".ABSx".
Added menu items to each package menu for feedback, movies, and updates

Made sure that new table entry of SamplePosition? did not cause compile errors with other facility templates. right now, this is NCNR-specific, but easity added to other facilities if they provide the stub. then the bits of the table could be added.

Location:
sans/Dev/trunk/NCNR_User_Procedures
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Analysis/SA_includes_v400.ipf

    r610 r661  
    5959End 
    6060 
    61 Function OpenTracTicketPage() 
    62         DoAlert 1,"Your web browser will open to a page where you can submit your bug report or feature request. OK?" 
    63         if(V_flag==1) 
    64                 BrowseURL "http://danse.chem.utk.edu/trac/newticket" 
    65         endif 
    66 End 
    67  
    68 Function OpenHelpMoviePage() 
    69         DoAlert 1,"Your web browser will open to a page where you can view help movies. OK? (You must have QuickTime installed)" 
    70         if(V_flag==1) 
    71                 BrowseURL "ftp://webster.ncnr.nist.gov/pub/sans/kline/movies/" 
    72                 // Andrew has set up a http page too. Try to use this in the future 
    73                 //BrowseURL "http://www.ncnr.nist.gov/programs/sans/data/movies/reduction_analysis_movies.html" 
    74         endif 
    75 End 
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Installer/CheckVersionFTP.ipf

    r651 r661  
    8585        return 
    8686End 
     87 
     88Function OpenTracTicketPage() 
     89        DoAlert 1,"Your web browser will open to a page where you can submit your bug report or feature request. OK?" 
     90        if(V_flag==1) 
     91                BrowseURL "http://danse.chem.utk.edu/trac/newticket" 
     92        endif 
     93End 
     94 
     95Function OpenHelpMoviePage() 
     96        DoAlert 1,"Your web browser will open to a page where you can view help movies. OK? (You must have QuickTime installed)" 
     97        if(V_flag==1) 
     98//              BrowseURL "ftp://webster.ncnr.nist.gov/pub/sans/kline/movies/" 
     99                // Andrew has set up a http page too. Try to use this in the future 
     100                BrowseURL "http://www.ncnr.nist.gov/programs/sans/data/movies/reduction_analysis_movies.html" 
     101        endif 
     102End 
  • sans/Dev/trunk/NCNR_User_Procedures/Common/NIST_XML_v40.ipf

    r658 r661  
    6464                                         
    6565                                                SetDataFolder xmlDataSetFolder   
    66                                          
    67                                                 basestr = CleanupName(getXMLDataSetTitle(xmlDataSetFolder,j),0) 
     66                                                //                      enforce a short enough name here to keep Igor objects < 31 chars 
     67                                                basestr = ShortFileNameString(CleanupName(getXMLDataSetTitle(xmlDataSetFolder,j),0)) 
     68                                                baseStr = CleanupName(baseStr,0)                //in case the user added odd characters 
    6869                                                 
    6970                                                //String basestr = ParseFilePath(3, ParseFilePath(5,filestr,":",0,0),":",0,0)                            
  • sans/Dev/trunk/NCNR_User_Procedures/Common/Packages/PlotManager/PlotUtilsMacro_v40.ipf

    r660 r661  
    115115 
    116116                String basestr 
    117                 if (!cmpstr(outstr, "")) 
    118                         //Outstr = "", cmpstr returns 0 
    119                         baseStr = CleanupName(S_fileName,0) 
     117                if (!cmpstr(outstr, ""))                //Outstr = "", cmpstr returns 0 
     118//                      enforce a short enough name here to keep Igor objects < 31 chars 
     119                        baseStr = ShortFileNameString(CleanupName(S_fileName,0)) 
     120                        baseStr = CleanupName(baseStr,0)                //in case the user added odd characters 
     121                        //baseStr = CleanupName(S_fileName,0) 
    120122                else 
    121                         baseStr = outstr 
     123                        baseStr = outstr                        //for output, hopefully correct length as passed in 
    122124                endif 
    123125         
     
    885887// fancy use of optional parameters 
    886888//  
    887 // enforce short file names (26 characters) 
     889// enforce short file names (25 characters) 
    888890Function/S DoSaveFileDialog(msg,[fname,suffix]) 
    889891        String msg,fname,suffix 
     
    901903         
    902904        String outputPath,tmpName,testStr 
    903         Variable badLength=0,maxLength=26,l1,l2 
     905        Variable badLength=0,maxLength=25,l1,l2 
    904906         
    905907         
     
    908910        do 
    909911                badLength=0 
    910                 Open/D/M=msg/T="????" refNum as tmpName 
     912                Open/D/M=msg/T="????" refNum as tmpName         //OS will allow 255 characters, but then I can't read it back in! 
    911913                outputPath = S_fileName 
    912914                 
     
    917919                if(strlen(testStr) > maxLength) 
    918920                        badlength = 1 
    919                         DoAlert 2,"File name is too long. Is\r"+testStr[0,25]+"\rOK?" 
     921                        DoAlert 2,"File name is too long. Is\r"+testStr[0,maxLength-1]+"\rOK?" 
    920922                        if(V_flag==3) 
    921923                                outputPath = "" 
     
    938940        return outputPath 
    939941End 
     942 
     943// returns a shortened file name (26 characters max) so that the loader 
     944// won't try to create Igor objects that have names that are longer than 31 
     945//  
     946Function/S ShortFileNameString(inStr) 
     947        String inStr 
     948 
     949        String outStr="" 
     950        Variable maxLength=25 
     951        Variable nameTooLong=0 
     952         
     953        if(strlen(inStr) <= maxLength) 
     954                return (inStr)          //length OK 
     955        else 
     956                do 
     957                        nameTooLong = 0 
     958                         
     959                        DoAlert 1,"File name is too long. Is\r"+inStr[0,maxLength-1]+"\rOK?" 
     960                        if(V_flag==1)                   //my suggested name is OK, so trim the output 
     961                                outStr = inStr[0,maxLength-1] 
     962                                //Print "modified  ",outStr 
     963                                return(outStr) 
     964                        endif 
     965         
     966         
     967                        if(V_flag == 2)         //not OK, do something about it 
     968                                String/G root:myGlobals:gShortNameStr = inStr[0,maxLength-1] 
     969                                SVAR newStr = root:myGlobals:gShortNameStr 
     970                                 
     971                                DoWindow/F ShorterNameInput             //it really shouldn't exist... 
     972                                if(V_flag==0) 
     973                                        NewPanel /W=(570,152,915,280) as "Enter a Shorter Name" 
     974                                        DoWindow/C ShorterNameInput 
     975                                        SetDrawLayer UserBack 
     976                                        TitleBox title0,pos={35,8},size={261,20},title=" Enter a shorter file name. It must be 25 characters or less " 
     977                                        TitleBox title0,fStyle=1 
     978                                        SetVariable setvar0,pos={21,52},size={300,15},title="New name",value= _STR:newStr 
     979                                        SetVariable setvar0,proc=ShorterNameSetVarProc 
     980                                        SetVariable setvar0 valueBackColor=(65535,49151,49151) 
     981                                        Button button0,pos={259,87},size={60,20},title="Done" 
     982                                        Button button0,proc=ShorterNameDoneButtonProc 
     983                                endif 
     984                                 
     985                                PauseForUser ShorterNameInput 
     986                                 
     987                                // this really should force a good name, but there could be errors that I'm not catching 
     988                                Print newStr, strlen(newStr) 
     989                                nameTooLong = 0 
     990                        endif 
     991                 
     992                while (nameTooLong) 
     993                 
     994                return(newStr) 
     995                 
     996        endif 
     997                 
     998End 
     999 
     1000 
     1001// for the ShortFileNameString() - PauseForUser to get a shorter file name 
     1002Function ShorterNameSetVarProc(sva) : SetVariableControl 
     1003        STRUCT WMSetVariableAction &sva 
     1004                 
     1005        switch( sva.eventCode ) 
     1006                case 1: // mouse up 
     1007                case 2: // Enter key 
     1008                case 3: // Live update 
     1009                                String sv = sva.sval 
     1010                                if( strlen(sv) > 25 ) 
     1011                                        sv= sv[0,24] 
     1012                                        SetVariable  $(sva.ctrlName),win=$(sva.win),value=_STR:sv 
     1013                                        SetVariable setvar0 valueBackColor=(65535,49151,49151) 
     1014                                        Beep 
     1015                                else 
     1016                                        SetVariable setvar0 valueBackColor=(65535,65535,65535) 
     1017                                endif 
     1018                                break 
     1019                endswitch 
     1020        return 0 
     1021End 
     1022 
     1023// for the ShortFileNameString() - PauseForUser to get a shorter file name 
     1024Function ShorterNameDoneButtonProc(ba) : ButtonControl 
     1025        STRUCT WMButtonAction &ba 
     1026         
     1027        String win = ba.win 
     1028 
     1029        switch (ba.eventCode) 
     1030                case 2: 
     1031                        SVAR newStr = root:myGlobals:gShortNameStr 
     1032                        ControlInfo setvar0 
     1033                        newStr = S_value 
     1034                        DoWindow/K ShorterNameInput 
     1035                         
     1036                        break 
     1037        endswitch 
     1038 
     1039        return 0 
     1040End 
     1041 
    9401042 
    9411043// a function common to many panels, so put the basic version here that simply 
     
    10431145        list = RemoveFromList(tmp, list  ,";") 
    10441146         
     1147        //functions included in Nika 
     1148        tmp = FunctionList("NI1*",";","KIND:10") 
     1149        list = RemoveFromList(tmp, list  ,";") 
     1150        tmp = FunctionList("TransAx_*",";","KIND:10") 
     1151        list = RemoveFromList(tmp, list  ,";") 
     1152        tmp = FunctionList("TransformAxis*",";","KIND:10") 
     1153        list = RemoveFromList(tmp, list  ,";") 
     1154        tmp = FunctionList("erfForNormal*",";","KIND:10") 
     1155        list = RemoveFromList(tmp, list  ,";") 
     1156 
     1157        // functions in Indra (USAXS) 
     1158        tmp = FunctionList("IN2Q_*",";","KIND:10") 
     1159        list = RemoveFromList(tmp, list  ,";") 
     1160        tmp = FunctionList("IN3_*",";","KIND:10") 
     1161        list = RemoveFromList(tmp, list  ,";") 
     1162         
    10451163//      tmp = FunctionList("*X",";","KIND:4")           //XOPs, but these shouldn't show up if KIND:10 is used initially 
    10461164//      Print "X* = ",tmp 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/CatVSTable.ipf

    r656 r661  
    102102                ModifyTable width(:myGlobals:CatVSHeaderInfo:Field)=50 
    103103                ModifyTable width(:myGlobals:CatVSHeaderInfo:MCR)=50 
    104                 ModifyTable width(:myGlobals:CatVSHedaerInfo:Pos)=30 
    105104#if (exists("ILL_D22")==6) 
    106105                ModifyTable width(:myGlobals:CatVSHeaderInfo:Reactorpower)=50           //activate for ILL, June 2008 
     
    109108#if (exists("NCNR")==6) 
    110109                ModifyTable width(:myGlobals:CatVSHeaderInfo:nGuides)=40 
     110                ModifyTable width(:myGlobals:CatVSHedaerInfo:Pos)=30 
    111111#endif 
    112112 
     
    215215#if (exists("ILL_D22")==6) 
    216216        Wave GReactPow = $"root:myGlobals:CatVSHeaderInfo:ReactorPower"         //activate for ILL June 2008 ( and the sort line too) 
    217         Sort GSuffix, GSuffix, GFilenames, GLabels, GDateTime, GSDD, GLambda, GCntTime, GTotCnts, GCntRate, GTransmission, GThickness, GXCenter, GYCenter, GNumAttens,GRunNumber,GIsTrans,GRot,GTemp,GField,GMCR,GPos,GReactPow 
     217        Sort GSuffix, GSuffix, GFilenames, GLabels, GDateTime, GSDD, GLambda, GCntTime, GTotCnts, GCntRate, GTransmission, GThickness, GXCenter, GYCenter, GNumAttens,GRunNumber,GIsTrans,GRot,GTemp,GField,GMCR,GReactPow 
    218218#endif 
    219219 
    220220#if (exists("NCNR")==6) 
    221221        //      Sort GSuffix, GSuffix, GFilenames, GLabels, GDateTime, GSDD, GLambda, GCntTime, GTotCnts, GCntRate, GTransmission, GThickness, GXCenter, GYCenter, GNumAttens,GRunNumber,GIsTrans,GRot,GTemp,GField,GMCR 
    222         Sort GSuffix, GSuffix, GFilenames, GLabels, GDateTime, GSDD, GLambda, GCntTime, GTotCnts, GCntRate, GTransmission, GThickness, GXCenter, GYCenter, GNumAttens,GRunNumber,GIsTrans,GRot,GTemp,GField,GMCR,gNumGuides 
     222        Sort GSuffix, GSuffix, GFilenames, GLabels, GDateTime, GSDD, GLambda, GCntTime, GTotCnts, GCntRate, GTransmission, GThickness, GXCenter, GYCenter, GNumAttens,GRunNumber,GIsTrans,GRot,GTemp,GField,GMCR,GPos,gNumGuides 
    223223#else 
    224224//      Sort GSuffix, GSuffix, GFilenames, GLabels, GDateTime, GSDD, GLambda, GCntTime, GTotCnts, GCntRate, GTransmission, GThickness, GXCenter, GYCenter, GNumAttens,GRunNumber,GIsTrans,GRot,GTemp,GField,GMCR 
     
    399399        GMCR[lastPoint]  = getMonitorCount(fname)/ctime         //total monitor count / total count time 
    400400 
    401         //Sample Position 
    402         InsertPoints lastPoint,1,GPos 
    403         GPos[lastPoint] = getSamplePosition(fname) 
     401 
    404402 
    405403#if (exists("ILL_D22")==6) 
     
    413411        InsertPoints lastPoint,1,GNumGuides 
    414412        GNumGuides[lastPoint]  = numGuides(getSourceToSampleDist(fname)) 
     413         
     414        //Sample Position 
     415        InsertPoints lastPoint,1,GPos 
     416        GPos[lastPoint] = getSamplePosition(fname) 
    415417#endif 
    416418 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/Menu.ipf

    r612 r661  
    4242        End 
    4343        "-" 
     44        "Feedback or Bug Report",OpenTracTicketPage() 
     45        "Open Help Movie Page",OpenHelpMoviePage() 
    4446        "Check for Updates",CheckForLatestVersion() 
    4547//      Submenu "Utility Routines" 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/SANS/ProtocolAsPanel.ipf

    r641 r661  
    18701870#if (exists("QUOKKA")==6) 
    18711871                        newFileName = ReplaceString(".nx.hdf", tempFilename, "") 
     1872#elif (exists("HFIR")==6) 
     1873                        newFileName = ReplaceString(".xml",textPath[0],"")              //removes 4 chars 
     1874                        newFileName = ReplaceString("SANS",newFileName,"")              //removes 4 more chars = 8 
     1875                        newFileName = ReplaceString("exp",newFileName,"")                       //removes 3 more chars = 11 
     1876                        newFileName = ReplaceString("scan",newFileName,"")              //removes 4 more chars = 15, should be enough? 
    18721877#else 
    1873                         newFileName = UpperStr(GetNameFromHeader(textPath[0])) 
     1878                        newFileName = UpperStr(GetNameFromHeader(textPath[0]))          //NCNR data drops here, trims to 8 chars 
    18741879#endif 
    18751880                else 
     
    18901895                endif 
    18911896                 
     1897                // add an "x" to the file extension if the output is XML 
     1898                // currently (2010), only for ABS and AVE (1D) output 
     1899                if( cmpstr(exten,"ABS") == 0 || cmpstr(exten,"AVE") == 0 ) 
     1900                        if(useXMLOutput == 1) 
     1901                                exten += "x" 
     1902                        endif 
     1903                endif 
     1904                                 
    18921905                //Path is catPathName, symbolic path 
    18931906                //if this doesn't exist, a dialog will be presented by setting dialog = 1 
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/USANS/Main_USANS.ipf

    r651 r661  
    3232        "USANS Simulator",Show_UCALC() 
    3333        "-" 
    34         "Feedback or Bug Report",U_OpenTracTicketPage("") 
     34        "Feedback or Bug Report",OpenTracTicketPage() 
     35        "Open Help Movie Page",OpenHelpMoviePage() 
    3536        "Check for Updates",CheckForLatestVersion() 
    3637End 
     
    13081309         
    13091310End 
    1310  
    1311 // 
    1312 Function U_OpenTracTicketPage(ctrlName) 
    1313         String ctrlName 
    1314         DoAlert 1,"Your web browser will open to a page where you can submit your bug report or feature request. OK?" 
    1315         if(V_flag==1) 
    1316                 BrowseURL "http://danse.chem.utk.edu/trac/newticket" 
    1317         endif 
    1318 End 
Note: See TracChangeset for help on using the changeset viewer.