Changeset 1823


Ignore:
Timestamp:
Apr 30, 2015 11:28:12 AM (7 years ago)
Author:
toby
Message:

revise paint of data tab

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1822 r1823  
    7979import GSASIIlattice as G2lat
    8080import GSASIIlog as log
    81 
    82 #wx inspector - use as needed
    83 wxInspector = False
    8481
    8582__version__ = '0.2.0'
     
    36703667    # may want to do this if we can
    36713668    application = GSASIImain(0)
    3672     if wxInspector:
     3669    if GSASIIpath.GetConfigValue('wxInspector'):
    36733670        import wx.lib.inspection as wxeye
    36743671        wxeye.InspectionTool().Show()
  • trunk/GSASIIddataGUI.py

    r1802 r1823  
    7171    SGData = generalData['SGData']
    7272    if not hist and len(keyList):
    73         hist = keyList[0]
     73        DData.G2hist = keyList[0]
     74
    7475    PWDR = any(['PWDR' in item for item in keyList])
    7576    Indx = {}
     
    8081            Obj = event.GetEventObject()
    8182            generalData['Data plot type'] = Obj.GetStringSelection()
    82             G2plt.PlotSizeStrainPO(G2frame,data,hist)
    83             wx.CallLater(100,UpdateDData,G2frame,DData,data)
     83            G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     84            #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     85            wx.CallLater(100,RepaintHistogramInfo)
    8486           
    8587        def OnPOhkl(event):
     
    9597            h,k,l = hkl
    9698            Obj.SetValue('%3d %3d %3d'%(h,k,l))
    97             G2plt.PlotSizeStrainPO(G2frame,data,hist)
     99            G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
    98100       
    99101        plotSizer = wx.BoxSizer(wx.VERTICAL)
     
    119121        def OnScaleRef(event):
    120122            Obj = event.GetEventObject()
    121             UseList[hist]['Scale'][1] = Obj.GetValue()
     123            UseList[DData.G2hist]['Scale'][1] = Obj.GetValue()
    122124           
    123125        def OnScaleVal(event):
     
    126128                scale = float(Obj.GetValue())
    127129                if scale > 0:
    128                     UseList[hist]['Scale'][0] = scale
     130                    UseList[DData.G2hist]['Scale'][0] = scale
    129131            except ValueError:
    130132                pass
    131             Obj.SetValue("%.4f"%(UseList[hist]['Scale'][0]))          #reset in case of error
     133            Obj.SetValue("%.4f"%(UseList[DData.G2hist]['Scale'][0]))          #reset in case of error
    132134                       
    133135        scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
    134         if 'PWDR' in hist:
     136        if 'PWDR' in DData.G2hist:
    135137            scaleRef = wx.CheckBox(DData,-1,label=' Phase fraction: ')
    136         elif 'HKLF' in hist:
     138        elif 'HKLF' in DData.G2hist:
    137139            scaleRef = wx.CheckBox(DData,-1,label=' Scale factor: ')               
    138         scaleRef.SetValue(UseList[hist]['Scale'][1])
     140        scaleRef.SetValue(UseList[DData.G2hist]['Scale'][1])
    139141        scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef)
    140142        scaleSizer.Add(scaleRef,0,WACV)
    141143        scaleVal = wx.TextCtrl(DData,wx.ID_ANY,
    142             '%.4f'%(UseList[hist]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
     144            '%.4f'%(UseList[DData.G2hist]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
    143145        scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal)
    144146        scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal)
     
    148150    def OnUseData(event):
    149151        Obj = event.GetEventObject()
    150         UseList[hist]['Use'] = Obj.GetValue()
     152        UseList[DData.G2hist]['Use'] = Obj.GetValue()
    151153       
    152154    def OnLGmixRef(event):
    153155        Obj = event.GetEventObject()
    154156        hist,name = Indx[Obj.GetId()]
    155         UseList[hist][name][2][2] = Obj.GetValue()
     157        UseList[DData.G2hist][name][2][2] = Obj.GetValue()
    156158       
    157159    def OnLGmixVal(event):
     
    161163            value = float(Obj.GetValue())
    162164            if 0 <= value <= 1:
    163                 UseList[hist][name][1][2] = value
     165                UseList[DData.G2hist][name][1][2] = value
    164166            else:
    165167                raise ValueError
    166168        except ValueError:
    167169            pass
    168         Obj.SetValue("%.4f"%(UseList[hist][name][1][2]))          #reset in case of error
     170        Obj.SetValue("%.4f"%(UseList[DData.G2hist][name][1][2]))          #reset in case of error
    169171
    170172    def OnSizeType(event):
    171173        Obj = event.GetEventObject()
    172         UseList[hist]['Size'][0] = Obj.GetValue()
    173         G2plt.PlotSizeStrainPO(G2frame,data,hist)
    174         wx.CallLater(100,UpdateDData,G2frame,DData,data)
     174        UseList[DData.G2hist]['Size'][0] = Obj.GetValue()
     175        G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     176        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     177        wx.CallLater(100,RepaintHistogramInfo)
    175178       
    176179    def OnSizeRef(event):
    177180        Obj = event.GetEventObject()
    178181        hist,pid = Indx[Obj.GetId()]
    179         if UseList[hist]['Size'][0] == 'ellipsoidal':
    180             UseList[hist]['Size'][5][pid] = Obj.GetValue()               
     182        if UseList[DData.G2hist]['Size'][0] == 'ellipsoidal':
     183            UseList[DData.G2hist]['Size'][5][pid] = Obj.GetValue()               
    181184        else:
    182             UseList[hist]['Size'][2][pid] = Obj.GetValue()
     185            UseList[DData.G2hist]['Size'][2][pid] = Obj.GetValue()
    183186       
    184187    def OnSizeVal(event):
    185188        Obj = event.GetEventObject()
    186189        hist,pid = Indx[Obj.GetId()]
    187         if UseList[hist]['Size'][0] == 'ellipsoidal':
     190        if UseList[DData.G2hist]['Size'][0] == 'ellipsoidal':
    188191            try:
    189192                size = float(Obj.GetValue())
    190193                if pid < 3 and size <= 0.001:            #10A lower limit!
    191194                    raise ValueError
    192                 UseList[hist]['Size'][4][pid] = size                   
     195                UseList[DData.G2hist]['Size'][4][pid] = size                   
    193196            except ValueError:
    194197                pass
    195             Obj.SetValue("%.5f"%(UseList[hist]['Size'][4][pid]))          #reset in case of error
     198            Obj.SetValue("%.5f"%(UseList[DData.G2hist]['Size'][4][pid]))          #reset in case of error
    196199        else:
    197200            try:
     
    199202                if size <= 0.001:            #10A lower limit!
    200203                    raise ValueError
    201                 UseList[hist]['Size'][1][pid] = size
     204                UseList[DData.G2hist]['Size'][1][pid] = size
    202205            except ValueError:
    203206                pass
    204             Obj.SetValue("%.5f"%(UseList[hist]['Size'][1][pid]))          #reset in case of error
     207            Obj.SetValue("%.5f"%(UseList[DData.G2hist]['Size'][1][pid]))          #reset in case of error
    205208        G2plt.PlotSizeStrainPO(G2frame,data,hist)
    206209       
     
    211214            hkl = [int(Saxis[i]) for i in range(3)]
    212215        except (ValueError,IndexError):
    213             hkl = UseList[hist]['Size'][3]
     216            hkl = UseList[DData.G2hist]['Size'][3]
    214217        if not np.any(np.array(hkl)):
    215             hkl = UseList[hist]['Size'][3]
    216         UseList[hist]['Size'][3] = hkl
     218            hkl = UseList[DData.G2hist]['Size'][3]
     219        UseList[DData.G2hist]['Size'][3] = hkl
    217220        h,k,l = hkl
    218221        Obj.SetValue('%3d %3d %3d'%(h,k,l))
     
    232235                UseList[item]['Size'][4][i+3] = 0.0
    233236        G2plt.PlotSizeStrainPO(G2frame,data,item)
    234         wx.CallLater(100,UpdateDData,G2frame,DData,data)
     237        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     238        wx.CallLater(100,RepaintHistogramInfo)
    235239           
    236240    def OnStrainType(event):
    237241        Obj = event.GetEventObject()
    238         UseList[hist]['Mustrain'][0] = Obj.GetValue()
    239         wx.CallLater(100,UpdateDData,G2frame,DData,data)
    240         G2plt.PlotSizeStrainPO(G2frame,data,hist)
     242        UseList[DData.G2hist]['Mustrain'][0] = Obj.GetValue()
     243        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     244        G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     245        wx.CallLater(100,RepaintHistogramInfo)
    241246       
    242247    def OnStrainRef(event):
    243248        Obj = event.GetEventObject()
    244249        hist,pid = Indx[Obj.GetId()]
    245         if UseList[hist]['Mustrain'][0] == 'generalized':
    246             UseList[hist]['Mustrain'][5][pid] = Obj.GetValue()
     250        if UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
     251            UseList[DData.G2hist]['Mustrain'][5][pid] = Obj.GetValue()
    247252        else:
    248             UseList[hist]['Mustrain'][2][pid] = Obj.GetValue()
     253            UseList[DData.G2hist]['Mustrain'][2][pid] = Obj.GetValue()
    249254       
    250255    def OnStrainVal(event):
     
    254259        try:
    255260            strain = float(Obj.GetValue())
    256             if UseList[hist]['Mustrain'][0] == 'generalized':
     261            if UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
    257262                if '4' in Snames[pid] and strain < 0:
    258263                    raise ValueError
    259                 UseList[hist]['Mustrain'][4][pid] = strain
     264                UseList[DData.G2hist]['Mustrain'][4][pid] = strain
    260265            else:
    261266                if strain <= 0:
    262267                    raise ValueError
    263                 UseList[hist]['Mustrain'][1][pid] = strain
     268                UseList[DData.G2hist]['Mustrain'][1][pid] = strain
    264269        except ValueError:
    265270            pass
    266         if UseList[hist]['Mustrain'][0] == 'generalized':
    267             Obj.SetValue("%.3f"%(UseList[hist]['Mustrain'][4][pid]))          #reset in case of error
     271        if UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
     272            Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Mustrain'][4][pid]))          #reset in case of error
    268273        else:
    269             Obj.SetValue("%.1f"%(UseList[hist]['Mustrain'][1][pid]))          #reset in case of error
     274            Obj.SetValue("%.1f"%(UseList[DData.G2hist]['Mustrain'][1][pid]))          #reset in case of error
    270275        G2plt.PlotSizeStrainPO(G2frame,data,hist)
    271276       
     
    276281            hkl = [int(Saxis[i]) for i in range(3)]
    277282        except (ValueError,IndexError):
    278             hkl = UseList[hist]['Mustrain'][3]
     283            hkl = UseList[DData.G2hist]['Mustrain'][3]
    279284        if not np.any(np.array(hkl)):
    280             hkl = UseList[hist]['Mustrain'][3]
    281         UseList[hist]['Mustrain'][3] = hkl
     285            hkl = UseList[DData.G2hist]['Mustrain'][3]
     286        UseList[DData.G2hist]['Mustrain'][3] = hkl
    282287        h,k,l = hkl
    283288        Obj.SetValue('%3d %3d %3d'%(h,k,l))
    284         G2plt.PlotSizeStrainPO(G2frame,data,hist)
     289        G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
    285290       
    286291    def OnResetStrain(event):
     
    301306                UseList[item]['Mustrain'][4][i] = vals[i]
    302307        G2plt.PlotSizeStrainPO(G2frame,data,item)
    303         wx.CallLater(100,UpdateDData,G2frame,DData,data)
     308        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     309        wx.CallLater(100,RepaintHistogramInfo)
    304310           
    305311    def OnHstrainRef(event):
    306312        Obj = event.GetEventObject()
    307313        hist,pid = Indx[Obj.GetId()]
    308         UseList[hist]['HStrain'][1][pid] = Obj.GetValue()
     314        UseList[DData.G2hist]['HStrain'][1][pid] = Obj.GetValue()
    309315       
    310316    def OnHstrainVal(event):
     
    314320        try:
    315321            strain = float(Obj.GetValue())
    316             UseList[hist]['HStrain'][0][pid] = strain
     322            UseList[DData.G2hist]['HStrain'][0][pid] = strain
    317323        except ValueError:
    318324            pass
    319         Obj.SetValue("%.3g"%(UseList[hist]['HStrain'][0][pid]))          #reset in case of error
     325        Obj.SetValue("%.3g"%(UseList[DData.G2hist]['HStrain'][0][pid]))          #reset in case of error
    320326
    321327    def OnPOVal(event):
     
    324330            mdVal = float(Obj.GetValue())
    325331            if mdVal > 0:
    326                 UseList[hist]['Pref.Ori.'][1] = mdVal
     332                UseList[DData.G2hist]['Pref.Ori.'][1] = mdVal
    327333        except ValueError:
    328334            pass
    329         Obj.SetValue("%.3f"%(UseList[hist]['Pref.Ori.'][1]))          #reset in case of error
     335        Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Pref.Ori.'][1]))          #reset in case of error
    330336       
    331337    def OnPOAxis(event):
     
    335341            hkl = [int(Saxis[i]) for i in range(3)]
    336342        except (ValueError,IndexError):
    337             hkl = UseList[hist]['Pref.Ori.'][3]
     343            hkl = UseList[DData.G2hist]['Pref.Ori.'][3]
    338344        if not np.any(np.array(hkl)):
    339             hkl = UseList[hist]['Pref.Ori.'][3]
    340         UseList[hist]['Pref.Ori.'][3] = hkl
     345            hkl = UseList[DData.G2hist]['Pref.Ori.'][3]
     346        UseList[DData.G2hist]['Pref.Ori.'][3] = hkl
    341347        h,k,l = hkl
    342348        Obj.SetValue('%3d %3d %3d'%(h,k,l))
     
    345351        Obj = event.GetEventObject()
    346352        Order = int(Obj.GetValue())
    347         UseList[hist]['Pref.Ori.'][4] = Order
    348         UseList[hist]['Pref.Ori.'][5] = SetPOCoef(Order,hist)
    349         wx.CallLater(100,UpdateDData,G2frame,DData,data)
     353        UseList[DData.G2hist]['Pref.Ori.'][4] = Order
     354        UseList[DData.G2hist]['Pref.Ori.'][5] = SetPOCoef(Order,DData.G2hist)
     355        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     356        wx.CallLater(100,RepaintHistogramInfo)
    350357
    351358    def OnPOType(event):
    352359        Obj = event.GetEventObject()
    353360        if 'March' in Obj.GetValue():
    354             UseList[hist]['Pref.Ori.'][0] = 'MD'
     361            UseList[DData.G2hist]['Pref.Ori.'][0] = 'MD'
    355362        else:
    356             UseList[hist]['Pref.Ori.'][0] = 'SH'
    357         wx.CallLater(100,UpdateDData,G2frame,DData,data)
     363            UseList[DData.G2hist]['Pref.Ori.'][0] = 'SH'
     364        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     365        wx.CallLater(100,RepaintHistogramInfo)
    358366
    359367    def OnPORef(event):
    360368        Obj = event.GetEventObject()
    361         UseList[hist]['Pref.Ori.'][2] = Obj.GetValue()
     369        UseList[DData.G2hist]['Pref.Ori.'][2] = Obj.GetValue()
    362370           
    363371    def SetPOCoef(Order,hist):
    364372        cofNames = G2lat.GenSHCoeff(SGData['SGLaue'],'0',Order,False)     #cylindrical & no M
    365373        newPOCoef = dict(zip(cofNames,np.zeros(len(cofNames))))
    366         POCoeff = UseList[hist]['Pref.Ori.'][5]
     374        POCoeff = UseList[DData.G2hist]['Pref.Ori.'][5]
    367375        for cofName in POCoeff:
    368376            if cofName in  cofNames:
     
    372380    def OnExtRef(event):
    373381        Obj = event.GetEventObject()
    374         UseList[hist]['Extinction'][1] = Obj.GetValue()
     382        UseList[DData.G2hist]['Extinction'][1] = Obj.GetValue()
    375383       
    376384    def OnExtVal(event):
     
    379387            ext = float(Obj.GetValue())
    380388            if ext >= 0:
    381                 UseList[hist]['Extinction'][0] = ext
     389                UseList[DData.G2hist]['Extinction'][0] = ext
    382390        except ValueError:
    383391            pass
    384         Obj.SetValue("%.2f"%(UseList[hist]['Extinction'][0]))
     392        Obj.SetValue("%.2f"%(UseList[DData.G2hist]['Extinction'][0]))
    385393
    386394    def OnBabRef(event):
     
    405413            tbar = float(Obj.GetValue())
    406414            if tbar > 0:
    407                 UseList[hist]['Extinction'][2]['Tbar'] = tbar
     415                UseList[DData.G2hist]['Extinction'][2]['Tbar'] = tbar
    408416        except ValueError:
    409417            pass
    410         Obj.SetValue("%.3f"%(UseList[hist]['Extinction'][2]['Tbar']))
     418        Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Extinction'][2]['Tbar']))
    411419
    412420    def OnCos2TM(event):
     
    415423            val = float(Obj.GetValue())
    416424            if 0. < val <= 1.:
    417                 UseList[hist]['Extinction'][2]['Cos2TM'] = val
     425                UseList[DData.G2hist]['Extinction'][2]['Cos2TM'] = val
    418426        except ValueError:
    419427            pass
    420         Obj.SetValue("%.3f"%(UseList[hist]['Extinction'][2]['Cos2TM']))
     428        Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Extinction'][2]['Cos2TM']))
    421429       
    422430    def OnEval(event):
     
    440448        item = Indx[Obj.GetId()]
    441449        UseList[item[0]]['Extinction'][item[1]] = Obj.GetValue()
    442         wx.CallLater(100,UpdateDData,G2frame,DData,data)
     450        #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     451        wx.CallLater(100,RepaintHistogramInfo)
    443452           
    444453    def checkAxis(axis):
     
    450459        topSizer = wx.BoxSizer(wx.HORIZONTAL)
    451460        topSizer.Add(wx.StaticText(DData,-1,name),0,WACV)
    452         sizeType = wx.ComboBox(DData,wx.ID_ANY,value=UseList[hist][parm][0],choices=choices,
     461        sizeType = wx.ComboBox(DData,wx.ID_ANY,value=UseList[DData.G2hist][parm][0],choices=choices,
    453462            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    454463        sizeType.Bind(wx.EVT_COMBOBOX, OnType)
    455         topSizer.Add(sizeType)
    456         topSizer.Add((5,0),0)
     464        topSizer.Add(sizeType,0,WACV|wx.BOTTOM,5)
    457465        return topSizer
    458466       
     
    461469        lgmixRef = wx.CheckBox(DData,-1,label='LGmix')
    462470        lgmixRef.thisown = False
    463         lgmixRef.SetValue(UseList[hist][name][2][2])
    464         Indx[lgmixRef.GetId()] = [hist,name]
     471        lgmixRef.SetValue(UseList[DData.G2hist][name][2][2])
     472        Indx[lgmixRef.GetId()] = [DData.G2hist,name]
    465473        lgmixRef.Bind(wx.EVT_CHECKBOX, OnRef)
    466474        lgmixSizer.Add(lgmixRef,0,WACV)
    467475        lgmixVal = wx.TextCtrl(DData,wx.ID_ANY,
    468             '%.4f'%(UseList[hist][name][1][2]),style=wx.TE_PROCESS_ENTER)
    469         Indx[lgmixVal.GetId()] = [hist,name]
     476            '%.4f'%(UseList[DData.G2hist][name][1][2]),style=wx.TE_PROCESS_ENTER)
     477        Indx[lgmixVal.GetId()] = [DData.G2hist,name]
    470478        lgmixVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    471479        lgmixVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    475483    def ResetSizer(name,OnReset):
    476484        resetSizer = wx.BoxSizer(wx.HORIZONTAL)
    477         resetSizer.Add((5,0),0)
    478485        reset = wx.CheckBox(DData,-1,label='Reset?')
    479486        reset.thisown = False
    480487        reset.SetValue(False)
    481         Indx[reset.GetId()] = [hist,name]
     488        Indx[reset.GetId()] = [DData.G2hist,name]
    482489        reset.Bind(wx.EVT_CHECKBOX,OnReset)
    483         resetSizer.Add(reset,0,WACV)
     490        resetSizer.Add(reset,0,WACV|wx.TOP,5)
    484491        return resetSizer
    485492       
     
    488495        sizeRef = wx.CheckBox(DData,-1,label=name)
    489496        sizeRef.thisown = False
    490         sizeRef.SetValue(UseList[hist][parm][2][0])
    491         Indx[sizeRef.GetId()] = [hist,0]
     497        sizeRef.SetValue(UseList[DData.G2hist][parm][2][0])
     498        Indx[sizeRef.GetId()] = [DData.G2hist,0]
    492499        sizeRef.Bind(wx.EVT_CHECKBOX, OnRef)
    493500        isoSizer.Add(sizeRef,0,WACV)
    494501        sizeVal = wx.TextCtrl(DData,wx.ID_ANY,
    495             fmt%(UseList[hist][parm][1][0]),style=wx.TE_PROCESS_ENTER)
    496         Indx[sizeVal.GetId()] = [hist,0]
     502            fmt%(UseList[DData.G2hist][parm][1][0]),style=wx.TE_PROCESS_ENTER)
     503        Indx[sizeVal.GetId()] = [DData.G2hist,0]
    497504        sizeVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    498505        sizeVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    503510        uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    504511        uniSizer.Add(wx.StaticText(DData,-1,' Unique axis, H K L: '),0,WACV)
    505         h,k,l = UseList[hist][parm][3]
     512        h,k,l = UseList[DData.G2hist][parm][3]
    506513        Axis = wx.TextCtrl(DData,-1,'%3d %3d %3d'%(h,k,l),style=wx.TE_PROCESS_ENTER)
    507514        Axis.Bind(wx.EVT_TEXT_ENTER,OnAxis)
     
    513520        dataSizer = wx.BoxSizer(wx.HORIZONTAL)
    514521        parms = zip([' Equatorial '+parmName,' Axial '+parmName],
    515             UseList[hist][parm][1],UseList[hist][parm][2],range(2))
     522            UseList[DData.G2hist][parm][1],UseList[DData.G2hist][parm][2],range(2))
    516523        for Pa,val,ref,id in parms:
    517524            sizeRef = wx.CheckBox(DData,-1,label=Pa)
    518525            sizeRef.thisown = False
    519526            sizeRef.SetValue(ref)
    520             Indx[sizeRef.GetId()] = [hist,id]
     527            Indx[sizeRef.GetId()] = [DData.G2hist,id]
    521528            sizeRef.Bind(wx.EVT_CHECKBOX, OnRef)
    522529            dataSizer.Add(sizeRef,0,WACV)
    523530            sizeVal = wx.TextCtrl(DData,wx.ID_ANY,fmt%(val),style=wx.TE_PROCESS_ENTER)
    524             Indx[sizeVal.GetId()] = [hist,id]
     531            Indx[sizeVal.GetId()] = [DData.G2hist,id]
    525532            sizeVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    526533            sizeVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
    527             dataSizer.Add(sizeVal,0,WACV)
    528             dataSizer.Add((5,0),0)
     534            dataSizer.Add(sizeVal,0,WACV|wx.BOTTOM,5)
    529535        return dataSizer
    530536       
    531537    def EllSizeDataSizer():
    532         parms = zip(['S11','S22','S33','S12','S13','S23'],UseList[hist]['Size'][4],
    533             UseList[hist]['Size'][5],range(6))
     538        parms = zip(['S11','S22','S33','S12','S13','S23'],UseList[DData.G2hist]['Size'][4],
     539            UseList[DData.G2hist]['Size'][5],range(6))
    534540        dataSizer = wx.FlexGridSizer(0,6,5,5)
    535541        for Pa,val,ref,id in parms:
     
    537543            sizeRef.thisown = False
    538544            sizeRef.SetValue(ref)
    539             Indx[sizeRef.GetId()] = [hist,id]
     545            Indx[sizeRef.GetId()] = [DData.G2hist,id]
    540546            sizeRef.Bind(wx.EVT_CHECKBOX, OnSizeRef)
    541547            dataSizer.Add(sizeRef,0,WACV)
    542548            sizeVal = wx.TextCtrl(DData,wx.ID_ANY,'%.3f'%(val),style=wx.TE_PROCESS_ENTER)
    543             Indx[sizeVal.GetId()] = [hist,id]
     549            Indx[sizeVal.GetId()] = [DData.G2hist,id]
    544550            sizeVal.Bind(wx.EVT_TEXT_ENTER,OnSizeVal)
    545551            sizeVal.Bind(wx.EVT_KILL_FOCUS,OnSizeVal)
     
    550556        Snames = G2spc.MustrainNames(SGData)
    551557        numb = len(Snames)
    552         if len(UseList[hist]['Mustrain'][4]) < numb:
    553             UseList[hist]['Mustrain'][4] = numb*[0.0,]
    554             UseList[hist]['Mustrain'][5] = numb*[False,]
    555         parms = zip(Snames,UseList[hist]['Mustrain'][4],UseList[hist]['Mustrain'][5],range(numb))
     558        if len(UseList[DData.G2hist]['Mustrain'][4]) < numb:
     559            UseList[DData.G2hist]['Mustrain'][4] = numb*[0.0,]
     560            UseList[DData.G2hist]['Mustrain'][5] = numb*[False,]
     561        parms = zip(Snames,UseList[DData.G2hist]['Mustrain'][4],UseList[DData.G2hist]['Mustrain'][5],range(numb))
    556562        dataSizer = wx.FlexGridSizer(0,6,5,5)
    557563        for Pa,val,ref,id in parms:
     
    559565            strainRef.thisown = False
    560566            strainRef.SetValue(ref)
    561             Indx[strainRef.GetId()] = [hist,id]
     567            Indx[strainRef.GetId()] = [DData.G2hist,id]
    562568            strainRef.Bind(wx.EVT_CHECKBOX, OnStrainRef)
    563569            dataSizer.Add(strainRef,0,WACV)
    564570            strainVal = wx.TextCtrl(DData,wx.ID_ANY,'%.5f'%(val),style=wx.TE_PROCESS_ENTER)
    565             Indx[strainVal.GetId()] = [hist,id]
     571            Indx[strainVal.GetId()] = [DData.G2hist,id]
    566572            strainVal.Bind(wx.EVT_TEXT_ENTER,OnStrainVal)
    567573            strainVal.Bind(wx.EVT_KILL_FOCUS,OnStrainVal)
     
    572578        hstrainSizer = wx.FlexGridSizer(0,6,5,5)
    573579        Hsnames = G2spc.HStrainNames(SGData)
    574         parms = zip(Hsnames,UseList[hist]['HStrain'][0],UseList[hist]['HStrain'][1],range(len(Hsnames)))
     580        parms = zip(Hsnames,UseList[DData.G2hist]['HStrain'][0],UseList[DData.G2hist]['HStrain'][1],range(len(Hsnames)))
    575581        for Pa,val,ref,id in parms:
    576582            hstrainRef = wx.CheckBox(DData,-1,label=Pa)
    577583            hstrainRef.thisown = False
    578584            hstrainRef.SetValue(ref)
    579             Indx[hstrainRef.GetId()] = [hist,id]
     585            Indx[hstrainRef.GetId()] = [DData.G2hist,id]
    580586            hstrainRef.Bind(wx.EVT_CHECKBOX, OnHstrainRef)
    581587            hstrainSizer.Add(hstrainRef,0,WACV)
    582588            hstrainVal = wx.TextCtrl(DData,wx.ID_ANY,'%.3g'%(val),style=wx.TE_PROCESS_ENTER)
    583             Indx[hstrainVal.GetId()] = [hist,id]
     589            Indx[hstrainVal.GetId()] = [DData.G2hist,id]
    584590            hstrainVal.Bind(wx.EVT_TEXT_ENTER,OnHstrainVal)
    585591            hstrainVal.Bind(wx.EVT_KILL_FOCUS,OnHstrainVal)
     
    638644                pass
    639645            Obj.SetValue('%8.3f'%(POData[5][odf]))
    640             G2plt.PlotSizeStrainPO(G2frame,data,hist)
     646            G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
    641647   
    642648        textJ = G2lat.textureIndex(POData[5])
    643         mainSizer.Add(wx.StaticText(DData,-1,' Spherical harmonic coefficients: '+'Texture index: %.3f'%(textJ)),0,WACV)
    644         mainSizer.Add((0,5),0)
     649        mainSizer.Add(wx.StaticText(DData,-1,' Spherical harmonic coefficients: '+'Texture index: %.3f'%(textJ))
     650            ,0,WACV|wx.BOTTOM,5)
    645651        ODFSizer = wx.FlexGridSizer(0,8,2,2)
    646652        ODFIndx = {}
     
    670676            finally:
    671677                dlg.Destroy()
    672             wx.CallLater(100,UpdateDData,G2frame,DData,data)
     678            #wx.CallLater(100,UpdateDData,G2frame,DData,data)
     679            wx.CallLater(100,RepaintHistogramInfo)
    673680           
    674681        def OnshToler(event):
     
    699706        extSizer = wx.BoxSizer(wx.HORIZONTAL)
    700707        extRef = wx.CheckBox(DData,-1,label=' Extinction: ')
    701         extRef.SetValue(UseList[hist]['Extinction'][1])
     708        extRef.SetValue(UseList[DData.G2hist]['Extinction'][1])
    702709        extRef.Bind(wx.EVT_CHECKBOX, OnExtRef)
    703710        extSizer.Add(extRef,0,WACV)
    704711        extVal = wx.TextCtrl(DData,wx.ID_ANY,
    705             '%.2f'%(UseList[hist]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
     712            '%.2f'%(UseList[DData.G2hist]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
    706713        extVal.Bind(wx.EVT_TEXT_ENTER,OnExtVal)
    707714        extVal.Bind(wx.EVT_KILL_FOCUS,OnExtVal)
     
    714721        typeSizer.Add(wx.StaticText(DData,-1,' Extinction type: '),0,WACV)
    715722        Choices = ['None','Primary','Secondary Type I','Secondary Type II',]    # remove 'Secondary Type I & II'
    716         typeTxt = wx.ComboBox(DData,-1,choices=Choices,value=UseList[hist]['Extinction'][1],
     723        typeTxt = wx.ComboBox(DData,-1,choices=Choices,value=UseList[DData.G2hist]['Extinction'][1],
    717724            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    718         Indx[typeTxt.GetId()] = [hist,1]
     725        Indx[typeTxt.GetId()] = [DData.G2hist,1]
    719726        typeTxt.Bind(wx.EVT_COMBOBOX,OnSCExtType)
    720727        typeSizer.Add(typeTxt)
    721728        typeSizer.Add(wx.StaticText(DData,-1,' Approx: '),0,WACV)
    722729        Choices=['Lorentzian','Gaussian']
    723         approxTxT = wx.ComboBox(DData,-1,choices=Choices,value=UseList[hist]['Extinction'][0],
     730        approxTxT = wx.ComboBox(DData,-1,choices=Choices,value=UseList[DData.G2hist]['Extinction'][0],
    724731            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    725         Indx[approxTxT.GetId()] = [hist,0]
     732        Indx[approxTxT.GetId()] = [DData.G2hist,0]
    726733        approxTxT.Bind(wx.EVT_COMBOBOX,OnSCExtType)
    727734        typeSizer.Add(approxTxT)
    728         extSizer.Add(typeSizer,0,WACV)
    729         if UseList[hist]['Extinction'][1] != 'None':
    730             extSizer.Add((0,5),)
    731             if 'Tbar' in UseList[hist]['Extinction'][2]:       #skipped for TOF   
     735        if UseList[DData.G2hist]['Extinction'][1] == 'None':
     736            extSizer.Add(typeSizer,0,WACV)
     737        else:
     738            extSizer.Add(typeSizer,0,WACV|wx.BOTTOM,5)       
     739            if 'Tbar' in UseList[DData.G2hist]['Extinction'][2]:       #skipped for TOF   
    732740                valSizer =wx.BoxSizer(wx.HORIZONTAL)
    733741                valSizer.Add(wx.StaticText(DData,-1,' Tbar(mm):'),0,WACV)
    734742                tbarVal = wx.TextCtrl(DData,wx.ID_ANY,
    735                     '%.3f'%(UseList[hist]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
     743                    '%.3f'%(UseList[DData.G2hist]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
    736744                tbarVal.Bind(wx.EVT_TEXT_ENTER,OnTbarVal)
    737745                tbarVal.Bind(wx.EVT_KILL_FOCUS,OnTbarVal)
     
    739747                valSizer.Add(wx.StaticText(DData,-1,' cos(2ThM):'),0,WACV)
    740748                cos2tm = wx.TextCtrl(DData,wx.ID_ANY,
    741                     '%.3f'%(UseList[hist]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
     749                    '%.3f'%(UseList[DData.G2hist]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
    742750                cos2tm.Bind(wx.EVT_TEXT_ENTER,OnCos2TM)
    743751                cos2tm.Bind(wx.EVT_KILL_FOCUS,OnCos2TM)
     
    745753                extSizer.Add(valSizer,0,WACV)
    746754            val2Sizer =wx.BoxSizer(wx.HORIZONTAL)
    747             if 'Primary' in UseList[hist]['Extinction'][1]:
     755            if 'Primary' in UseList[DData.G2hist]['Extinction'][1]:
    748756                Ekey = ['Ep',]
    749             elif 'Secondary Type II' == UseList[hist]['Extinction'][1]:
     757            elif 'Secondary Type II' == UseList[DData.G2hist]['Extinction'][1]:
    750758                Ekey = ['Es',]
    751             elif 'Secondary Type I' == UseList[hist]['Extinction'][1]:
     759            elif 'Secondary Type I' == UseList[DData.G2hist]['Extinction'][1]:
    752760                Ekey = ['Eg',]
    753761            else:
     
    755763            for ekey in Ekey:
    756764                Eref = wx.CheckBox(DData,-1,label=ekey+' : ')
    757                 Eref.SetValue(UseList[hist]['Extinction'][2][ekey][1])
    758                 Indx[Eref.GetId()] = [hist,ekey]
     765                Eref.SetValue(UseList[DData.G2hist]['Extinction'][2][ekey][1])
     766                Indx[Eref.GetId()] = [DData.G2hist,ekey]
    759767                Eref.Bind(wx.EVT_CHECKBOX, OnEref)
    760768                val2Sizer.Add(Eref,0,WACV)
    761769                Eval = wx.TextCtrl(DData,wx.ID_ANY,
    762                     '%10.3e'%(UseList[hist]['Extinction'][2][ekey][0]),style=wx.TE_PROCESS_ENTER)
    763                 Indx[Eval.GetId()] = [hist,ekey]
     770                    '%10.3e'%(UseList[DData.G2hist]['Extinction'][2][ekey][0]),style=wx.TE_PROCESS_ENTER)
     771                Indx[Eval.GetId()] = [DData.G2hist,ekey]
    764772                Eval.Bind(wx.EVT_TEXT_ENTER,OnEval)
    765773                Eval.Bind(wx.EVT_KILL_FOCUS,OnEval)
     
    773781        for bab in ['A','U']:
    774782            babRef = wx.CheckBox(DData,-1,label=' Babinet '+bab+': ')
    775             babRef.SetValue(UseList[hist]['Babinet']['Bab'+bab][1])
    776             Indx[babRef.GetId()] = [hist,bab]
     783            babRef.SetValue(UseList[DData.G2hist]['Babinet']['Bab'+bab][1])
     784            Indx[babRef.GetId()] = [DData.G2hist,bab]
    777785            babRef.Bind(wx.EVT_CHECKBOX, OnBabRef)
    778786            babSizer.Add(babRef,0,WACV)
    779787            babVal = wx.TextCtrl(DData,wx.ID_ANY,
    780                 '%.3f'%(UseList[hist]['Babinet']['Bab'+bab][0]),style=wx.TE_PROCESS_ENTER)
    781             Indx[babVal.GetId()] = [hist,bab]
     788                '%.3f'%(UseList[DData.G2hist]['Babinet']['Bab'+bab][0]),style=wx.TE_PROCESS_ENTER)
     789            Indx[babVal.GetId()] = [DData.G2hist,bab]
    782790            babVal.Bind(wx.EVT_TEXT_ENTER,OnBabVal)
    783791            babVal.Bind(wx.EVT_KILL_FOCUS,OnBabVal)
    784             babSizer.Add(babVal,0,WACV)
    785             babSizer.Add((5,5),0)
     792            babSizer.Add(babVal,0,WACV|wx.BOTTOM,5)
    786793        return babSizer
    787794       
    788795    def OnSelect(event):
    789         hist = keyList[select.GetSelection()]
    790         G2plt.PlotSizeStrainPO(G2frame,data,hist)
    791         wx.CallLater(100,UpdateDData,G2frame,DData,data,hist)
     796        DData.G2hist = keyList[select.GetSelection()]
     797        selSpin.SetValue(keyList.index(DData.G2hist))
     798        G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     799        wx.CallLater(100,RepaintHistogramInfo)
    792800       
    793801    def OnSelSpin(event):
    794         hist = keyList[selSpin.GetValue()]
    795         selSpin.Destroy() # remove button to discourage pressing too fast
    796         G2plt.PlotSizeStrainPO(G2frame,data,hist)
    797         wx.CallLater(100,UpdateDData,G2frame,DData,data,hist)
    798        
    799     DData.DestroyChildren()
    800     if DData.GetSizer():
    801         DData.GetSizer().Clear(True)
    802     if not UseList:
    803         return
    804     mainSizer = wx.BoxSizer(wx.VERTICAL)
    805     mainSizer.Add(wx.StaticText(DData,-1,' Histogram data for '+PhaseName+':'),0,WACV)
    806     DData.G2hist = hist         #so can be used in G2phsGUI for Copy, etc.
    807     if hist != '':
    808         topSizer = wx.FlexGridSizer(1,2,5,5)
    809         selSizer = wx.BoxSizer(wx.HORIZONTAL)   
    810         selSpin = wx.SpinButton(DData,size=(20,100),style=wx.SP_VERTICAL|wx.SP_WRAP)
    811         selSpin.SetValue(keyList.index(hist))
    812         selSpin.SetRange(0,len(keyList)-1)
    813         selSpin.Bind(wx.EVT_SPIN,OnSelSpin)
    814         selSizer.Add(selSpin)
    815         select = wx.ListBox(DData,choices=keyList,style=wx.LB_SINGLE,size=(-1,100))
    816         select.SetSelection(keyList.index(hist))
    817         select.SetFirstItem(keyList.index(hist))
    818         select.Bind(wx.EVT_LISTBOX,OnSelect)
    819         selSizer.Add(select,0,WACV)
    820         topSizer.Add(selSizer)
    821         if PWDR:
    822             topSizer.Add(PlotSizer())
    823         mainSizer.Add(topSizer)       
    824        
    825         try:
    826             histData = UseList[hist]
     802        DData.G2hist = keyList[selSpin.GetValue()]
     803        selSpin.SetValue(keyList.index(DData.G2hist))
     804        select.SetSelection(keyList.index(DData.G2hist))
     805        select.SetFirstItem(keyList.index(DData.G2hist))
     806        G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     807        wx.CallLater(100,RepaintHistogramInfo)
     808       
     809    def RepaintHistogramInfo():
     810        G2frame.bottomSizer.DeleteWindows()
     811        Indx.clear()
     812        G2frame.bottomSizer = ShowHistogramInfo()
     813        mainSizer.Add(G2frame.bottomSizer)
     814        #scrollbars initially set in G2phsGUI.SetPhaseWindow(G2frame.dataFrame,DData,mainSizer)
     815        #phasePage.SetSize(Size)
     816        #phasePage.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1)
     817        #mainFrame.setSizePosLeft(Size)
     818        mainSizer.Layout()
     819        #G2frame.dataFrame.Layout()
     820        #G2frame.dataFrame.SendSizeEvent()
     821        G2frame.dataFrame.Refresh()
     822       
     823    def ShowHistogramInfo():
     824        try:
     825            histData = UseList[DData.G2hist]
    827826        except KeyError:
    828827            G2frame.ErrorDialog('Missing data error',
    829                     hist+' not in GSAS-II data tree')
     828                    DData.G2hist+' not in GSAS-II data tree')
    830829            return
     830        if 'Use' not in UseList[DData.G2hist]:      #patch
     831            UseList[DData.G2hist]['Use'] = True
     832        if 'Babinet' not in UseList[DData.G2hist]:
     833            UseList[DData.G2hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
     834        bottomSizer = wx.BoxSizer(wx.VERTICAL)
     835        showSizer = wx.BoxSizer(wx.HORIZONTAL)
     836        useData = wx.CheckBox(DData,-1,label='Use Histogram: '+DData.G2hist+' ?')
     837        showSizer.Add(useData,0,WACV|wx.TOP|wx.BOTTOM,5)
     838        useData.Bind(wx.EVT_CHECKBOX, OnUseData)
     839        useData.SetValue(UseList[DData.G2hist]['Use'])
     840        bottomSizer.Add(showSizer,0,WACV|wx.TOP|wx.BOTTOM,5)
     841       
     842        bottomSizer.Add(ScaleSizer(),0,WACV|wx.BOTTOM,5)
    831843           
    832         if 'Use' not in UseList[hist]:      #patch
    833             UseList[hist]['Use'] = True
    834         if 'Babinet' not in UseList[hist]:
    835             UseList[hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
    836         mainSizer.Add((5,5),0)
    837         showSizer = wx.BoxSizer(wx.HORIZONTAL)
    838         useData = wx.CheckBox(DData,-1,label='Use Histogram: '+hist+' ?')
    839         showSizer.Add(useData,0,WACV)
    840         useData.Bind(wx.EVT_CHECKBOX, OnUseData)
    841         useData.SetValue(UseList[hist]['Use'])
    842         mainSizer.Add((5,5),0)
    843         mainSizer.Add(showSizer,0,WACV)
    844         mainSizer.Add((0,5),0)
    845        
    846         mainSizer.Add(ScaleSizer())
    847         mainSizer.Add((0,5),0)
    848            
    849         if hist[:4] == 'PWDR':
    850             if UseList[hist]['Size'][0] == 'isotropic':
     844        if DData.G2hist[:4] == 'PWDR':
     845            if UseList[DData.G2hist]['Size'][0] == 'isotropic':
    851846                isoSizer = wx.BoxSizer(wx.HORIZONTAL)
    852847                isoSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     
    854849                isoSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
    855850                isoSizer.Add(ResetSizer('isotropic',OnResetSize),0,WACV)
    856                 mainSizer.Add(isoSizer)
    857                 mainSizer.Add(IsoSizer(u'size(\xb5m): ','Size','%.5f',
    858                     OnSizeVal,OnSizeRef),0,WACV)
    859             elif UseList[hist]['Size'][0] == 'uniaxial':
     851                bottomSizer.Add(isoSizer)
     852                bottomSizer.Add(IsoSizer(u'size(\xb5m): ','Size','%.5f',
     853                    OnSizeVal,OnSizeRef),0,WACV|wx.BOTTOM,5)
     854            elif UseList[DData.G2hist]['Size'][0] == 'uniaxial':
    860855                uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    861856                uniSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     
    863858                uniSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
    864859                uniSizer.Add(ResetSizer('uniaxial',OnResetSize),0,WACV)
    865                 mainSizer.Add(UniSizer('Size',OnSizeAxis),0,WACV)
    866                 mainSizer.Add(uniSizer)
    867                 mainSizer.Add(UniDataSizer(u'size(\xb5m): ','Size','%.5f',OnSizeVal,OnSizeRef))
    868             elif UseList[hist]['Size'][0] == 'ellipsoidal':
     860                bottomSizer.Add(UniSizer('Size',OnSizeAxis),0,WACV)
     861                bottomSizer.Add(uniSizer)
     862                bottomSizer.Add(UniDataSizer(u'size(\xb5m): ','Size','%.5f',OnSizeVal,OnSizeRef)
     863                    ,0,WACV|wx.BOTTOM,5)
     864            elif UseList[DData.G2hist]['Size'][0] == 'ellipsoidal':
    869865                ellSizer = wx.BoxSizer(wx.HORIZONTAL)
    870866                ellSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     
    872868                ellSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
    873869                ellSizer.Add(ResetSizer('ellipsoidal',OnResetSize),0,WACV)
    874                 mainSizer.Add(ellSizer)
    875                 mainSizer.Add(EllSizeDataSizer())
    876             mainSizer.Add((0,5),0)                   
     870                bottomSizer.Add(ellSizer)
     871                bottomSizer.Add(EllSizeDataSizer(),0,WACV|wx.BOTTOM,5)
    877872           
    878             if UseList[hist]['Mustrain'][0] == 'isotropic':
     873            if UseList[DData.G2hist]['Mustrain'][0] == 'isotropic':
    879874                isoSizer = wx.BoxSizer(wx.HORIZONTAL)
    880875                isoSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     
    882877                isoSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
    883878                isoSizer.Add(ResetSizer('isotropic',OnResetStrain),0,WACV)
    884                 mainSizer.Add(isoSizer)
    885                 mainSizer.Add(IsoSizer(' microstrain: ','Mustrain','%.1f',
    886                     OnStrainVal,OnStrainRef),0,WACV)                   
    887                 mainSizer.Add((0,5),0)
    888             elif UseList[hist]['Mustrain'][0] == 'uniaxial':
     879                bottomSizer.Add(isoSizer)
     880                bottomSizer.Add(IsoSizer(' microstrain: ','Mustrain','%.1f',
     881                    OnStrainVal,OnStrainRef),0,WACV|wx.BOTTOM,5)
     882            elif UseList[DData.G2hist]['Mustrain'][0] == 'uniaxial':
    889883                uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    890884                uniSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     
    892886                uniSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
    893887                uniSizer.Add(ResetSizer('uniaxial',OnResetStrain),0,WACV)
    894                 mainSizer.Add(uniSizer)
    895                 mainSizer.Add(UniSizer('Mustrain',OnStrainAxis),0,WACV)
    896                 mainSizer.Add(UniDataSizer('mustrain: ','Mustrain','%.1f',OnStrainVal,OnStrainRef))
    897             elif UseList[hist]['Mustrain'][0] == 'generalized':
     888                bottomSizer.Add(uniSizer)
     889                bottomSizer.Add(UniSizer('Mustrain',OnStrainAxis),0,WACV)
     890                bottomSizer.Add(UniDataSizer('mustrain: ','Mustrain','%.1f',OnStrainVal,OnStrainRef)
     891                                ,0,WACV|wx.BOTTOM,5)
     892            elif UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
    898893                genSizer = wx.BoxSizer(wx.HORIZONTAL)
    899894                genSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     
    901896                genSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
    902897                genSizer.Add(ResetSizer('generalized',OnResetStrain),0,WACV)
    903                 mainSizer.Add(genSizer)
    904                 mainSizer.Add(GenStrainDataSizer())                       
    905             mainSizer.Add((0,5),0)
     898                bottomSizer.Add(genSizer)
     899                bottomSizer.Add(GenStrainDataSizer(),0,WACV|wx.BOTTOM,5)
    906900           
    907             mainSizer.Add(wx.StaticText(DData,-1,' Hydrostatic/elastic strain:'))
    908             mainSizer.Add(HstrainSizer())
     901            bottomSizer.Add(wx.StaticText(DData,-1,' Hydrostatic/elastic strain:'))
     902            bottomSizer.Add(HstrainSizer())
    909903               
    910904            poSizer = wx.BoxSizer(wx.VERTICAL)
    911             POData = UseList[hist]['Pref.Ori.']
     905            POData = UseList[DData.G2hist]['Pref.Ori.']
    912906# patch - add penalty items
    913907            if len(POData) < 7:
     
    925919                    poSizer.Add(SHPenalty(POData))
    926920                   
    927             mainSizer.Add(poSizer)
    928             mainSizer.Add((0,5),0)               
    929             mainSizer.Add(ExtSizer())
    930             mainSizer.Add((0,5),0)
    931             mainSizer.Add(BabSizer())
    932             mainSizer.Add((0,5),0)
    933         elif hist[:4] == 'HKLF':
    934             mainSizer.Add((0,5),0)               
    935             mainSizer.Add(SCExtSizer())
    936             mainSizer.Add((0,5),0)
    937             mainSizer.Add(BabSizer())
    938             mainSizer.Add((0,5),0)
    939             pass
     921            bottomSizer.Add(poSizer)
     922            bottomSizer.Add(ExtSizer(),0,WACV|wx.TOP|wx.BOTTOM,5)
     923            bottomSizer.Add(BabSizer(),0,WACV|wx.BOTTOM,5)
     924        elif DData.G2hist[:4] == 'HKLF':
     925            bottomSizer.Add(SCExtSizer(),0,WACV|wx.TOP|wx.BOTTOM,5)
     926            bottomSizer.Add(BabSizer(),0,WACV|wx.BOTTOM,5)
    940927   
    941     mainSizer.Add((5,5),0)
     928        return bottomSizer
     929               
     930    DData.DestroyChildren()
     931    if DData.GetSizer():
     932        DData.GetSizer().Clear(True)
     933    if not UseList:
     934        return
     935    mainSizer = wx.BoxSizer(wx.VERTICAL)
     936    mainSizer.Add(wx.StaticText(DData,-1,' Histogram data for '+PhaseName+':'),0,WACV)
     937    if DData.G2hist != '':
     938        topSizer = wx.FlexGridSizer(1,2,5,5)
     939        selSizer = wx.BoxSizer(wx.HORIZONTAL)   
     940        selSpin = wx.SpinButton(DData,size=(20,100),style=wx.SP_VERTICAL|wx.SP_WRAP)
     941        selSpin.SetValue(keyList.index(DData.G2hist))
     942        selSpin.SetRange(0,len(keyList)-1)
     943        selSpin.Bind(wx.EVT_SPIN,OnSelSpin)
     944        selSizer.Add(selSpin)
     945        select = wx.ListBox(DData,choices=keyList,style=wx.LB_SINGLE,size=(-1,100))
     946        select.SetSelection(keyList.index(DData.G2hist))
     947        select.SetFirstItem(keyList.index(DData.G2hist))
     948        select.Bind(wx.EVT_LISTBOX,OnSelect)
     949        selSizer.Add(select,0,WACV)
     950        topSizer.Add(selSizer)
     951        if PWDR:
     952            topSizer.Add(PlotSizer())
     953        mainSizer.Add(topSizer)       
     954        G2frame.bottomSizer = ShowHistogramInfo()
     955        mainSizer.Add(G2frame.bottomSizer)
    942956    G2phsGUI.SetPhaseWindow(G2frame.dataFrame,DData,mainSizer)
  • trunk/GSASIIphsGUI.py

    r1809 r1823  
    59815981        elif text == 'Data':
    59825982            G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataMenu)
     5983            DData.G2hist = ''
    59835984            G2ddG.UpdateDData(G2frame,DData,data)
    59845985            wx.CallAfter(G2plt.PlotSizeStrainPO,G2frame,data,hist='',Start=True)           
  • trunk/config_example.py

    r1729 r1823  
    6060'''Specifies a default location for starting GSAS-II
    6161'''
     62
     63wxInspector = None
     64'''If set to True, the wxInspector widget is displayed
     65'''
Note: See TracChangeset for help on using the changeset viewer.