Changeset 1828


Ignore:
Timestamp:
Apr 30, 2015 3:36:24 PM (7 years ago)
Author:
toby
Message:

more tweaks on phase data; keeps selected histogram across phase

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r1823 r1828  
    21582158        self.StrainKey = ''         #ditto for new strain d-zeros
    21592159        self.EnablePlot = True
     2160        self.hist = ''              # selected histogram in Phase/Data tab
    21602161        if GSASIIpath.GetConfigValue('Starting_directory'):
    21612162            try:
  • trunk/GSASIIddataGUI.py

    r1827 r1828  
    7070    PhaseName = generalData['Name']       
    7171    SGData = generalData['SGData']
    72     if not hist and len(keyList):
    73         DData.G2hist = keyList[0]
    74     elif hist:
    75         DData.G2hist = hist
    76 
     72    if len(UseList) == 0: # no associated, don't display anything
     73        G2frame.hist = ''
     74    elif hist: # something was input as a selection
     75        G2frame.hist = hist
     76    elif not G2frame.hist or G2frame.hist not in UseList: # no or bad selection but have data, take the first
     77        for key in keyList:
     78            if key in UseList:
     79                    G2frame.hist = key
     80                    break
    7781    PWDR = any(['PWDR' in item for item in keyList])
    7882    Indx = {}
     
    8387            Obj = event.GetEventObject()
    8488            generalData['Data plot type'] = Obj.GetStringSelection()
    85             G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
    86             wx.CallLater(100,UpdateDData,G2frame,DData,data,DData.G2hist)
     89            G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
     90            wx.CallLater(100,UpdateDData,G2frame,DData,data,G2frame.hist)
    8791           
    8892        def OnPOhkl(event):
     
    98102            h,k,l = hkl
    99103            Obj.SetValue('%3d %3d %3d'%(h,k,l))
    100             G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     104            G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    101105       
    102106        plotSizer = wx.BoxSizer(wx.VERTICAL)
     
    122126        def OnScaleRef(event):
    123127            Obj = event.GetEventObject()
    124             UseList[DData.G2hist]['Scale'][1] = Obj.GetValue()
     128            UseList[G2frame.hist]['Scale'][1] = Obj.GetValue()
    125129           
    126130        def OnScaleVal(event):
     
    129133                scale = float(Obj.GetValue())
    130134                if scale > 0:
    131                     UseList[DData.G2hist]['Scale'][0] = scale
     135                    UseList[G2frame.hist]['Scale'][0] = scale
    132136            except ValueError:
    133137                pass
    134             Obj.SetValue("%.4f"%(UseList[DData.G2hist]['Scale'][0]))          #reset in case of error
     138            Obj.SetValue("%.4f"%(UseList[G2frame.hist]['Scale'][0]))          #reset in case of error
    135139                       
    136140        scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
    137         if 'PWDR' in DData.G2hist:
     141        if 'PWDR' in G2frame.hist:
    138142            scaleRef = wx.CheckBox(DData,wx.ID_ANY,label=' Phase fraction: ')
    139         elif 'HKLF' in DData.G2hist:
     143        elif 'HKLF' in G2frame.hist:
    140144            scaleRef = wx.CheckBox(DData,wx.ID_ANY,label=' Scale factor: ')               
    141         scaleRef.SetValue(UseList[DData.G2hist]['Scale'][1])
     145        scaleRef.SetValue(UseList[G2frame.hist]['Scale'][1])
    142146        scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef)
    143147        scaleSizer.Add(scaleRef,0,WACV)
    144148        scaleVal = wx.TextCtrl(DData,wx.ID_ANY,
    145             '%.4f'%(UseList[DData.G2hist]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
     149            '%.4f'%(UseList[G2frame.hist]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
    146150        scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal)
    147151        scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal)
     
    151155    def OnUseData(event):
    152156        Obj = event.GetEventObject()
    153         UseList[DData.G2hist]['Use'] = Obj.GetValue()
     157        UseList[G2frame.hist]['Use'] = Obj.GetValue()
    154158       
    155159    def OnLGmixRef(event):
    156160        Obj = event.GetEventObject()
    157161        hist,name = Indx[Obj.GetId()]
    158         UseList[DData.G2hist][name][2][2] = Obj.GetValue()
     162        UseList[G2frame.hist][name][2][2] = Obj.GetValue()
    159163       
    160164    def OnLGmixVal(event):
     
    164168            value = float(Obj.GetValue())
    165169            if 0 <= value <= 1:
    166                 UseList[DData.G2hist][name][1][2] = value
     170                UseList[G2frame.hist][name][1][2] = value
    167171            else:
    168172                raise ValueError
    169173        except ValueError:
    170174            pass
    171         Obj.SetValue("%.4f"%(UseList[DData.G2hist][name][1][2]))          #reset in case of error
     175        Obj.SetValue("%.4f"%(UseList[G2frame.hist][name][1][2]))          #reset in case of error
    172176
    173177    def OnSizeType(event):
    174178        Obj = event.GetEventObject()
    175         UseList[DData.G2hist]['Size'][0] = Obj.GetValue()
    176         G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     179        UseList[G2frame.hist]['Size'][0] = Obj.GetValue()
     180        G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    177181        wx.CallLater(100,RepaintHistogramInfo)
    178182       
     
    180184        Obj = event.GetEventObject()
    181185        hist,pid = Indx[Obj.GetId()]
    182         if UseList[DData.G2hist]['Size'][0] == 'ellipsoidal':
    183             UseList[DData.G2hist]['Size'][5][pid] = Obj.GetValue()               
     186        if UseList[G2frame.hist]['Size'][0] == 'ellipsoidal':
     187            UseList[G2frame.hist]['Size'][5][pid] = Obj.GetValue()               
    184188        else:
    185             UseList[DData.G2hist]['Size'][2][pid] = Obj.GetValue()
     189            UseList[G2frame.hist]['Size'][2][pid] = Obj.GetValue()
    186190       
    187191    def OnSizeVal(event):
    188192        Obj = event.GetEventObject()
    189193        hist,pid = Indx[Obj.GetId()]
    190         if UseList[DData.G2hist]['Size'][0] == 'ellipsoidal':
     194        if UseList[G2frame.hist]['Size'][0] == 'ellipsoidal':
    191195            try:
    192196                size = float(Obj.GetValue())
    193197                if pid < 3 and size <= 0.001:            #10A lower limit!
    194198                    raise ValueError
    195                 UseList[DData.G2hist]['Size'][4][pid] = size                   
     199                UseList[G2frame.hist]['Size'][4][pid] = size                   
    196200            except ValueError:
    197201                pass
    198             Obj.SetValue("%.5f"%(UseList[DData.G2hist]['Size'][4][pid]))          #reset in case of error
     202            Obj.SetValue("%.5f"%(UseList[G2frame.hist]['Size'][4][pid]))          #reset in case of error
    199203        else:
    200204            try:
     
    202206                if size <= 0.001:            #10A lower limit!
    203207                    raise ValueError
    204                 UseList[DData.G2hist]['Size'][1][pid] = size
     208                UseList[G2frame.hist]['Size'][1][pid] = size
    205209            except ValueError:
    206210                pass
    207             Obj.SetValue("%.5f"%(UseList[DData.G2hist]['Size'][1][pid]))          #reset in case of error
     211            Obj.SetValue("%.5f"%(UseList[G2frame.hist]['Size'][1][pid]))          #reset in case of error
    208212        G2plt.PlotSizeStrainPO(G2frame,data,hist)
    209213       
     
    214218            hkl = [int(Saxis[i]) for i in range(3)]
    215219        except (ValueError,IndexError):
    216             hkl = UseList[DData.G2hist]['Size'][3]
     220            hkl = UseList[G2frame.hist]['Size'][3]
    217221        if not np.any(np.array(hkl)):
    218             hkl = UseList[DData.G2hist]['Size'][3]
    219         UseList[DData.G2hist]['Size'][3] = hkl
     222            hkl = UseList[G2frame.hist]['Size'][3]
     223        UseList[G2frame.hist]['Size'][3] = hkl
    220224        h,k,l = hkl
    221225        Obj.SetValue('%3d %3d %3d'%(h,k,l))
     
    239243    def OnStrainType(event):
    240244        Obj = event.GetEventObject()
    241         UseList[DData.G2hist]['Mustrain'][0] = Obj.GetValue()
    242         G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     245        UseList[G2frame.hist]['Mustrain'][0] = Obj.GetValue()
     246        G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    243247        wx.CallLater(100,RepaintHistogramInfo)
    244248       
     
    246250        Obj = event.GetEventObject()
    247251        hist,pid = Indx[Obj.GetId()]
    248         if UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
    249             UseList[DData.G2hist]['Mustrain'][5][pid] = Obj.GetValue()
     252        if UseList[G2frame.hist]['Mustrain'][0] == 'generalized':
     253            UseList[G2frame.hist]['Mustrain'][5][pid] = Obj.GetValue()
    250254        else:
    251             UseList[DData.G2hist]['Mustrain'][2][pid] = Obj.GetValue()
     255            UseList[G2frame.hist]['Mustrain'][2][pid] = Obj.GetValue()
    252256       
    253257    def OnStrainVal(event):
     
    257261        try:
    258262            strain = float(Obj.GetValue())
    259             if UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
     263            if UseList[G2frame.hist]['Mustrain'][0] == 'generalized':
    260264                if '4' in Snames[pid] and strain < 0:
    261265                    raise ValueError
    262                 UseList[DData.G2hist]['Mustrain'][4][pid] = strain
     266                UseList[G2frame.hist]['Mustrain'][4][pid] = strain
    263267            else:
    264268                if strain <= 0:
    265269                    raise ValueError
    266                 UseList[DData.G2hist]['Mustrain'][1][pid] = strain
     270                UseList[G2frame.hist]['Mustrain'][1][pid] = strain
    267271        except ValueError:
    268272            pass
    269         if UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
    270             Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Mustrain'][4][pid]))          #reset in case of error
     273        if UseList[G2frame.hist]['Mustrain'][0] == 'generalized':
     274            Obj.SetValue("%.3f"%(UseList[G2frame.hist]['Mustrain'][4][pid]))          #reset in case of error
    271275        else:
    272             Obj.SetValue("%.1f"%(UseList[DData.G2hist]['Mustrain'][1][pid]))          #reset in case of error
     276            Obj.SetValue("%.1f"%(UseList[G2frame.hist]['Mustrain'][1][pid]))          #reset in case of error
    273277        G2plt.PlotSizeStrainPO(G2frame,data,hist)
    274278       
     
    279283            hkl = [int(Saxis[i]) for i in range(3)]
    280284        except (ValueError,IndexError):
    281             hkl = UseList[DData.G2hist]['Mustrain'][3]
     285            hkl = UseList[G2frame.hist]['Mustrain'][3]
    282286        if not np.any(np.array(hkl)):
    283             hkl = UseList[DData.G2hist]['Mustrain'][3]
    284         UseList[DData.G2hist]['Mustrain'][3] = hkl
     287            hkl = UseList[G2frame.hist]['Mustrain'][3]
     288        UseList[G2frame.hist]['Mustrain'][3] = hkl
    285289        h,k,l = hkl
    286290        Obj.SetValue('%3d %3d %3d'%(h,k,l))
    287         G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     291        G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    288292       
    289293    def OnResetStrain(event):
     
    309313        Obj = event.GetEventObject()
    310314        hist,pid = Indx[Obj.GetId()]
    311         UseList[DData.G2hist]['HStrain'][1][pid] = Obj.GetValue()
     315        UseList[G2frame.hist]['HStrain'][1][pid] = Obj.GetValue()
    312316       
    313317    def OnHstrainVal(event):
     
    317321        try:
    318322            strain = float(Obj.GetValue())
    319             UseList[DData.G2hist]['HStrain'][0][pid] = strain
     323            UseList[G2frame.hist]['HStrain'][0][pid] = strain
    320324        except ValueError:
    321325            pass
    322         Obj.SetValue("%.3g"%(UseList[DData.G2hist]['HStrain'][0][pid]))          #reset in case of error
     326        Obj.SetValue("%.3g"%(UseList[G2frame.hist]['HStrain'][0][pid]))          #reset in case of error
    323327
    324328    def OnPOVal(event):
     
    327331            mdVal = float(Obj.GetValue())
    328332            if mdVal > 0:
    329                 UseList[DData.G2hist]['Pref.Ori.'][1] = mdVal
     333                UseList[G2frame.hist]['Pref.Ori.'][1] = mdVal
    330334        except ValueError:
    331335            pass
    332         Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Pref.Ori.'][1]))          #reset in case of error
     336        Obj.SetValue("%.3f"%(UseList[G2frame.hist]['Pref.Ori.'][1]))          #reset in case of error
    333337       
    334338    def OnPOAxis(event):
     
    338342            hkl = [int(Saxis[i]) for i in range(3)]
    339343        except (ValueError,IndexError):
    340             hkl = UseList[DData.G2hist]['Pref.Ori.'][3]
     344            hkl = UseList[G2frame.hist]['Pref.Ori.'][3]
    341345        if not np.any(np.array(hkl)):
    342             hkl = UseList[DData.G2hist]['Pref.Ori.'][3]
    343         UseList[DData.G2hist]['Pref.Ori.'][3] = hkl
     346            hkl = UseList[G2frame.hist]['Pref.Ori.'][3]
     347        UseList[G2frame.hist]['Pref.Ori.'][3] = hkl
    344348        h,k,l = hkl
    345349        Obj.SetValue('%3d %3d %3d'%(h,k,l))
     
    348352        Obj = event.GetEventObject()
    349353        Order = int(Obj.GetValue())
    350         UseList[DData.G2hist]['Pref.Ori.'][4] = Order
    351         UseList[DData.G2hist]['Pref.Ori.'][5] = SetPOCoef(Order,DData.G2hist)
     354        UseList[G2frame.hist]['Pref.Ori.'][4] = Order
     355        UseList[G2frame.hist]['Pref.Ori.'][5] = SetPOCoef(Order,G2frame.hist)
    352356        wx.CallLater(100,RepaintHistogramInfo)
    353357
     
    355359        Obj = event.GetEventObject()
    356360        if 'March' in Obj.GetValue():
    357             UseList[DData.G2hist]['Pref.Ori.'][0] = 'MD'
     361            UseList[G2frame.hist]['Pref.Ori.'][0] = 'MD'
    358362        else:
    359             UseList[DData.G2hist]['Pref.Ori.'][0] = 'SH'
     363            UseList[G2frame.hist]['Pref.Ori.'][0] = 'SH'
    360364        wx.CallLater(100,RepaintHistogramInfo)
    361365
    362366    def OnPORef(event):
    363367        Obj = event.GetEventObject()
    364         UseList[DData.G2hist]['Pref.Ori.'][2] = Obj.GetValue()
     368        UseList[G2frame.hist]['Pref.Ori.'][2] = Obj.GetValue()
    365369           
    366370    def SetPOCoef(Order,hist):
    367371        cofNames = G2lat.GenSHCoeff(SGData['SGLaue'],'0',Order,False)     #cylindrical & no M
    368372        newPOCoef = dict(zip(cofNames,np.zeros(len(cofNames))))
    369         POCoeff = UseList[DData.G2hist]['Pref.Ori.'][5]
     373        POCoeff = UseList[G2frame.hist]['Pref.Ori.'][5]
    370374        for cofName in POCoeff:
    371375            if cofName in  cofNames:
     
    375379    def OnExtRef(event):
    376380        Obj = event.GetEventObject()
    377         UseList[DData.G2hist]['Extinction'][1] = Obj.GetValue()
     381        UseList[G2frame.hist]['Extinction'][1] = Obj.GetValue()
    378382       
    379383    def OnExtVal(event):
     
    382386            ext = float(Obj.GetValue())
    383387            if ext >= 0:
    384                 UseList[DData.G2hist]['Extinction'][0] = ext
     388                UseList[G2frame.hist]['Extinction'][0] = ext
    385389        except ValueError:
    386390            pass
    387         Obj.SetValue("%.2f"%(UseList[DData.G2hist]['Extinction'][0]))
     391        Obj.SetValue("%.2f"%(UseList[G2frame.hist]['Extinction'][0]))
    388392
    389393    def OnBabRef(event):
     
    408412            tbar = float(Obj.GetValue())
    409413            if tbar > 0:
    410                 UseList[DData.G2hist]['Extinction'][2]['Tbar'] = tbar
     414                UseList[G2frame.hist]['Extinction'][2]['Tbar'] = tbar
    411415        except ValueError:
    412416            pass
    413         Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Extinction'][2]['Tbar']))
     417        Obj.SetValue("%.3f"%(UseList[G2frame.hist]['Extinction'][2]['Tbar']))
    414418
    415419    def OnCos2TM(event):
     
    418422            val = float(Obj.GetValue())
    419423            if 0. < val <= 1.:
    420                 UseList[DData.G2hist]['Extinction'][2]['Cos2TM'] = val
     424                UseList[G2frame.hist]['Extinction'][2]['Cos2TM'] = val
    421425        except ValueError:
    422426            pass
    423         Obj.SetValue("%.3f"%(UseList[DData.G2hist]['Extinction'][2]['Cos2TM']))
     427        Obj.SetValue("%.3f"%(UseList[G2frame.hist]['Extinction'][2]['Cos2TM']))
    424428       
    425429    def OnEval(event):
     
    453457        topSizer = wx.BoxSizer(wx.HORIZONTAL)
    454458        topSizer.Add(wx.StaticText(DData,wx.ID_ANY,name),0,WACV)
    455         sizeType = wx.ComboBox(DData,wx.ID_ANY,value=UseList[DData.G2hist][parm][0],choices=choices,
     459        sizeType = wx.ComboBox(DData,wx.ID_ANY,value=UseList[G2frame.hist][parm][0],choices=choices,
    456460            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    457461        sizeType.Bind(wx.EVT_COMBOBOX, OnType)
     
    463467        lgmixRef = wx.CheckBox(DData,wx.ID_ANY,label='LGmix')
    464468        lgmixRef.thisown = False
    465         lgmixRef.SetValue(UseList[DData.G2hist][name][2][2])
    466         Indx[lgmixRef.GetId()] = [DData.G2hist,name]
     469        lgmixRef.SetValue(UseList[G2frame.hist][name][2][2])
     470        Indx[lgmixRef.GetId()] = [G2frame.hist,name]
    467471        lgmixRef.Bind(wx.EVT_CHECKBOX, OnRef)
    468472        lgmixSizer.Add(lgmixRef,0,WACV)
    469473        lgmixVal = wx.TextCtrl(DData,wx.ID_ANY,
    470             '%.4f'%(UseList[DData.G2hist][name][1][2]),style=wx.TE_PROCESS_ENTER)
    471         Indx[lgmixVal.GetId()] = [DData.G2hist,name]
     474            '%.4f'%(UseList[G2frame.hist][name][1][2]),style=wx.TE_PROCESS_ENTER)
     475        Indx[lgmixVal.GetId()] = [G2frame.hist,name]
    472476        lgmixVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    473477        lgmixVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    480484        reset.thisown = False
    481485        reset.SetValue(False)
    482         Indx[reset.GetId()] = [DData.G2hist,name]
     486        Indx[reset.GetId()] = [G2frame.hist,name]
    483487        reset.Bind(wx.EVT_CHECKBOX,OnReset)
    484488        resetSizer.Add(reset,0,WACV|wx.TOP,5)
     
    489493        sizeRef = wx.CheckBox(DData,wx.ID_ANY,label=name)
    490494        sizeRef.thisown = False
    491         sizeRef.SetValue(UseList[DData.G2hist][parm][2][0])
    492         Indx[sizeRef.GetId()] = [DData.G2hist,0]
     495        sizeRef.SetValue(UseList[G2frame.hist][parm][2][0])
     496        Indx[sizeRef.GetId()] = [G2frame.hist,0]
    493497        sizeRef.Bind(wx.EVT_CHECKBOX, OnRef)
    494498        isoSizer.Add(sizeRef,0,WACV)
    495499        sizeVal = wx.TextCtrl(DData,wx.ID_ANY,
    496             fmt%(UseList[DData.G2hist][parm][1][0]),style=wx.TE_PROCESS_ENTER)
    497         Indx[sizeVal.GetId()] = [DData.G2hist,0]
     500            fmt%(UseList[G2frame.hist][parm][1][0]),style=wx.TE_PROCESS_ENTER)
     501        Indx[sizeVal.GetId()] = [G2frame.hist,0]
    498502        sizeVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    499503        sizeVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    504508        uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    505509        uniSizer.Add(wx.StaticText(DData,wx.ID_ANY,' Unique axis, H K L: '),0,WACV)
    506         h,k,l = UseList[DData.G2hist][parm][3]
     510        h,k,l = UseList[G2frame.hist][parm][3]
    507511        Axis = wx.TextCtrl(DData,wx.ID_ANY,'%3d %3d %3d'%(h,k,l),style=wx.TE_PROCESS_ENTER)
    508512        Axis.Bind(wx.EVT_TEXT_ENTER,OnAxis)
     
    514518        dataSizer = wx.BoxSizer(wx.HORIZONTAL)
    515519        parms = zip([' Equatorial '+parmName,' Axial '+parmName],
    516             UseList[DData.G2hist][parm][1],UseList[DData.G2hist][parm][2],range(2))
     520            UseList[G2frame.hist][parm][1],UseList[G2frame.hist][parm][2],range(2))
    517521        for Pa,val,ref,id in parms:
    518522            sizeRef = wx.CheckBox(DData,wx.ID_ANY,label=Pa)
    519523            sizeRef.thisown = False
    520524            sizeRef.SetValue(ref)
    521             Indx[sizeRef.GetId()] = [DData.G2hist,id]
     525            Indx[sizeRef.GetId()] = [G2frame.hist,id]
    522526            sizeRef.Bind(wx.EVT_CHECKBOX, OnRef)
    523527            dataSizer.Add(sizeRef,0,WACV)
    524528            sizeVal = wx.TextCtrl(DData,wx.ID_ANY,fmt%(val),style=wx.TE_PROCESS_ENTER)
    525             Indx[sizeVal.GetId()] = [DData.G2hist,id]
     529            Indx[sizeVal.GetId()] = [G2frame.hist,id]
    526530            sizeVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    527531            sizeVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    530534       
    531535    def EllSizeDataSizer():
    532         parms = zip(['S11','S22','S33','S12','S13','S23'],UseList[DData.G2hist]['Size'][4],
    533             UseList[DData.G2hist]['Size'][5],range(6))
     536        parms = zip(['S11','S22','S33','S12','S13','S23'],UseList[G2frame.hist]['Size'][4],
     537            UseList[G2frame.hist]['Size'][5],range(6))
    534538        dataSizer = wx.FlexGridSizer(0,6,5,5)
    535539        for Pa,val,ref,id in parms:
     
    537541            sizeRef.thisown = False
    538542            sizeRef.SetValue(ref)
    539             Indx[sizeRef.GetId()] = [DData.G2hist,id]
     543            Indx[sizeRef.GetId()] = [G2frame.hist,id]
    540544            sizeRef.Bind(wx.EVT_CHECKBOX, OnSizeRef)
    541545            dataSizer.Add(sizeRef,0,WACV)
    542546            sizeVal = wx.TextCtrl(DData,wx.ID_ANY,'%.3f'%(val),style=wx.TE_PROCESS_ENTER)
    543             Indx[sizeVal.GetId()] = [DData.G2hist,id]
     547            Indx[sizeVal.GetId()] = [G2frame.hist,id]
    544548            sizeVal.Bind(wx.EVT_TEXT_ENTER,OnSizeVal)
    545549            sizeVal.Bind(wx.EVT_KILL_FOCUS,OnSizeVal)
     
    550554        Snames = G2spc.MustrainNames(SGData)
    551555        numb = len(Snames)
    552         if len(UseList[DData.G2hist]['Mustrain'][4]) < numb:
    553             UseList[DData.G2hist]['Mustrain'][4] = numb*[0.0,]
    554             UseList[DData.G2hist]['Mustrain'][5] = numb*[False,]
    555         parms = zip(Snames,UseList[DData.G2hist]['Mustrain'][4],UseList[DData.G2hist]['Mustrain'][5],range(numb))
     556        if len(UseList[G2frame.hist]['Mustrain'][4]) < numb:
     557            UseList[G2frame.hist]['Mustrain'][4] = numb*[0.0,]
     558            UseList[G2frame.hist]['Mustrain'][5] = numb*[False,]
     559        parms = zip(Snames,UseList[G2frame.hist]['Mustrain'][4],UseList[G2frame.hist]['Mustrain'][5],range(numb))
    556560        dataSizer = wx.FlexGridSizer(0,6,5,5)
    557561        for Pa,val,ref,id in parms:
     
    559563            strainRef.thisown = False
    560564            strainRef.SetValue(ref)
    561             Indx[strainRef.GetId()] = [DData.G2hist,id]
     565            Indx[strainRef.GetId()] = [G2frame.hist,id]
    562566            strainRef.Bind(wx.EVT_CHECKBOX, OnStrainRef)
    563567            dataSizer.Add(strainRef,0,WACV)
    564568            strainVal = wx.TextCtrl(DData,wx.ID_ANY,'%.5f'%(val),style=wx.TE_PROCESS_ENTER)
    565             Indx[strainVal.GetId()] = [DData.G2hist,id]
     569            Indx[strainVal.GetId()] = [G2frame.hist,id]
    566570            strainVal.Bind(wx.EVT_TEXT_ENTER,OnStrainVal)
    567571            strainVal.Bind(wx.EVT_KILL_FOCUS,OnStrainVal)
     
    572576        hstrainSizer = wx.FlexGridSizer(0,6,5,5)
    573577        Hsnames = G2spc.HStrainNames(SGData)
    574         parms = zip(Hsnames,UseList[DData.G2hist]['HStrain'][0],UseList[DData.G2hist]['HStrain'][1],range(len(Hsnames)))
     578        parms = zip(Hsnames,UseList[G2frame.hist]['HStrain'][0],UseList[G2frame.hist]['HStrain'][1],range(len(Hsnames)))
    575579        for Pa,val,ref,id in parms:
    576580            hstrainRef = wx.CheckBox(DData,wx.ID_ANY,label=Pa)
    577581            hstrainRef.thisown = False
    578582            hstrainRef.SetValue(ref)
    579             Indx[hstrainRef.GetId()] = [DData.G2hist,id]
     583            Indx[hstrainRef.GetId()] = [G2frame.hist,id]
    580584            hstrainRef.Bind(wx.EVT_CHECKBOX, OnHstrainRef)
    581585            hstrainSizer.Add(hstrainRef,0,WACV)
    582586            hstrainVal = wx.TextCtrl(DData,wx.ID_ANY,'%.3g'%(val),style=wx.TE_PROCESS_ENTER)
    583             Indx[hstrainVal.GetId()] = [DData.G2hist,id]
     587            Indx[hstrainVal.GetId()] = [G2frame.hist,id]
    584588            hstrainVal.Bind(wx.EVT_TEXT_ENTER,OnHstrainVal)
    585589            hstrainVal.Bind(wx.EVT_KILL_FOCUS,OnHstrainVal)
     
    638642                pass
    639643            Obj.SetValue('%8.3f'%(POData[5][odf]))
    640             G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     644            G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    641645   
    642646        ODFSizer = wx.FlexGridSizer(0,8,2,2)
     
    696700        extSizer = wx.BoxSizer(wx.HORIZONTAL)
    697701        extRef = wx.CheckBox(DData,wx.ID_ANY,label=' Extinction: ')
    698         extRef.SetValue(UseList[DData.G2hist]['Extinction'][1])
     702        extRef.SetValue(UseList[G2frame.hist]['Extinction'][1])
    699703        extRef.Bind(wx.EVT_CHECKBOX, OnExtRef)
    700704        extSizer.Add(extRef,0,WACV)
    701705        extVal = wx.TextCtrl(DData,wx.ID_ANY,
    702             '%.2f'%(UseList[DData.G2hist]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
     706            '%.2f'%(UseList[G2frame.hist]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
    703707        extVal.Bind(wx.EVT_TEXT_ENTER,OnExtVal)
    704708        extVal.Bind(wx.EVT_KILL_FOCUS,OnExtVal)
     
    711715        typeSizer.Add(wx.StaticText(DData,wx.ID_ANY,' Extinction type: '),0,WACV)
    712716        Choices = ['None','Primary','Secondary Type I','Secondary Type II',]    # remove 'Secondary Type I & II'
    713         typeTxt = wx.ComboBox(DData,wx.ID_ANY,choices=Choices,value=UseList[DData.G2hist]['Extinction'][1],
     717        typeTxt = wx.ComboBox(DData,wx.ID_ANY,choices=Choices,value=UseList[G2frame.hist]['Extinction'][1],
    714718            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    715         Indx[typeTxt.GetId()] = [DData.G2hist,1]
     719        Indx[typeTxt.GetId()] = [G2frame.hist,1]
    716720        typeTxt.Bind(wx.EVT_COMBOBOX,OnSCExtType)
    717721        typeSizer.Add(typeTxt)
    718722        typeSizer.Add(wx.StaticText(DData,wx.ID_ANY,' Approx: '),0,WACV)
    719723        Choices=['Lorentzian','Gaussian']
    720         approxTxT = wx.ComboBox(DData,wx.ID_ANY,choices=Choices,value=UseList[DData.G2hist]['Extinction'][0],
     724        approxTxT = wx.ComboBox(DData,wx.ID_ANY,choices=Choices,value=UseList[G2frame.hist]['Extinction'][0],
    721725            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    722         Indx[approxTxT.GetId()] = [DData.G2hist,0]
     726        Indx[approxTxT.GetId()] = [G2frame.hist,0]
    723727        approxTxT.Bind(wx.EVT_COMBOBOX,OnSCExtType)
    724728        typeSizer.Add(approxTxT)
    725         if UseList[DData.G2hist]['Extinction'][1] == 'None':
     729        if UseList[G2frame.hist]['Extinction'][1] == 'None':
    726730            extSizer.Add(typeSizer,0,WACV)
    727731        else:
    728732            extSizer.Add(typeSizer,0,WACV|wx.BOTTOM,5)       
    729             if 'Tbar' in UseList[DData.G2hist]['Extinction'][2]:       #skipped for TOF   
     733            if 'Tbar' in UseList[G2frame.hist]['Extinction'][2]:       #skipped for TOF   
    730734                valSizer =wx.BoxSizer(wx.HORIZONTAL)
    731735                valSizer.Add(wx.StaticText(DData,wx.ID_ANY,' Tbar(mm):'),0,WACV)
    732736                tbarVal = wx.TextCtrl(DData,wx.ID_ANY,
    733                     '%.3f'%(UseList[DData.G2hist]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
     737                    '%.3f'%(UseList[G2frame.hist]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
    734738                tbarVal.Bind(wx.EVT_TEXT_ENTER,OnTbarVal)
    735739                tbarVal.Bind(wx.EVT_KILL_FOCUS,OnTbarVal)
     
    737741                valSizer.Add(wx.StaticText(DData,wx.ID_ANY,' cos(2ThM):'),0,WACV)
    738742                cos2tm = wx.TextCtrl(DData,wx.ID_ANY,
    739                     '%.3f'%(UseList[DData.G2hist]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
     743                    '%.3f'%(UseList[G2frame.hist]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
    740744                cos2tm.Bind(wx.EVT_TEXT_ENTER,OnCos2TM)
    741745                cos2tm.Bind(wx.EVT_KILL_FOCUS,OnCos2TM)
     
    743747                extSizer.Add(valSizer,0,WACV)
    744748            val2Sizer =wx.BoxSizer(wx.HORIZONTAL)
    745             if 'Primary' in UseList[DData.G2hist]['Extinction'][1]:
     749            if 'Primary' in UseList[G2frame.hist]['Extinction'][1]:
    746750                Ekey = ['Ep',]
    747             elif 'Secondary Type II' == UseList[DData.G2hist]['Extinction'][1]:
     751            elif 'Secondary Type II' == UseList[G2frame.hist]['Extinction'][1]:
    748752                Ekey = ['Es',]
    749             elif 'Secondary Type I' == UseList[DData.G2hist]['Extinction'][1]:
     753            elif 'Secondary Type I' == UseList[G2frame.hist]['Extinction'][1]:
    750754                Ekey = ['Eg',]
    751755            else:
     
    753757            for ekey in Ekey:
    754758                Eref = wx.CheckBox(DData,wx.ID_ANY,label=ekey+' : ')
    755                 Eref.SetValue(UseList[DData.G2hist]['Extinction'][2][ekey][1])
    756                 Indx[Eref.GetId()] = [DData.G2hist,ekey]
     759                Eref.SetValue(UseList[G2frame.hist]['Extinction'][2][ekey][1])
     760                Indx[Eref.GetId()] = [G2frame.hist,ekey]
    757761                Eref.Bind(wx.EVT_CHECKBOX, OnEref)
    758762                val2Sizer.Add(Eref,0,WACV)
    759763                Eval = wx.TextCtrl(DData,wx.ID_ANY,
    760                     '%10.3e'%(UseList[DData.G2hist]['Extinction'][2][ekey][0]),style=wx.TE_PROCESS_ENTER)
    761                 Indx[Eval.GetId()] = [DData.G2hist,ekey]
     764                    '%10.3e'%(UseList[G2frame.hist]['Extinction'][2][ekey][0]),style=wx.TE_PROCESS_ENTER)
     765                Indx[Eval.GetId()] = [G2frame.hist,ekey]
    762766                Eval.Bind(wx.EVT_TEXT_ENTER,OnEval)
    763767                Eval.Bind(wx.EVT_KILL_FOCUS,OnEval)
     
    771775        for bab in ['A','U']:
    772776            babRef = wx.CheckBox(DData,wx.ID_ANY,label=' Babinet '+bab+': ')
    773             babRef.SetValue(UseList[DData.G2hist]['Babinet']['Bab'+bab][1])
    774             Indx[babRef.GetId()] = [DData.G2hist,bab]
     777            babRef.SetValue(UseList[G2frame.hist]['Babinet']['Bab'+bab][1])
     778            Indx[babRef.GetId()] = [G2frame.hist,bab]
    775779            babRef.Bind(wx.EVT_CHECKBOX, OnBabRef)
    776780            babSizer.Add(babRef,0,WACV)
    777781            babVal = wx.TextCtrl(DData,wx.ID_ANY,
    778                 '%.3f'%(UseList[DData.G2hist]['Babinet']['Bab'+bab][0]),style=wx.TE_PROCESS_ENTER)
    779             Indx[babVal.GetId()] = [DData.G2hist,bab]
     782                '%.3f'%(UseList[G2frame.hist]['Babinet']['Bab'+bab][0]),style=wx.TE_PROCESS_ENTER)
     783            Indx[babVal.GetId()] = [G2frame.hist,bab]
    780784            babVal.Bind(wx.EVT_TEXT_ENTER,OnBabVal)
    781785            babVal.Bind(wx.EVT_KILL_FOCUS,OnBabVal)
     
    784788       
    785789    def OnSelect(event):
    786         DData.G2hist = keyList[select.GetSelection()]
    787         selSpin.SetValue(keyList.index(DData.G2hist))
    788         G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     790        G2frame.hist = keyList[select.GetSelection()]
     791        selSpin.SetValue(keyList.index(G2frame.hist))
     792        G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    789793        wx.CallLater(100,RepaintHistogramInfo)
    790794       
    791795    def OnSelSpin(event):
    792         DData.G2hist = keyList[selSpin.GetValue()]
    793         selSpin.SetValue(keyList.index(DData.G2hist))
    794         select.SetSelection(keyList.index(DData.G2hist))
    795         select.SetFirstItem(keyList.index(DData.G2hist))
    796         G2plt.PlotSizeStrainPO(G2frame,data,DData.G2hist)
     796        G2frame.hist = keyList[selSpin.GetValue()]
     797        selSpin.SetValue(keyList.index(G2frame.hist))
     798        select.SetSelection(keyList.index(G2frame.hist))
     799        select.SetFirstItem(keyList.index(G2frame.hist))
     800        G2plt.PlotSizeStrainPO(G2frame,data,G2frame.hist)
    797801        wx.CallLater(100,RepaintHistogramInfo)
    798802       
     
    809813    def ShowHistogramInfo():
    810814        try:
    811             histData = UseList[DData.G2hist]
     815            histData = UseList[G2frame.hist]
    812816        except KeyError:
    813817            G2frame.ErrorDialog('Missing data error',
    814                     DData.G2hist+' not in GSAS-II data tree')
     818                    G2frame.hist+' not in GSAS-II data tree')
    815819            return
    816         if 'Use' not in UseList[DData.G2hist]:      #patch
    817             UseList[DData.G2hist]['Use'] = True
    818         if 'Babinet' not in UseList[DData.G2hist]:
    819             UseList[DData.G2hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
     820        if 'Use' not in UseList[G2frame.hist]:      #patch
     821            UseList[G2frame.hist]['Use'] = True
     822        if 'Babinet' not in UseList[G2frame.hist]:
     823            UseList[G2frame.hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
    820824        bottomSizer = wx.BoxSizer(wx.VERTICAL)
    821825        showSizer = wx.BoxSizer(wx.HORIZONTAL)
    822         useData = wx.CheckBox(DData,wx.ID_ANY,label='Use Histogram: '+DData.G2hist+' ?')
     826        useData = wx.CheckBox(DData,wx.ID_ANY,label='Use Histogram: '+G2frame.hist+' ?')
    823827        showSizer.Add(useData,0,WACV|wx.TOP|wx.BOTTOM,5)
    824828        useData.Bind(wx.EVT_CHECKBOX, OnUseData)
    825         useData.SetValue(UseList[DData.G2hist]['Use'])
     829        useData.SetValue(UseList[G2frame.hist]['Use'])
    826830        bottomSizer.Add(showSizer,0,WACV|wx.TOP|wx.BOTTOM,5)
    827831       
    828832        bottomSizer.Add(ScaleSizer(),0,WACV|wx.BOTTOM,5)
    829833           
    830         if DData.G2hist[:4] == 'PWDR':
    831             if UseList[DData.G2hist]['Size'][0] == 'isotropic':
     834        if G2frame.hist[:4] == 'PWDR':
     835            if UseList[G2frame.hist]['Size'][0] == 'isotropic':
    832836                isoSizer = wx.BoxSizer(wx.HORIZONTAL)
    833837                isoSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     
    838842                bottomSizer.Add(IsoSizer(u'size(\xb5m): ','Size','%.5f',
    839843                    OnSizeVal,OnSizeRef),0,WACV|wx.BOTTOM,5)
    840             elif UseList[DData.G2hist]['Size'][0] == 'uniaxial':
     844            elif UseList[G2frame.hist]['Size'][0] == 'uniaxial':
    841845                uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    842846                uniSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     
    848852                bottomSizer.Add(UniDataSizer(u'size(\xb5m): ','Size','%.5f',OnSizeVal,OnSizeRef)
    849853                    ,0,WACV|wx.BOTTOM,5)
    850             elif UseList[DData.G2hist]['Size'][0] == 'ellipsoidal':
     854            elif UseList[G2frame.hist]['Size'][0] == 'ellipsoidal':
    851855                ellSizer = wx.BoxSizer(wx.HORIZONTAL)
    852856                ellSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     
    857861                bottomSizer.Add(EllSizeDataSizer(),0,WACV|wx.BOTTOM,5)
    858862           
    859             if UseList[DData.G2hist]['Mustrain'][0] == 'isotropic':
     863            if UseList[G2frame.hist]['Mustrain'][0] == 'isotropic':
    860864                isoSizer = wx.BoxSizer(wx.HORIZONTAL)
    861865                isoSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     
    866870                bottomSizer.Add(IsoSizer(' microstrain: ','Mustrain','%.1f',
    867871                    OnStrainVal,OnStrainRef),0,WACV|wx.BOTTOM,5)
    868             elif UseList[DData.G2hist]['Mustrain'][0] == 'uniaxial':
     872            elif UseList[G2frame.hist]['Mustrain'][0] == 'uniaxial':
    869873                uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    870874                uniSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     
    876880                bottomSizer.Add(UniDataSizer('mustrain: ','Mustrain','%.1f',OnStrainVal,OnStrainRef)
    877881                                ,0,WACV|wx.BOTTOM,5)
    878             elif UseList[DData.G2hist]['Mustrain'][0] == 'generalized':
     882            elif UseList[G2frame.hist]['Mustrain'][0] == 'generalized':
    879883                genSizer = wx.BoxSizer(wx.HORIZONTAL)
    880884                genSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     
    889893               
    890894            poSizer = wx.BoxSizer(wx.VERTICAL)
    891             POData = UseList[DData.G2hist]['Pref.Ori.']
     895            POData = UseList[G2frame.hist]['Pref.Ori.']
    892896# patch - add penalty items
    893897            if len(POData) < 7:
     
    911915            bottomSizer.Add(ExtSizer(),0,WACV|wx.TOP|wx.BOTTOM,5)
    912916            bottomSizer.Add(BabSizer(),0,WACV|wx.BOTTOM,5)
    913         elif DData.G2hist[:4] == 'HKLF':
     917        elif G2frame.hist[:4] == 'HKLF':
    914918            bottomSizer.Add(SCExtSizer(),0,WACV|wx.TOP|wx.BOTTOM,5)
    915919            bottomSizer.Add(BabSizer(),0,WACV|wx.BOTTOM,5)
     
    922926    mainSizer = wx.BoxSizer(wx.VERTICAL)
    923927    mainSizer.Add(wx.StaticText(DData,wx.ID_ANY,' Histogram data for '+PhaseName+':'),0,WACV)
    924     if DData.G2hist != '':
     928    if G2frame.hist != '':
    925929        topSizer = wx.FlexGridSizer(1,2,5,5)
    926930        selSizer = wx.BoxSizer(wx.HORIZONTAL)   
    927931        selSpin = wx.SpinButton(DData,size=(20,120),style=wx.SP_VERTICAL|wx.SP_WRAP)
    928         selSpin.SetValue(keyList.index(DData.G2hist))
     932        selSpin.SetValue(keyList.index(G2frame.hist))
    929933        selSpin.SetRange(0,len(keyList)-1)
    930934        selSpin.Bind(wx.EVT_SPIN,OnSelSpin)
    931935        selSizer.Add(selSpin)
    932936        select = wx.ListBox(DData,choices=keyList,style=wx.LB_SINGLE,size=(-1,120))
    933         select.SetSelection(keyList.index(DData.G2hist))
    934         select.SetFirstItem(keyList.index(DData.G2hist))
     937        select.SetSelection(keyList.index(G2frame.hist))
     938        select.SetFirstItem(keyList.index(G2frame.hist))
    935939        select.Bind(wx.EVT_LISTBOX,OnSelect)
    936940        selSizer.Add(select,0,WACV)
     
    941945        G2frame.bottomSizer = ShowHistogramInfo()
    942946        mainSizer.Add(G2frame.bottomSizer)
     947    elif not keyList:
     948        mainSizer.Add(wx.StaticText(DData,wx.ID_ANY,'  (This project has no data; use Import to read it)'),
     949                      0,WACV|wx.TOP,10)
    943950    elif not UseList:
    944         mainSizer.Add(wx.StaticText(DData,wx.ID_ANY,'  (This phase has no associated data, use appropriate Edit/Add... menu item)'),
     951        mainSizer.Add(wx.StaticText(DData,wx.ID_ANY,'  (This phase has no associated data; use appropriate Edit/Add... menu item)'),
    945952                      0,WACV|wx.TOP,10)
     953    else:
     954        mainSizer.Add(wx.StaticText(DData,wx.ID_ANY,'  (Strange, how did we get here?)'),
     955                      0,WACV|wx.TOP,10)
    946956       
    947957    G2phsGUI.SetPhaseWindow(G2frame.dataFrame,DData,mainSizer)
  • trunk/GSASIIphsGUI.py

    r1827 r1828  
    38123812    def OnDataCopy(event):
    38133813        UseList = data['Histograms']
    3814         hist = DData.G2hist
     3814        hist = G2frame.hist
    38153815        keyList = G2frame.GetHistogramNames(hist[:4])
    38163816        sourceDict = UseList[hist]
     
    38343834    def OnDataCopyFlags(event):
    38353835        UseList = data['Histograms']
    3836         hist = DData.G2hist
     3836        hist = G2frame.hist
    38373837        sourceDict = UseList[hist]
    38383838        copyDict = {}
     
    39023902    def OnSelDataCopy(event):
    39033903        UseList = data['Histograms']
    3904         hist = DData.G2hist
     3904        hist = G2frame.hist
    39053905        keyList = G2frame.GetHistogramNames(hist[:4])
    39063906        sourceDict = UseList[hist]
     
    59915991        elif text == 'Data':
    59925992            G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.DataMenu)
    5993             DData.G2hist = ''
    59945993            G2ddG.UpdateDData(G2frame,DData,data)
    59955994            wx.CallAfter(G2plt.PlotSizeStrainPO,G2frame,data,hist='',Start=True)           
Note: See TracChangeset for help on using the changeset viewer.