Changeset 2569 for trunk/GSASIIimgGUI.py


Ignore:
Timestamp:
Dec 9, 2016 3:17:43 PM (5 years ago)
Author:
vondreele
Message:

add 'f' or 'g' to maxdigits in FormatValue? in G2py3 - should be revised some more
do a lot of TextCtrl? --> ValidatedTextCtrl? replacements
note that ValidatedTextCtrl? only checks val <= max & not val < max
added tc.event to ValidatedTextCtrl? as some things needed that
G2imgGui - mostly done
G2restrGUI - done
G2pwdGUI - started

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIimgGUI.py

    r2566 r2569  
    109109def UpdateImageData(G2frame,data):
    110110   
    111     def OnPixVal(event):
    112         event.Skip()
    113         Obj = event.GetEventObject()
    114         id = Indx[Obj.GetId()]
    115         try:
    116             data['pixelSize'][id] = min(500,max(10,float(Obj.GetValue())))
    117         except ValueError:
    118             pass
    119         Obj.SetValue('%.3f'%(data['pixelSize'][id]))
    120         G2plt.PlotExposedImage(G2frame,newPlot=True,event=event)
     111    def OnPixVal(invalid,value,tc):
     112        G2plt.PlotExposedImage(G2frame,newPlot=True,event=tc.event)
    121113       
    122114    if G2frame.dataDisplay:
     
    132124    pixSize = wx.FlexGridSizer(0,4,5,5)
    133125    pixLabels = [u' Pixel X-dimension (\xb5m)',u' Pixel Y-dimension (\xb5m)']
    134     Indx = {}
    135126    for i,[pixLabel,pix] in enumerate(zip(pixLabels,data['pixelSize'])):
    136127        pixSize.Add(wx.StaticText(G2frame.dataDisplay,label=pixLabel),0,WACV)
    137         pixVal = wx.TextCtrl(G2frame.dataDisplay,value='%.3f'%(pix),style=wx.TE_PROCESS_ENTER)
    138         Indx[pixVal.GetId()] = i
    139         pixVal.Bind(wx.EVT_TEXT_ENTER,OnPixVal)
    140         pixVal.Bind(wx.EVT_KILL_FOCUS,OnPixVal)
     128        pixVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['pixelSize'],i,nDig=(10,3),
     129            typeHint=float,OnLeave=OnPixVal)
    141130        pixSize.Add(pixVal,0,WACV)
    142131    mainSizer.Add(pixSize,0)
     
    219208        data['range'] = [(0,Imax),[Imin,Imax]]
    220209        masks['Thresholds'] = [(0,Imax),[Imin,Imax]]
    221         MaxSizer.GetChildren()[2].Window.SetValue(str(int(Imax)))   #tricky
    222         MaxSizer.GetChildren()[5].Window.SetValue(str(int(Imin)))   #tricky
     210        MaxSizer.GetChildren()[2].Window.SetValue(Imax)   #tricky
     211        MaxSizer.GetChildren()[5].Window.SetValue(Imin)   #tricky
    223212         
    224213    def OnIntegrate(event):
     
    501490            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    502491       
    503         def OnAzmthOff(event):
    504             event.Skip()
    505             try:
    506                 azmthoff = float(azmthOff.GetValue())
    507                 data['azmthOff'] = azmthoff
    508             except ValueError:
    509                 pass
    510             azmthOff.SetValue("%.2f"%(data['azmthOff']))          #reset in case of error 
    511             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
     492        def OnAzmthOff(invalid,value,tc):
     493            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=tc.event)
    512494       
    513495        comboSizer = wx.BoxSizer(wx.HORIZONTAL)
     
    524506        comboSizer.Add(colSel,0,WACV)
    525507        comboSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Azimuth offset '),0,WACV)
    526         azmthOff = wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.2f" % (data['azmthOff'])),
    527             style=wx.TE_PROCESS_ENTER)
    528         azmthOff.Bind(wx.EVT_TEXT_ENTER,OnAzmthOff)
    529         azmthOff.Bind(wx.EVT_KILL_FOCUS,OnAzmthOff)
     508        azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'azmthOff',nDig=(10,2),
     509            typeHint=float,OnLeave=OnAzmthOff)
    530510        comboSizer.Add(azmthOff,0,WACV)
    531511        return comboSizer
     
    533513    def MaxSizer():
    534514               
    535         def OnMaxVal(event):
    536             event.Skip()
    537             try:
    538                 value = min(data['range'][0][1],int(maxVal.GetValue()))
    539                 if value < data['range'][1][0]+1:
    540                     raise ValueError
    541                 data['range'][1][1] = value
    542             except ValueError:
    543                 pass
    544             maxVal.SetValue('%.0f'%(data['range'][1][1]))
     515        def OnMaxVal(invalid,value,tc):
    545516            DeltOne = data['range'][1][1]-max(0.0,data['range'][0][0])
    546517            sqrtDeltOne = math.sqrt(DeltOne)
    547518            maxSel.SetValue(int(100*sqrtDeltOne/sqrtDeltZero))
    548519            minSel.SetValue(int(100*(data['range'][1][0]/DeltOne)))
    549             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
     520            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=tc.event)
    550521           
    551         def OnMinVal(event):
    552             event.Skip()
    553             try:
    554                 value = int(minVal.GetValue())
    555                 if value > data['range'][1][1]-1:
    556                     raise ValueError
    557                 data['range'][1][0] = value
    558             except ValueError:
    559                 pass
    560             minVal.SetValue('%.0f'%(data['range'][1][0]))
     522        def OnMinVal(invalid,value,tc):
    561523            minSel.SetValue(int(100*(data['range'][1][0]-max(0.0,data['range'][0][0]))/DeltOne))
    562             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
     524            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=tc.event)
    563525           
    564526        def OnMaxSlider(event):
     
    569531            DeltOne = max(1.0,data['range'][1][1]-data['range'][1][0])
    570532            minSel.SetValue(int(100*(data['range'][1][0]/DeltOne)))
    571             maxVal.SetValue('%.0f'%(data['range'][1][1]))
     533            maxVal.SetValue(int(data['range'][1][1]))
    572534            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    573535           
     
    576538            imin = int(minSel.GetValue())*DeltOne/100.
    577539            data['range'][1][0] = max(0.0,min(data['range'][1][1]-1,imin))
    578             minVal.SetValue('%.0f'%(data['range'][1][0]))
     540            minVal.SetValue(int(data['range'][1][0]))
    579541            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    580542           
     
    590552        maxSizer.Add(maxSel,1,wx.EXPAND)
    591553        maxSel.Bind(wx.EVT_SLIDER, OnMaxSlider)
    592         maxVal = wx.TextCtrl(parent=G2frame.dataDisplay,value='%.0f'%(data['range'][1][1]))
    593         maxVal.Bind(wx.EVT_TEXT_ENTER,OnMaxVal)   
    594         maxVal.Bind(wx.EVT_KILL_FOCUS,OnMaxVal)
     554        maxVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['range'][1],1,min=data['range'][1][0]+1,
     555            max=data['range'][1][1]-1,typeHint=int,OnLeave=OnMaxVal)
    595556        maxSizer.Add(maxVal,0,WACV)   
    596557        maxSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Min intensity'),0,WACV)
     
    599560        maxSizer.Add(minSel,1,wx.EXPAND)
    600561        minSel.Bind(wx.EVT_SLIDER, OnMinSlider)
    601         minVal = wx.TextCtrl(parent=G2frame.dataDisplay,value='%.0f'%(data['range'][1][0]))
    602         minVal.Bind(wx.EVT_TEXT_ENTER,OnMinVal)   
    603         minVal.Bind(wx.EVT_KILL_FOCUS,OnMinVal)
     562        minVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['range'][1],0,
     563            max=data['range'][0][1],typeHint=int,OnLeave=OnMinVal)
    604564        maxSizer.Add(minVal,0,WACV)
    605565        return maxSizer
     
    611571            name = Indx[Obj]
    612572            data['varyList'][name] = Obj.GetValue()
    613            
    614         def OnCalVal(event):
    615             event.Skip()
    616             Obj = event.GetEventObject()
    617             name = Indx[Obj]
    618             try:
    619                 value = float(Obj.GetValue())
    620                 if name == 'wave' and value < 0.01:
    621                     raise ValueError
    622             except ValueError:
    623                 value = Parms[name][2]
    624             if name == 'dist':
    625                 data['distance'] = value
    626             elif name == 'det-X':
    627                 data['center'][0] = value
    628             elif name == 'det-Y':
    629                 data['center'][1] = value
    630             elif name == 'tilt':
    631                 data['tilt'] = value
    632             elif name == 'phi':
    633                 data['rotation'] = value
    634             elif name == 'wave':
    635                 data['wavelength'] = value
    636             elif name == 'dep':
    637                 data['DetDepth'] = value                               
    638             Parms[name][2] = value
    639             Obj.SetValue(Parms[name][1]%(value))
    640573           
    641574        calibSizer = wx.FlexGridSizer(0,2,5,5)
     
    646579        if 'PWDR' in data['type']:
    647580            Names.append('dep')
    648         Parms = {'dist':['Distance','%.3f',data['distance']],'det-X':['Beam center X','%.3f',data['center'][0]],
    649             'det-Y':['Beam center Y','%.3f',data['center'][1]],'tilt':['Tilt angle','%.3f',data['tilt']],
    650             'phi':['Tilt rotation','%.2f',data['rotation']],'dep':['Penetration','%.2f',data['DetDepth']],
    651             'wave':['Wavelength','%.6f',data['wavelength']]}
    652 #        Indx = {}
     581        Parms = {'dist':['Distance',(10,3),data,'distance'],'det-X':['Beam center X',(10,3),data['center'],0],
     582            'det-Y':['Beam center Y',(10,3),data['center'],1],'tilt':['Tilt angle',(10,3),data,'tilt'],
     583            'phi':['Tilt rotation',(10,2),data,'rotation'],'dep':['Penetration',(10,2),data,'DetDepth'],
     584            'wave':['Wavelength',(10,6),data,'wavelength']}
    653585        for name in Names:
    654586            calSel = wx.CheckBox(parent=G2frame.dataDisplay,label=Parms[name][0])
     
    657589            calSel.SetValue(data['varyList'][name])
    658590            Indx[calSel] = name
    659             calVal = wx.TextCtrl(G2frame.dataDisplay,value=(Parms[name][1]%(Parms[name][2])),style=wx.TE_PROCESS_ENTER)
    660             calVal.Bind(wx.EVT_TEXT_ENTER,OnCalVal)
    661             calVal.Bind(wx.EVT_KILL_FOCUS,OnCalVal)
    662             Indx[calVal] = name
     591            if name == 'wave':
     592                calVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,Parms[name][2],
     593                    Parms[name][3],min=0.01,max=10.,nDig=Parms[name][1],typeHint=float)
     594            else:
     595                calVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,Parms[name][2],
     596                    Parms[name][3],nDig=Parms[name][1],typeHint=float)
    663597            calibSizer.Add(calVal,0,WACV)
    664598        return calibSizer
     
    696630            data['LRazimuth'] = [Lazm,Razm]
    697631            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    698        
    699         def OnNumOutChans(event):
    700             event.Skip()
    701             try:
    702                 numChans = int(outChan.GetValue())
    703                 if numChans < 10:
    704                     raise ValueError
    705                 data['outChannels'] = numChans
    706             except ValueError:
    707                 pass
    708             outChan.SetValue('%d'%(data['outChannels']))          #reset in case of error       
    709        
    710         def OnNumOutAzms(event):
    711             event.Skip()
    712             try:
    713                 numAzms = int(outAzim.GetValue())
    714                 if numAzms < 1:
    715                     raise ValueError
    716                 data['outAzimuths'] = numAzms           
    717             except ValueError:
    718                 pass
    719             outAzim.SetValue('%d'%(data['outAzimuths']))          #reset in case of error       
    720             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
     632               
     633        def OnNumOutAzms(invalid,value,tc):
     634            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=tc.event)
    721635       
    722636        def OnOblique(event):
    723637            data['Oblique'][1] = not data['Oblique'][1]
    724638               
    725         def OnObliqVal(event):
    726             event.Skip()
    727             try:
    728                 value = float(obliqVal.GetValue())
    729                 if 0.01 <= value <= 0.99:
    730                     data['Oblique'][0] = value
    731                 else:
    732                     raise ValueError
    733             except ValueError:
    734                 pass
    735             obliqVal.SetValue('%.3f'%(data['Oblique'][0]))
    736            
    737639        def OnSampleShape(event):
    738640            data['SampleShape'] = samShape.GetValue()
     
    746648            data['SampleAbs'][1] = not data['SampleAbs'][1]
    747649                           
    748         def OnSamAbsVal(event):
    749             event.Skip()
    750             try:
    751                 value = float(samabsVal.GetValue())
    752                 minmax = [0.,2.]
    753                 if 'Fixed' in data['SampleShape']:
    754                     minmax = [.05,1.0]
    755                 if minmax[0] <= value <= minmax[1]:
    756                     data['SampleAbs'][0] = value
    757                 else:
    758                     raise ValueError
    759             except ValueError:
    760                 pass
    761             samabsVal.SetValue('%.3f'%(data['SampleAbs'][0]))
    762                            
    763650        def OnShowLines(event):
    764651            data['showLines'] = not data['showLines']
     
    791678            data['PolaVal'][1] = not data['PolaVal'][1]
    792679               
    793         def OnPolaVal(event):
    794             event.Skip()
    795             try:
    796                 value = float(polaVal.GetValue())
    797                 if 0.001 <= value <= 0.999:
    798                     data['PolaVal'][0] = value
    799                 else:
    800                     raise ValueError
    801             except ValueError:
    802                 pass
    803             polaVal.SetValue('%.3f'%(data['PolaVal'][0]))
    804                            
    805680        dataSizer = wx.FlexGridSizer(0,2,5,3)
    806681        dataSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Integration coefficients'),0,WACV)   
     
    824699            IOtth = [4.*math.pi*sind(IOtth[0]/2.)/wave,4.*math.pi*sind(IOtth[1]/2.)/wave]
    825700        littleSizer = wx.BoxSizer(wx.HORIZONTAL)
     701#        ratVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,insVal,key,nDig=(10,4),typeHint=float,OnLeave=AfterChange)
    826702        G2frame.InnerTth = wx.TextCtrl(parent=G2frame.dataDisplay,
    827703            value=("%8.3f" % (IOtth[0])),style=wx.TE_PROCESS_ENTER)
     
    829705        G2frame.InnerTth.Bind(wx.EVT_KILL_FOCUS,OnIOtth)
    830706        littleSizer.Add(G2frame.InnerTth,0,WACV)
     707#        ratVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,insVal,key,nDig=(10,4),typeHint=float,OnLeave=AfterChange)
    831708        G2frame.OuterTth = wx.TextCtrl(parent=G2frame.dataDisplay,
    832709            value=("%8.2f" % (IOtth[1])),style=wx.TE_PROCESS_ENTER)
     
    838715        LRazim = data['LRazimuth']
    839716        littleSizer = wx.BoxSizer(wx.HORIZONTAL)
     717#        ratVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,insVal,key,nDig=(10,4),typeHint=float,OnLeave=AfterChange)
    840718        G2frame.Lazim = wx.TextCtrl(parent=G2frame.dataDisplay,
    841719            value=("%6.1f" % (LRazim[0])),style=wx.TE_PROCESS_ENTER)
     
    843721        G2frame.Lazim.Bind(wx.EVT_KILL_FOCUS,OnLRazim)
    844722        littleSizer.Add(G2frame.Lazim,0,WACV)
     723#        ratVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,insVal,key,nDig=(10,4),typeHint=float,OnLeave=AfterChange)
    845724        G2frame.Razim = wx.TextCtrl(parent=G2frame.dataDisplay,
    846725            value=("%6.1f" % (LRazim[1])),style=wx.TE_PROCESS_ENTER)
     
    855734        dataSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' No. 2-theta/azimuth bins'),0,WACV)
    856735        littleSizer = wx.BoxSizer(wx.HORIZONTAL)
    857         outChan = wx.TextCtrl(parent=G2frame.dataDisplay,value='%d'%(data['outChannels']),style=wx.TE_PROCESS_ENTER)
    858         outChan.Bind(wx.EVT_TEXT_ENTER,OnNumOutChans)
    859         outChan.Bind(wx.EVT_KILL_FOCUS,OnNumOutChans)
     736        outChan = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'outChannels',typeHint=int,min=10)
    860737        littleSizer.Add(outChan,0,WACV)
    861         outAzim = wx.TextCtrl(parent=G2frame.dataDisplay,value='%d'%(data['outAzimuths']),style=wx.TE_PROCESS_ENTER)
    862         outAzim.Bind(wx.EVT_TEXT_ENTER,OnNumOutAzms)
    863         outAzim.Bind(wx.EVT_KILL_FOCUS,OnNumOutAzms)
     738        outAzim = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'outAzimuths',nDig=(10,4),min=1,typeHint=int,OnLeave=OnNumOutAzms)
    864739        littleSizer.Add(outAzim,0,WACV)
    865740        dataSizer.Add(littleSizer,0,)
     
    876751        samabs.Bind(wx.EVT_CHECKBOX, OnSamAbs)
    877752        samabs.SetValue(data['SampleAbs'][1])
     753        minmax = [0.,2.]
    878754        if 'Cylind' in data['SampleShape']: #cylinder mu*R; flat plate transmission
    879755            littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label='mu*R (0.00-2.0) '),0,WACV)
    880756        elif 'Fixed' in data['SampleShape']:
    881757            littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label='transmission '),0,WACV) #for flat plate
    882         samabsVal = wx.TextCtrl(parent=G2frame.dataDisplay,value='%.3f'%(data['SampleAbs'][0]),style=wx.TE_PROCESS_ENTER)           
    883         samabsVal.Bind(wx.EVT_TEXT_ENTER,OnSamAbsVal)
    884         samabsVal.Bind(wx.EVT_KILL_FOCUS,OnSamAbsVal)
     758            minmax = [.05,1.0]
     759        samabsVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['SampleAbs'],0,nDig=(10,3),
     760            typeHint=float,min=minmax[0],max=minmax[1])
    885761        littleSizer.Add(samabsVal,0,WACV)
    886762        dataSizer.Add(littleSizer,0,)       
     
    892768            oblique.SetValue(data['Oblique'][1])
    893769            littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label='Value (0.01-0.99)  '),0,WACV)
    894             obliqVal = wx.TextCtrl(parent=G2frame.dataDisplay,value='%.3f'%(data['Oblique'][0]),style=wx.TE_PROCESS_ENTER)
    895             obliqVal.Bind(wx.EVT_TEXT_ENTER,OnObliqVal)
    896             obliqVal.Bind(wx.EVT_KILL_FOCUS,OnObliqVal)
     770            obliqVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['Oblique'],0,nDig=(10,3),typeHint=float,min=0.01,max=0.99)
    897771            littleSizer.Add(obliqVal,0,WACV)
    898772            dataSizer.Add(littleSizer,0,)
     
    904778            setPolariz.SetValue(data['PolaVal'][1])
    905779            littleSizer.Add(wx.StaticText(G2frame.dataDisplay,label='Value (0.001-0.999)  '),0,WACV)
    906             polaVal = wx.TextCtrl(parent=G2frame.dataDisplay,value='%.3f'%(data['PolaVal'][0]),
    907                 style=wx.TE_PROCESS_ENTER)
    908             polaVal.Bind(wx.EVT_TEXT_ENTER,OnPolaVal)
    909             polaVal.Bind(wx.EVT_KILL_FOCUS,OnPolaVal)
     780            polaVal = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['PolaVal'],0,nDig=(10,3),typeHint=float,min=0.001,max=0.999)
    910781            littleSizer.Add(polaVal,0,WACV)
    911782            dataSizer.Add(littleSizer,0,)
     
    931802    def BackSizer():
    932803       
     804        global oldFlat
    933805        def OnBackImage(event):
    934806            data['background image'][0] = backImage.GetValue()
     
    943815            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    944816           
    945         def OnFlatBkg(event):
    946             event.Skip()
    947             oldFlat = data.get('Flat Bkg',0.)
    948             try:
    949                 value = float(flatbkg.GetValue())
    950                 data['Flat Bkg'] = value
    951             except ValueError:
    952                 pass
    953             flatbkg.SetValue("%.0f"%(data['Flat Bkg']))   
     817        def OnFlatBkg(invalid,value,tc):
     818            global oldFlat
    954819            G2frame.ImageZ += int(oldFlat-data['Flat Bkg'])
     820            oldFlat = data['Flat Bkg']
    955821            ResetThresholds()
    956             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    957 
    958         def OnBackMult(event):
    959             event.Skip()
    960             try:
    961                 mult = float(backMult.GetValue())
    962                 data['background image'][1] = mult
    963             except ValueError:
    964                 pass
    965             backMult.SetValue("%.3f" % (data['background image'][1]))          #reset in case of error
     822            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=tc.event)
     823
     824        def OnMult(invalid,value,tc):
    966825            G2frame.ImageZ = GetImageZ(G2frame,data)
    967826            ResetThresholds()
    968             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
    969        
    970         def OnDarkMult(event):
    971             event.Skip()
    972             try:
    973                 mult = float(darkMult.GetValue())
    974                 data['dark image'][1] = mult
    975             except ValueError:
    976                 pass
    977             darkMult.SetValue("%.3f" % (data['dark image'][1]))          #reset in case of error
    978             G2frame.ImageZ = GetImageZ(G2frame,data)
    979             ResetThresholds()
    980             wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=event)
     827            wx.CallAfter(G2plt.PlotExposedImage,G2frame,event=tc.event)
    981828       
    982829        backSizer = wx.FlexGridSizer(0,6,5,5)
     830        oldFlat = data.get('Flat Bkg',0.)
    983831
    984832        backSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Dark image'),0,WACV)
     
    991839        backSizer.Add(darkImage)
    992840        backSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' multiplier'),0,WACV)
    993         darkMult =  wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.3f" % (data['dark image'][1])),
    994             style=wx.TE_PROCESS_ENTER)
    995         darkMult.Bind(wx.EVT_TEXT_ENTER,OnDarkMult)
    996         darkMult.Bind(wx.EVT_KILL_FOCUS,OnDarkMult)
     841        darkMult = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['dark image'],1,nDig=(10,3),
     842            typeHint=float,OnLeave=OnMult)
    997843        backSizer.Add(darkMult,0,WACV)
    998844        backSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' Flat Bkg: '),0,WACV)
    999         flatbkg = wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.0f" % (data['Flat Bkg'])),
    1000             style=wx.TE_PROCESS_ENTER)
    1001         flatbkg.Bind(wx.EVT_TEXT_ENTER,OnFlatBkg)
    1002         flatbkg.Bind(wx.EVT_KILL_FOCUS,OnFlatBkg)
     845        flatbkg = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'Flat Bkg',nDig=(10,0),
     846            typeHint=float,OnLeave=OnFlatBkg)
    1003847        backSizer.Add(flatbkg,0,WACV)
    1004848
     
    1009853        backSizer.Add(backImage)
    1010854        backSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,' multiplier'),0,WACV)
    1011         backMult =  wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.3f" % (data['background image'][1])),
    1012             style=wx.TE_PROCESS_ENTER)
    1013         backMult.Bind(wx.EVT_TEXT_ENTER,OnBackMult)
    1014         backMult.Bind(wx.EVT_KILL_FOCUS,OnBackMult)
     855        backMult = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['background image'],1,nDig=(10,3),
     856            typeHint=float,OnLeave=OnMult)
    1015857        backSizer.Add(backMult,0,WACV)
    1016858        return backSizer
     
    1035877                G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMCALIBRATE,enable=False)
    1036878                G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBALL,enable=False)
     879               
    1037880        def OnCalibSkip(event):
    1038881            data['calibskip'] = int(calibSkip.GetValue())
    1039882           
    1040         def OnCalibDmin(event):
    1041             event.Skip()
    1042             try:
    1043                 dmin = float(calibDmin.GetValue())
    1044                 if dmin < 0.25:
    1045                     raise ValueError
    1046                 data['calibdmin'] = dmin
    1047             except ValueError:
    1048                 pass
    1049             calibDmin.SetValue("%.2f"%(data['calibdmin']))          #reset in case of error 
    1050                    
    1051         def OnCutOff(event):
    1052             event.Skip()
    1053             try:
    1054                 cutoff = float(cutOff.GetValue())
    1055                 if cutoff < 0.1:
    1056                     raise ValueError
    1057                 data['cutoff'] = cutoff
    1058             except ValueError:
    1059                 pass
    1060             cutOff.SetValue("%.1f"%(data['cutoff']))          #reset in case of error 
    1061        
    1062883        def OnPixLimit(event):
    1063884            data['pixLimit'] = int(pixLimit.GetValue())
     
    1086907        comboSizer = wx.BoxSizer(wx.HORIZONTAL)       
    1087908        comboSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Min calib d-spacing '),0,WACV)
    1088         calibDmin = wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.2f" % (data['calibdmin'])),
    1089             style=wx.TE_PROCESS_ENTER)
    1090         calibDmin.Bind(wx.EVT_TEXT_ENTER,OnCalibDmin)
    1091         calibDmin.Bind(wx.EVT_KILL_FOCUS,OnCalibDmin)
     909        calibDmin = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'calibdmin',nDig=(10,2),typeHint=float,min=0.25)
    1092910        comboSizer.Add(calibDmin,0,WACV)
    1093911        calibSizer.Add(comboSizer,0)
     
    1095913        comboSizer = wx.BoxSizer(wx.HORIZONTAL)
    1096914        comboSizer.Add(wx.StaticText(parent=G2frame.dataDisplay,label=' Min ring I/Ib '),0,WACV)
    1097         cutOff = wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.1f" % (data['cutoff'])),
    1098             style=wx.TE_PROCESS_ENTER)
    1099         cutOff.Bind(wx.EVT_TEXT_ENTER,OnCutOff)
    1100         cutOff.Bind(wx.EVT_KILL_FOCUS,OnCutOff)
     915        cutOff = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'cutoff',nDig=(10,1),typeHint=float,min=0.1)
    1101916        comboSizer.Add(cutOff,0,WACV)
    1102917        calibSizer.Add(comboSizer,0)
     
    1120935    def GonioSizer():
    1121936       
    1122         ValObj = {}
    1123        
    1124         def OnGonioAngle(event):
    1125             event.Skip()
    1126             Obj = event.GetEventObject()
    1127             item = ValObj[Obj.GetId()]
    1128             try:
    1129                 value = float(Obj.GetValue())
    1130             except ValueError:
    1131                 value = data['GonioAngles'][item]
    1132             data['GonioAngles'][item] = value
    1133             Obj.SetValue('%8.2f'%(value))
    1134            
    1135937        def OnGlobalEdit(event):
    1136938            Names = []
     
    1171973        for i,name in enumerate(names):
    1172974            gonioSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,name),0,WACV)
    1173             angle = wx.TextCtrl(G2frame.dataDisplay,-1,value='%8.2f'%(data['GonioAngles'][i]),
    1174                 style=wx.TE_PROCESS_ENTER)
    1175             angle.Bind(wx.EVT_TEXT_ENTER,OnGonioAngle)
    1176             angle.Bind(wx.EVT_KILL_FOCUS,OnGonioAngle)
    1177             ValObj[angle.GetId()] = i
     975            angle = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data['GonioAngles'],i,nDig=(8,2),typeHint=float)
    1178976            gonioSizer.Add(angle,0,WACV)
    1179977        globEdit = wx.Button(G2frame.dataDisplay,-1,'Global edit')
     
    16301428        Source = G2frame.PatternTree.GetItemText(G2frame.Image)
    16311429        Names.pop(Names.index(Source))
    1632 #        GSASIIpath.IPyBreak()
    16331430        dlg = G2G.G2MultiChoiceDialog(G2frame,'Copy stress/strain controls','Copy controls from '+Source+' to:',Names)
    16341431        try:
     
    18791676            data['Type'] = strType.GetValue()
    18801677       
    1881         def OnSamPhi(event):
    1882             event.Skip()
    1883             try:
    1884                 value = float(samPhi.GetValue())
    1885             except ValueError:
    1886                 value = data['Sample phi']
    1887             data['Sample phi'] = value
    1888             samPhi.SetValue("%.3f" % (data['Sample phi']))
    1889                
    1890         def OnSamZ(event):
    1891             event.Skip()
    1892             try:
    1893                 value = float(samZ.GetValue())
    1894             except ValueError:
    1895                 value = data['Sample z']
    1896             data['Sample z'] = value
    1897             samZ.SetValue("%.3f" % (data['Sample z']))
    1898                
    1899         def OnSamLoad(event):
    1900             event.Skip()
    1901             try:
    1902                 value = float(samLoad.GetValue())
    1903             except ValueError:
    1904                 value = data['Sample load']
    1905             data['Sample load'] = value
    1906             samLoad.SetValue("%.3f" % (data['Sample load']))
    1907                
    19081678        samSizer = wx.BoxSizer(wx.HORIZONTAL)
    19091679        samSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label=' Strain type: '),0,WACV)
     
    19151685       
    19161686        samSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label=' Sample phi: '),0,WACV)
    1917         samPhi = wx.TextCtrl(G2frame.dataDisplay,-1,value=("%.3f" % (data['Sample phi'])),
    1918             style=wx.TE_PROCESS_ENTER)
     1687        samPhi = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'Sample phi',nDig=(10,3),typeHint=float,min=-360.,max=360.)
    19191688        samSizer.Add(samPhi,0,WACV)
    1920         samPhi.Bind(wx.EVT_TEXT_ENTER,OnSamPhi)
    1921         samPhi.Bind(wx.EVT_KILL_FOCUS,OnSamPhi)
    19221689        samSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label=' Sample delta-z(mm): '),0,WACV)
    1923         samZ = wx.TextCtrl(G2frame.dataDisplay,-1,value=("%.3f" % (data['Sample z'])),
    1924             style=wx.TE_PROCESS_ENTER)
     1690        samZ = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'Sample z',nDig=(10,3),typeHint=float)
    19251691        samSizer.Add(samZ,0,WACV)
    1926         samZ.Bind(wx.EVT_TEXT_ENTER,OnSamZ)
    1927         samZ.Bind(wx.EVT_KILL_FOCUS,OnSamZ)
    19281692        samSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label=' Sample load(MPa): '),0,WACV)
    19291693        samLoad = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'Sample load',
     
    19871751        for id,dzero in enumerate(data['d-zero']):
    19881752            dzeroSizer.Add(wx.StaticText(G2frame.dataDisplay,-1,label=(' d-zero #%d: '%(id))),0,WACV)
     1753#        azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    19891754            dZero = wx.TextCtrl(G2frame.dataDisplay,-1,value=('%.5f'%(dzero['Dset'])),
    19901755                style=wx.TE_PROCESS_ENTER)
     
    19961761               
    19971762            dzeroSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Min ring I/Ib '),0,WACV)
     1763#        azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)
    19981764            cutOff = wx.TextCtrl(parent=G2frame.dataDisplay,value=("%.1f" % (dzero['cutoff'])),
    19991765                style=wx.TE_PROCESS_ENTER)
     
    23562122        sizer = wx.BoxSizer(wx.HORIZONTAL)
    23572123        sizer.Add(wx.StaticText(mnpnl, wx.ID_ANY,'Image filter'))
    2358         flterInp = G2G.ValidatedTxtCtrl(mnpnl,self.params,'filter',
    2359                                         OnLeave=self.ShowMatchingFiles)
     2124        flterInp = G2G.ValidatedTxtCtrl(mnpnl,self.params,'filter',OnLeave=self.ShowMatchingFiles)
    23602125        sizer.Add(flterInp)
    23612126        mnsizer.Add(sizer,0,wx.ALIGN_RIGHT,1)
     
    23682133        sizer = wx.BoxSizer(wx.HORIZONTAL)
    23692134        sizer.Add(wx.StaticText(mnpnl, wx.ID_ANY,'Write to: '))
    2370         fInp3 = G2G.ValidatedTxtCtrl(mnpnl,self.params,'outdir',
    2371                                        notBlank=False,size=(300,-1))
     2135        fInp3 = G2G.ValidatedTxtCtrl(mnpnl,self.params,'outdir',notBlank=False,size=(300,-1))
    23722136        sizer.Add(fInp3)
    23732137        btn3 = wx.Button(mnpnl,  wx.ID_ANY, "Browse")
Note: See TracChangeset for help on using the changeset viewer.