Changeset 1699


Ignore:
Timestamp:
Mar 13, 2015 3:46:05 PM (7 years ago)
Author:
vondreele
Message:

rework the DData window - now shows only one histogram at a time. Eliminate the Show button, Show/Hide? menu item, etc. Show a ListBox? & SpinButton? for histogram selection
some more work on ss special positions

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIddataGUI.py

    r1691 r1699  
    4646##### DData routines
    4747################################################################################       
    48 def UpdateDData(G2frame,DData,data):
     48def UpdateDData(G2frame,DData,data,hist=''):
    4949    '''Display the Diffraction Data associated with a phase
    5050    (items where there is a value for each histogram and phase)
     
    7070    keyList = UseList.keys()
    7171    keyList.sort()
     72    if not hist:
     73        hist = keyList[0]
    7274    PWDR = any(['PWDR' in item for item in keyList])
    7375    Indx = {}
     
    98100        choice = ['None','Mustrain','Size','Preferred orientation']
    99101        plotSel = wx.RadioBox(DData,-1,'Select plot type:',choices=choice,
    100             majorDimension=2,style=wx.RA_SPECIFY_COLS)
     102            majorDimension=1,style=wx.RA_SPECIFY_COLS)
    101103        plotSel.SetStringSelection(generalData['Data plot type'])
    102104        plotSel.Bind(wx.EVT_RADIOBOX,OnPlotSel)   
     
    130132                       
    131133        scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
    132         if 'PWDR' in item:
     134        if 'PWDR' in hist:
    133135            scaleRef = wx.CheckBox(DData,-1,label=' Phase fraction: ')
    134         elif 'HKLF' in item:
     136        elif 'HKLF' in hist:
    135137            scaleRef = wx.CheckBox(DData,-1,label=' Scale factor: ')               
    136         scaleRef.SetValue(UseList[item]['Scale'][1])
    137         Indx[scaleRef.GetId()] = item
     138        scaleRef.SetValue(UseList[hist]['Scale'][1])
     139        Indx[scaleRef.GetId()] = hist
    138140        scaleRef.Bind(wx.EVT_CHECKBOX, OnScaleRef)
    139141        scaleSizer.Add(scaleRef,0,WACV)
    140142        scaleVal = wx.TextCtrl(DData,wx.ID_ANY,
    141             '%.4f'%(UseList[item]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
    142         Indx[scaleVal.GetId()] = item
     143            '%.4f'%(UseList[hist]['Scale'][0]),style=wx.TE_PROCESS_ENTER)
     144        Indx[scaleVal.GetId()] = hist
    143145        scaleVal.Bind(wx.EVT_TEXT_ENTER,OnScaleVal)
    144146        scaleVal.Bind(wx.EVT_KILL_FOCUS,OnScaleVal)
     
    150152        hist = Indx[Obj.GetId()]
    151153        UseList[hist]['Use'] = Obj.GetValue()
    152        
    153     def OnShowData(event):
    154         Obj = event.GetEventObject()
    155         hist = Indx[Obj.GetId()]
    156         UseList[hist]['Show'] = Obj.GetValue()
    157         wx.CallLater(100,UpdateDData,G2frame,DData,data)
    158         G2plt.PlotSizeStrainPO(G2frame,data)
    159154       
    160155    def OnCopyData(event):
     
    560555        topSizer = wx.BoxSizer(wx.HORIZONTAL)
    561556        topSizer.Add(wx.StaticText(DData,-1,name),0,WACV)
    562         sizeType = wx.ComboBox(DData,wx.ID_ANY,value=UseList[item][parm][0],choices=choices,
     557        sizeType = wx.ComboBox(DData,wx.ID_ANY,value=UseList[hist][parm][0],choices=choices,
    563558            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    564559        sizeType.Bind(wx.EVT_COMBOBOX, OnType)
    565         Indx[sizeType.GetId()] = item
     560        Indx[sizeType.GetId()] = hist
    566561        topSizer.Add(sizeType)
    567562        topSizer.Add((5,0),0)
     
    572567        lgmixRef = wx.CheckBox(DData,-1,label='LGmix')
    573568        lgmixRef.thisown = False
    574         lgmixRef.SetValue(UseList[item][name][2][2])
    575         Indx[lgmixRef.GetId()] = [item,name]
     569        lgmixRef.SetValue(UseList[hist][name][2][2])
     570        Indx[lgmixRef.GetId()] = [hist,name]
    576571        lgmixRef.Bind(wx.EVT_CHECKBOX, OnRef)
    577572        lgmixSizer.Add(lgmixRef,0,WACV)
    578573        lgmixVal = wx.TextCtrl(DData,wx.ID_ANY,
    579             '%.4f'%(UseList[item][name][1][2]),style=wx.TE_PROCESS_ENTER)
    580         Indx[lgmixVal.GetId()] = [item,name]
     574            '%.4f'%(UseList[hist][name][1][2]),style=wx.TE_PROCESS_ENTER)
     575        Indx[lgmixVal.GetId()] = [hist,name]
    581576        lgmixVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    582577        lgmixVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    590585        reset.thisown = False
    591586        reset.SetValue(False)
    592         Indx[reset.GetId()] = [item,name]
     587        Indx[reset.GetId()] = [hist,name]
    593588        reset.Bind(wx.EVT_CHECKBOX,OnReset)
    594589        resetSizer.Add(reset,0,WACV)
     
    599594        sizeRef = wx.CheckBox(DData,-1,label=name)
    600595        sizeRef.thisown = False
    601         sizeRef.SetValue(UseList[item][parm][2][0])
    602         Indx[sizeRef.GetId()] = [item,0]
     596        sizeRef.SetValue(UseList[hist][parm][2][0])
     597        Indx[sizeRef.GetId()] = [hist,0]
    603598        sizeRef.Bind(wx.EVT_CHECKBOX, OnRef)
    604599        isoSizer.Add(sizeRef,0,WACV)
    605600        sizeVal = wx.TextCtrl(DData,wx.ID_ANY,
    606             fmt%(UseList[item][parm][1][0]),style=wx.TE_PROCESS_ENTER)
    607         Indx[sizeVal.GetId()] = [item,0]
     601            fmt%(UseList[hist][parm][1][0]),style=wx.TE_PROCESS_ENTER)
     602        Indx[sizeVal.GetId()] = [hist,0]
    608603        sizeVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    609604        sizeVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    614609        uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    615610        uniSizer.Add(wx.StaticText(DData,-1,' Unique axis, H K L: '),0,WACV)
    616         h,k,l = UseList[item][parm][3]
     611        h,k,l = UseList[hist][parm][3]
    617612        Axis = wx.TextCtrl(DData,-1,'%3d %3d %3d'%(h,k,l),style=wx.TE_PROCESS_ENTER)
    618         Indx[Axis.GetId()] = item
     613        Indx[Axis.GetId()] = hist
    619614        Axis.Bind(wx.EVT_TEXT_ENTER,OnAxis)
    620615        Axis.Bind(wx.EVT_KILL_FOCUS,OnAxis)
     
    625620        dataSizer = wx.BoxSizer(wx.HORIZONTAL)
    626621        parms = zip([' Equatorial '+parmName,' Axial '+parmName],
    627             UseList[item][parm][1],UseList[item][parm][2],range(2))
     622            UseList[hist][parm][1],UseList[hist][parm][2],range(2))
    628623        for Pa,val,ref,id in parms:
    629624            sizeRef = wx.CheckBox(DData,-1,label=Pa)
    630625            sizeRef.thisown = False
    631626            sizeRef.SetValue(ref)
    632             Indx[sizeRef.GetId()] = [item,id]
     627            Indx[sizeRef.GetId()] = [hist,id]
    633628            sizeRef.Bind(wx.EVT_CHECKBOX, OnRef)
    634629            dataSizer.Add(sizeRef,0,WACV)
    635630            sizeVal = wx.TextCtrl(DData,wx.ID_ANY,fmt%(val),style=wx.TE_PROCESS_ENTER)
    636             Indx[sizeVal.GetId()] = [item,id]
     631            Indx[sizeVal.GetId()] = [hist,id]
    637632            sizeVal.Bind(wx.EVT_TEXT_ENTER,OnVal)
    638633            sizeVal.Bind(wx.EVT_KILL_FOCUS,OnVal)
     
    642637       
    643638    def EllSizeDataSizer():
    644         parms = zip(['S11','S22','S33','S12','S13','S23'],UseList[item]['Size'][4],
    645             UseList[item]['Size'][5],range(6))
     639        parms = zip(['S11','S22','S33','S12','S13','S23'],UseList[hist]['Size'][4],
     640            UseList[hist]['Size'][5],range(6))
    646641        dataSizer = wx.FlexGridSizer(0,6,5,5)
    647642        for Pa,val,ref,id in parms:
     
    649644            sizeRef.thisown = False
    650645            sizeRef.SetValue(ref)
    651             Indx[sizeRef.GetId()] = [item,id]
     646            Indx[sizeRef.GetId()] = [hist,id]
    652647            sizeRef.Bind(wx.EVT_CHECKBOX, OnSizeRef)
    653648            dataSizer.Add(sizeRef,0,WACV)
    654649            sizeVal = wx.TextCtrl(DData,wx.ID_ANY,'%.3f'%(val),style=wx.TE_PROCESS_ENTER)
    655             Indx[sizeVal.GetId()] = [item,id]
     650            Indx[sizeVal.GetId()] = [hist,id]
    656651            sizeVal.Bind(wx.EVT_TEXT_ENTER,OnSizeVal)
    657652            sizeVal.Bind(wx.EVT_KILL_FOCUS,OnSizeVal)
     
    662657        Snames = G2spc.MustrainNames(SGData)
    663658        numb = len(Snames)
    664         if len(UseList[item]['Mustrain'][4]) < numb:
    665             UseList[item]['Mustrain'][4] = numb*[0.0,]
    666             UseList[item]['Mustrain'][5] = numb*[False,]
    667         parms = zip(Snames,UseList[item]['Mustrain'][4],UseList[item]['Mustrain'][5],range(numb))
     659        if len(UseList[hist]['Mustrain'][4]) < numb:
     660            UseList[hist]['Mustrain'][4] = numb*[0.0,]
     661            UseList[hist]['Mustrain'][5] = numb*[False,]
     662        parms = zip(Snames,UseList[hist]['Mustrain'][4],UseList[hist]['Mustrain'][5],range(numb))
    668663        dataSizer = wx.FlexGridSizer(0,6,5,5)
    669664        for Pa,val,ref,id in parms:
     
    671666            strainRef.thisown = False
    672667            strainRef.SetValue(ref)
    673             Indx[strainRef.GetId()] = [item,id]
     668            Indx[strainRef.GetId()] = [hist,id]
    674669            strainRef.Bind(wx.EVT_CHECKBOX, OnStrainRef)
    675670            dataSizer.Add(strainRef,0,WACV)
    676671            strainVal = wx.TextCtrl(DData,wx.ID_ANY,'%.5f'%(val),style=wx.TE_PROCESS_ENTER)
    677             Indx[strainVal.GetId()] = [item,id]
     672            Indx[strainVal.GetId()] = [hist,id]
    678673            strainVal.Bind(wx.EVT_TEXT_ENTER,OnStrainVal)
    679674            strainVal.Bind(wx.EVT_KILL_FOCUS,OnStrainVal)
     
    684679        hstrainSizer = wx.FlexGridSizer(0,6,5,5)
    685680        Hsnames = G2spc.HStrainNames(SGData)
    686         parms = zip(Hsnames,UseList[item]['HStrain'][0],UseList[item]['HStrain'][1],range(len(Hsnames)))
     681        parms = zip(Hsnames,UseList[hist]['HStrain'][0],UseList[hist]['HStrain'][1],range(len(Hsnames)))
    687682        for Pa,val,ref,id in parms:
    688683            hstrainRef = wx.CheckBox(DData,-1,label=Pa)
    689684            hstrainRef.thisown = False
    690685            hstrainRef.SetValue(ref)
    691             Indx[hstrainRef.GetId()] = [item,id]
     686            Indx[hstrainRef.GetId()] = [hist,id]
    692687            hstrainRef.Bind(wx.EVT_CHECKBOX, OnHstrainRef)
    693688            hstrainSizer.Add(hstrainRef,0,WACV)
    694689            hstrainVal = wx.TextCtrl(DData,wx.ID_ANY,'%.3g'%(val),style=wx.TE_PROCESS_ENTER)
    695             Indx[hstrainVal.GetId()] = [item,id]
     690            Indx[hstrainVal.GetId()] = [hist,id]
    696691            hstrainVal.Bind(wx.EVT_TEXT_ENTER,OnHstrainVal)
    697692            hstrainVal.Bind(wx.EVT_KILL_FOCUS,OnHstrainVal)
     
    706701        POType = wx.ComboBox(DData,wx.ID_ANY,value=POtype,choices=choice,
    707702            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    708         Indx[POType.GetId()] = item
     703        Indx[POType.GetId()] = hist
    709704        POType.Bind(wx.EVT_COMBOBOX, OnPOType)
    710705        poSizer.Add(POType)
     
    713708            poOrder = wx.ComboBox(DData,wx.ID_ANY,value=str(POData[4]),choices=[str(2*i) for i in range(18)],
    714709                style=wx.CB_READONLY|wx.CB_DROPDOWN)
    715             Indx[poOrder.GetId()] = item
     710            Indx[poOrder.GetId()] = hist
    716711            poOrder.Bind(wx.EVT_COMBOBOX,OnPOOrder)
    717712            poSizer.Add(poOrder,0,WACV)
    718713            poRef = wx.CheckBox(DData,-1,label=' Refine? ')
    719714            poRef.SetValue(POData[2])
    720             Indx[poRef.GetId()] = item
     715            Indx[poRef.GetId()] = hist
    721716            poRef.Bind(wx.EVT_CHECKBOX,OnPORef)
    722717            poSizer.Add(poRef,0,WACV)
     
    727722        poRef = wx.CheckBox(DData,-1,label=' March-Dollase ratio: ')
    728723        poRef.SetValue(POData[2])
    729         Indx[poRef.GetId()] = item
     724        Indx[poRef.GetId()] = hist
    730725        poRef.Bind(wx.EVT_CHECKBOX,OnPORef)
    731726        poSizer.Add(poRef,0,WACV)
    732727        poVal = wx.TextCtrl(DData,wx.ID_ANY,
    733728            '%.3f'%(POData[1]),style=wx.TE_PROCESS_ENTER)
    734         Indx[poVal.GetId()] = item
     729        Indx[poVal.GetId()] = hist
    735730        poVal.Bind(wx.EVT_TEXT_ENTER,OnPOVal)
    736731        poVal.Bind(wx.EVT_KILL_FOCUS,OnPOVal)
     
    739734        h,k,l =POData[3]
    740735        poAxis = wx.TextCtrl(DData,-1,'%3d %3d %3d'%(h,k,l),style=wx.TE_PROCESS_ENTER)
    741         Indx[poAxis.GetId()] = item
     736        Indx[poAxis.GetId()] = hist
    742737        poAxis.Bind(wx.EVT_TEXT_ENTER,OnPOAxis)
    743738        poAxis.Bind(wx.EVT_KILL_FOCUS,OnPOAxis)
     
    765760        extSizer = wx.BoxSizer(wx.HORIZONTAL)
    766761        extRef = wx.CheckBox(DData,-1,label=' Extinction: ')
    767         extRef.SetValue(UseList[item]['Extinction'][1])
    768         Indx[extRef.GetId()] = item
     762        extRef.SetValue(UseList[hist]['Extinction'][1])
     763        Indx[extRef.GetId()] = hist
    769764        extRef.Bind(wx.EVT_CHECKBOX, OnExtRef)
    770765        extSizer.Add(extRef,0,WACV)
    771766        extVal = wx.TextCtrl(DData,wx.ID_ANY,
    772             '%.2f'%(UseList[item]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
    773         Indx[extVal.GetId()] = item
     767            '%.2f'%(UseList[hist]['Extinction'][0]),style=wx.TE_PROCESS_ENTER)
     768        Indx[extVal.GetId()] = hist
    774769        extVal.Bind(wx.EVT_TEXT_ENTER,OnExtVal)
    775770        extVal.Bind(wx.EVT_KILL_FOCUS,OnExtVal)
     
    782777        typeSizer.Add(wx.StaticText(DData,-1,' Extinction type: '),0,WACV)
    783778        Choices = ['None','Primary','Secondary Type I','Secondary Type II','Secondary Type I & II']
    784         typeTxt = wx.ComboBox(DData,-1,choices=Choices,value=UseList[item]['Extinction'][1],
     779        typeTxt = wx.ComboBox(DData,-1,choices=Choices,value=UseList[hist]['Extinction'][1],
    785780            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    786         Indx[typeTxt.GetId()] = [item,1]
     781        Indx[typeTxt.GetId()] = [hist,1]
    787782        typeTxt.Bind(wx.EVT_COMBOBOX,OnSCExtType)
    788783        typeSizer.Add(typeTxt)
    789784        typeSizer.Add(wx.StaticText(DData,-1,' Approx: '),0,WACV)
    790785        Choices=['Lorentzian','Gaussian']
    791         approxTxT = wx.ComboBox(DData,-1,choices=Choices,value=UseList[item]['Extinction'][0],
     786        approxTxT = wx.ComboBox(DData,-1,choices=Choices,value=UseList[hist]['Extinction'][0],
    792787            style=wx.CB_READONLY|wx.CB_DROPDOWN)
    793         Indx[approxTxT.GetId()] = [item,0]
     788        Indx[approxTxT.GetId()] = [hist,0]
    794789        approxTxT.Bind(wx.EVT_COMBOBOX,OnSCExtType)
    795790        typeSizer.Add(approxTxT)
    796791        extSizer.Add(typeSizer,0,WACV)
    797         if UseList[item]['Extinction'][1] != 'None':
     792        if UseList[hist]['Extinction'][1] != 'None':
    798793            extSizer.Add((0,5),)
    799             if 'Tbar' in UseList[item]['Extinction'][2]:       #skipped for TOF   
     794            if 'Tbar' in UseList[hist]['Extinction'][2]:       #skipped for TOF   
    800795                valSizer =wx.BoxSizer(wx.HORIZONTAL)
    801796                valSizer.Add(wx.StaticText(DData,-1,' Tbar(mm):'),0,WACV)
    802797                tbarVal = wx.TextCtrl(DData,wx.ID_ANY,
    803                     '%.3f'%(UseList[item]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
    804                 Indx[tbarVal.GetId()] = item
     798                    '%.3f'%(UseList[hist]['Extinction'][2]['Tbar']),style=wx.TE_PROCESS_ENTER)
     799                Indx[tbarVal.GetId()] = hist
    805800                tbarVal.Bind(wx.EVT_TEXT_ENTER,OnTbarVal)
    806801                tbarVal.Bind(wx.EVT_KILL_FOCUS,OnTbarVal)
     
    808803                valSizer.Add(wx.StaticText(DData,-1,' cos(2ThM):'),0,WACV)
    809804                cos2tm = wx.TextCtrl(DData,wx.ID_ANY,
    810                     '%.3f'%(UseList[item]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
    811                 Indx[cos2tm.GetId()] = item
     805                    '%.3f'%(UseList[hist]['Extinction'][2]['Cos2TM']),style=wx.TE_PROCESS_ENTER)
     806                Indx[cos2tm.GetId()] = hist
    812807                cos2tm.Bind(wx.EVT_TEXT_ENTER,OnCos2TM)
    813808                cos2tm.Bind(wx.EVT_KILL_FOCUS,OnCos2TM)
     
    815810                extSizer.Add(valSizer,0,WACV)
    816811            val2Sizer =wx.BoxSizer(wx.HORIZONTAL)
    817             if 'Primary' in UseList[item]['Extinction'][1]:
     812            if 'Primary' in UseList[hist]['Extinction'][1]:
    818813                Ekey = ['Ep',]
    819             elif 'Secondary Type II' == UseList[item]['Extinction'][1]:
     814            elif 'Secondary Type II' == UseList[hist]['Extinction'][1]:
    820815                Ekey = ['Es',]
    821             elif 'Secondary Type I' == UseList[item]['Extinction'][1]:
     816            elif 'Secondary Type I' == UseList[hist]['Extinction'][1]:
    822817                Ekey = ['Eg',]
    823818            else:
     
    825820            for ekey in Ekey:
    826821                Eref = wx.CheckBox(DData,-1,label=ekey+' : ')
    827                 Eref.SetValue(UseList[item]['Extinction'][2][ekey][1])
    828                 Indx[Eref.GetId()] = [item,ekey]
     822                Eref.SetValue(UseList[hist]['Extinction'][2][ekey][1])
     823                Indx[Eref.GetId()] = [hist,ekey]
    829824                Eref.Bind(wx.EVT_CHECKBOX, OnEref)
    830825                val2Sizer.Add(Eref,0,WACV)
    831826                Eval = wx.TextCtrl(DData,wx.ID_ANY,
    832                     '%10.3e'%(UseList[item]['Extinction'][2][ekey][0]),style=wx.TE_PROCESS_ENTER)
    833                 Indx[Eval.GetId()] = [item,ekey]
     827                    '%10.3e'%(UseList[hist]['Extinction'][2][ekey][0]),style=wx.TE_PROCESS_ENTER)
     828                Indx[Eval.GetId()] = [hist,ekey]
    834829                Eval.Bind(wx.EVT_TEXT_ENTER,OnEval)
    835830                Eval.Bind(wx.EVT_KILL_FOCUS,OnEval)
     
    843838        for bab in ['A','U']:
    844839            babRef = wx.CheckBox(DData,-1,label=' Babinet '+bab+': ')
    845             babRef.SetValue(UseList[item]['Babinet']['Bab'+bab][1])
    846             Indx[babRef.GetId()] = [item,bab]
     840            babRef.SetValue(UseList[hist]['Babinet']['Bab'+bab][1])
     841            Indx[babRef.GetId()] = [hist,bab]
    847842            babRef.Bind(wx.EVT_CHECKBOX, OnBabRef)
    848843            babSizer.Add(babRef,0,WACV)
    849844            babVal = wx.TextCtrl(DData,wx.ID_ANY,
    850                 '%.3f'%(UseList[item]['Babinet']['Bab'+bab][0]),style=wx.TE_PROCESS_ENTER)
    851             Indx[babVal.GetId()] = [item,bab]
     845                '%.3f'%(UseList[hist]['Babinet']['Bab'+bab][0]),style=wx.TE_PROCESS_ENTER)
     846            Indx[babVal.GetId()] = [hist,bab]
    852847            babVal.Bind(wx.EVT_TEXT_ENTER,OnBabVal)
    853848            babVal.Bind(wx.EVT_KILL_FOCUS,OnBabVal)
     
    856851        return babSizer
    857852       
     853    def OnSelect(event):
     854        hist = keyList[select.GetSelection()]
     855        G2plt.PlotSizeStrainPO(G2frame,data)
     856        wx.CallLater(100,UpdateDData,G2frame,DData,data,hist)
     857       
     858    def OnSelSpin(event):
     859        hist = keyList[selSpin.GetValue()]
     860        G2plt.PlotSizeStrainPO(G2frame,data)
     861        UpdateDData(G2frame,DData,data,hist)                 
     862       
    858863    if DData.GetSizer():
    859864        DData.GetSizer().Clear(True)
    860865    mainSizer = wx.BoxSizer(wx.VERTICAL)
    861866    mainSizer.Add(wx.StaticText(DData,-1,'Histogram data for '+PhaseName+':'),0,WACV)
     867    topSizer = wx.FlexGridSizer(1,2,5,5)
     868    selSizer = wx.BoxSizer(wx.HORIZONTAL)   
     869    selSpin = wx.SpinButton(DData,size=(20,100),style=wx.SP_VERTICAL|wx.SP_WRAP)
     870    selSpin.SetValue(keyList.index(hist))
     871    selSpin.SetRange(0,len(keyList)-1)
     872    selSpin.Bind(wx.EVT_SPIN,OnSelSpin)
     873    selSizer.Add(selSpin)
     874    select = wx.ListBox(DData,choices=keyList,style=wx.LB_SINGLE,size=(-1,100))
     875    select.SetSelection(keyList.index(hist))
     876    select.SetFirstItem(keyList.index(hist))
     877    select.Bind(wx.EVT_LISTBOX,OnSelect)
     878    selSizer.Add(select,0,WACV)
     879    topSizer.Add(selSizer)
    862880    if PWDR:
    863         mainSizer.Add(PlotSizer())           
    864        
    865     for item in keyList:
    866         histData = UseList[item]
    867         if 'Use' not in UseList[item]:      #patch
    868             UseList[item]['Use'] = True
    869         if 'Babinet' not in UseList[item]:
    870             UseList[item]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
    871         showSizer = wx.BoxSizer(wx.HORIZONTAL)
    872         showData = wx.CheckBox(DData,-1,label=' Show '+item)
    873         showData.SetValue(UseList[item]['Show'])
    874         Indx[showData.GetId()] = item
    875         showData.Bind(wx.EVT_CHECKBOX, OnShowData)
    876         showSizer.Add(showData,0,WACV)
    877         useData = wx.CheckBox(DData,-1,label='Use?')
    878         Indx[useData.GetId()] = item
    879         showSizer.Add(useData,0,WACV)
    880         useData.Bind(wx.EVT_CHECKBOX, OnUseData)
    881         useData.SetValue(UseList[item]['Use'])
    882         copyData = wx.Button(DData,-1,label=' Copy?')
    883         Indx[copyData.GetId()] = item
    884         copyData.Bind(wx.EVT_BUTTON,OnCopyData)
    885         showSizer.Add(copyData,WACV)
    886         copyFlags = wx.Button(DData,-1,label=' Copy flags?')
    887         Indx[copyFlags.GetId()] = item
    888         copyFlags.Bind(wx.EVT_BUTTON,OnCopyFlags)
    889         showSizer.Add(copyFlags,WACV)
    890         mainSizer.Add((5,5),0)
    891         mainSizer.Add(showSizer,0,WACV)
     881        topSizer.Add(PlotSizer())
     882    mainSizer.Add(topSizer)       
     883       
     884    histData = UseList[hist]
     885    if 'Use' not in UseList[hist]:      #patch
     886        UseList[hist]['Use'] = True
     887    if 'Babinet' not in UseList[hist]:
     888        UseList[hist]['Babinet'] = {'BabA':[0.0,False],'BabU':[0.0,False]}
     889    showSizer = wx.BoxSizer(wx.HORIZONTAL)
     890    showSizer.Add(wx.StaticText(DData,label=hist),0,WACV)
     891    useData = wx.CheckBox(DData,-1,label='Use?')
     892    Indx[useData.GetId()] = hist
     893    showSizer.Add(useData,0,WACV)
     894    useData.Bind(wx.EVT_CHECKBOX, OnUseData)
     895    useData.SetValue(UseList[hist]['Use'])
     896    copyData = wx.Button(DData,-1,label=' Copy?')
     897    Indx[copyData.GetId()] = hist
     898    copyData.Bind(wx.EVT_BUTTON,OnCopyData)
     899    showSizer.Add(copyData,WACV)
     900    copyFlags = wx.Button(DData,-1,label=' Copy flags?')
     901    Indx[copyFlags.GetId()] = hist
     902    copyFlags.Bind(wx.EVT_BUTTON,OnCopyFlags)
     903    showSizer.Add(copyFlags,WACV)
     904    mainSizer.Add((5,5),0)
     905    mainSizer.Add(showSizer,0,WACV)
     906    mainSizer.Add((0,5),0)
     907       
     908    mainSizer.Add(ScaleSizer())
     909    mainSizer.Add((0,5),0)
     910       
     911    if hist[:4] == 'PWDR':
     912        if UseList[hist]['Size'][0] == 'isotropic':
     913            isoSizer = wx.BoxSizer(wx.HORIZONTAL)
     914            isoSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     915                'Size',OnSizeType),0,WACV)
     916            isoSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
     917            isoSizer.Add(ResetSizer('isotropic',OnResetSize),0,WACV)
     918            mainSizer.Add(isoSizer)
     919            mainSizer.Add(IsoSizer(u'size(\xb5m): ','Size','%.5f',
     920                OnSizeVal,OnSizeRef),0,WACV)
     921        elif UseList[hist]['Size'][0] == 'uniaxial':
     922            uniSizer = wx.BoxSizer(wx.HORIZONTAL)
     923            uniSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     924                'Size',OnSizeType),0,WACV)
     925            uniSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
     926            uniSizer.Add(ResetSizer('uniaxial',OnResetSize),0,WACV)
     927            mainSizer.Add(UniSizer('Size',OnSizeAxis),0,WACV)
     928            mainSizer.Add(uniSizer)
     929            mainSizer.Add(UniDataSizer(u'size(\xb5m): ','Size','%.5f',OnSizeVal,OnSizeRef))
     930        elif UseList[hist]['Size'][0] == 'ellipsoidal':
     931            ellSizer = wx.BoxSizer(wx.HORIZONTAL)
     932            ellSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
     933                'Size',OnSizeType),0,WACV)
     934            ellSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
     935            ellSizer.Add(ResetSizer('ellipsoidal',OnResetSize),0,WACV)
     936            mainSizer.Add(ellSizer)
     937            mainSizer.Add(EllSizeDataSizer())
     938        mainSizer.Add((0,5),0)                   
     939       
     940        if UseList[hist]['Mustrain'][0] == 'isotropic':
     941            isoSizer = wx.BoxSizer(wx.HORIZONTAL)
     942            isoSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     943                'Mustrain',OnStrainType),0,WACV)
     944            isoSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
     945            isoSizer.Add(ResetSizer('isotropic',OnResetStrain),0,WACV)
     946            mainSizer.Add(isoSizer)
     947            mainSizer.Add(IsoSizer(' microstrain: ','Mustrain','%.1f',
     948                OnStrainVal,OnStrainRef),0,WACV)                   
     949            mainSizer.Add((0,5),0)
     950        elif UseList[hist]['Mustrain'][0] == 'uniaxial':
     951            uniSizer = wx.BoxSizer(wx.HORIZONTAL)
     952            uniSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     953                'Mustrain',OnStrainType),0,WACV)
     954            uniSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
     955            uniSizer.Add(ResetSizer('uniaxial',OnResetStrain),0,WACV)
     956            mainSizer.Add(uniSizer)
     957            mainSizer.Add(UniSizer('Mustrain',OnStrainAxis),0,WACV)
     958            mainSizer.Add(UniDataSizer('mustrain: ','Mustrain','%.1f',OnStrainVal,OnStrainRef))
     959        elif UseList[hist]['Mustrain'][0] == 'generalized':
     960            genSizer = wx.BoxSizer(wx.HORIZONTAL)
     961            genSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
     962                'Mustrain',OnStrainType),0,WACV)
     963            genSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
     964            genSizer.Add(ResetSizer('generalized',OnResetStrain),0,WACV)
     965            mainSizer.Add(genSizer)
     966            mainSizer.Add(GenStrainDataSizer())                       
    892967        mainSizer.Add((0,5),0)
    893968       
    894         if UseList[item]['Show']:
    895             mainSizer.Add(ScaleSizer())
    896             mainSizer.Add((0,5),0)
     969        mainSizer.Add(wx.StaticText(DData,-1,' Hydrostatic/elastic strain:'))
     970        mainSizer.Add(HstrainSizer())
    897971           
    898         if item[:4] == 'PWDR' and UseList[item]['Show']:
    899             if UseList[item]['Size'][0] == 'isotropic':
    900                 isoSizer = wx.BoxSizer(wx.HORIZONTAL)
    901                 isoSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
    902                     'Size',OnSizeType),0,WACV)
    903                 isoSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
    904                 isoSizer.Add(ResetSizer('isotropic',OnResetSize),0,WACV)
    905                 mainSizer.Add(isoSizer)
    906                 mainSizer.Add(IsoSizer(u'size(\xb5m): ','Size','%.5f',
    907                     OnSizeVal,OnSizeRef),0,WACV)
    908             elif UseList[item]['Size'][0] == 'uniaxial':
    909                 uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    910                 uniSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
    911                     'Size',OnSizeType),0,WACV)
    912                 uniSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
    913                 uniSizer.Add(ResetSizer('uniaxial',OnResetSize),0,WACV)
    914                 mainSizer.Add(UniSizer('Size',OnSizeAxis),0,WACV)
    915                 mainSizer.Add(uniSizer)
    916                 mainSizer.Add(UniDataSizer(u'size(\xb5m): ','Size','%.5f',OnSizeVal,OnSizeRef))
    917             elif UseList[item]['Size'][0] == 'ellipsoidal':
    918                 ellSizer = wx.BoxSizer(wx.HORIZONTAL)
    919                 ellSizer.Add(TopSizer(' Domain size model: ',['isotropic','uniaxial','ellipsoidal'],
    920                     'Size',OnSizeType),0,WACV)
    921                 ellSizer.Add(LGmixSizer('Size',OnLGmixVal,OnLGmixRef))
    922                 ellSizer.Add(ResetSizer('ellipsoidal',OnResetSize),0,WACV)
    923                 mainSizer.Add(ellSizer)
    924                 mainSizer.Add(EllSizeDataSizer())
    925             mainSizer.Add((0,5),0)                   
    926            
    927             if UseList[item]['Mustrain'][0] == 'isotropic':
    928                 isoSizer = wx.BoxSizer(wx.HORIZONTAL)
    929                 isoSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
    930                     'Mustrain',OnStrainType),0,WACV)
    931                 isoSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
    932                 isoSizer.Add(ResetSizer('isotropic',OnResetStrain),0,WACV)
    933                 mainSizer.Add(isoSizer)
    934                 mainSizer.Add(IsoSizer(' microstrain: ','Mustrain','%.1f',
    935                     OnStrainVal,OnStrainRef),0,WACV)                   
    936                 mainSizer.Add((0,5),0)
    937             elif UseList[item]['Mustrain'][0] == 'uniaxial':
    938                 uniSizer = wx.BoxSizer(wx.HORIZONTAL)
    939                 uniSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
    940                     'Mustrain',OnStrainType),0,WACV)
    941                 uniSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
    942                 uniSizer.Add(ResetSizer('uniaxial',OnResetStrain),0,WACV)
    943                 mainSizer.Add(uniSizer)
    944                 mainSizer.Add(UniSizer('Mustrain',OnStrainAxis),0,WACV)
    945                 mainSizer.Add(UniDataSizer('mustrain: ','Mustrain','%.1f',OnStrainVal,OnStrainRef))
    946             elif UseList[item]['Mustrain'][0] == 'generalized':
    947                 genSizer = wx.BoxSizer(wx.HORIZONTAL)
    948                 genSizer.Add(TopSizer(' Mustrain model: ',['isotropic','uniaxial','generalized',],
    949                     'Mustrain',OnStrainType),0,WACV)
    950                 genSizer.Add(LGmixSizer('Mustrain',OnLGmixVal,OnLGmixRef))
    951                 genSizer.Add(ResetSizer('generalized',OnResetStrain),0,WACV)
    952                 mainSizer.Add(genSizer)
    953                 mainSizer.Add(GenStrainDataSizer())                       
    954             mainSizer.Add((0,5),0)
    955            
    956             mainSizer.Add(wx.StaticText(DData,-1,' Hydrostatic/elastic strain:'))
    957             mainSizer.Add(HstrainSizer())
     972        #texture  'Pref. Ori.':['MD',1.0,False,[0,0,1],0,[]] last two for 'SH' are SHorder & coeff
     973        poSizer = wx.BoxSizer(wx.VERTICAL)
     974        POData = UseList[hist]['Pref.Ori.']
     975        poSizer.Add(PoTopSizer(POData))
     976        if POData[0] == 'MD':
     977            poSizer.Add(MDDataSizer(POData))
     978        else:           #'SH'
     979            if POData[4]:       #SH order > 0
     980                poSizer.Add(SHDataSizer(POData))
    958981               
    959             #texture  'Pref. Ori.':['MD',1.0,False,[0,0,1],0,[]] last two for 'SH' are SHorder & coeff
    960             poSizer = wx.BoxSizer(wx.VERTICAL)
    961             POData = UseList[item]['Pref.Ori.']
    962             poSizer.Add(PoTopSizer(POData))
    963             if POData[0] == 'MD':
    964                 poSizer.Add(MDDataSizer(POData))
    965             else:           #'SH'
    966                 if POData[4]:       #SH order > 0
    967                     poSizer.Add(SHDataSizer(POData))
    968                    
    969             mainSizer.Add(poSizer)
    970             mainSizer.Add((0,5),0)               
    971             mainSizer.Add(ExtSizer())
    972             mainSizer.Add((0,5),0)
    973             mainSizer.Add(BabSizer())
    974             mainSizer.Add((0,5),0)
    975         elif item[:4] == 'HKLF' and UseList[item]['Show']:
    976             mainSizer.Add((0,5),0)               
    977             mainSizer.Add(SCExtSizer())
    978             mainSizer.Add((0,5),0)
    979             mainSizer.Add(BabSizer())
    980             mainSizer.Add((0,5),0)
    981             pass
    982         if UseList[item]['Show']:
    983             G2gd.HorizontalLine(mainSizer,DData)
     982        mainSizer.Add(poSizer)
     983        mainSizer.Add((0,5),0)               
     984        mainSizer.Add(ExtSizer())
     985        mainSizer.Add((0,5),0)
     986        mainSizer.Add(BabSizer())
     987        mainSizer.Add((0,5),0)
     988    elif hist[:4] == 'HKLF':
     989        mainSizer.Add((0,5),0)               
     990        mainSizer.Add(SCExtSizer())
     991        mainSizer.Add((0,5),0)
     992        mainSizer.Add(BabSizer())
     993        mainSizer.Add((0,5),0)
     994        pass
    984995
    985996    mainSizer.Add((5,5),0)
  • trunk/GSASIIgrid.py

    r1696 r1699  
    6767
    6868[ wxID_PWDRADD, wxID_HKLFADD, wxID_PWDANALYSIS, wxID_PWDCOPY, wxID_PLOTCTRLCOPY,
    69     wxID_DATADELETE, wxID_SHOWALL,
    70 ] = [wx.NewId() for item in range(7)]
     69    wxID_DATADELETE,
     70] = [wx.NewId() for item in range(6)]
    7171
    7272[ wxID_ATOMSEDITADD, wxID_ATOMSEDITINSERT, wxID_ATOMSEDITDELETE, wxID_ATOMSREFINE,
     
    19611961        self.DataEdit.Append(id=wxID_HKLFADD, kind=wx.ITEM_NORMAL,text='Add single crystal histograms',
    19621962            help='Select new single crystal histograms to be used for this phase')
    1963         self.DataEdit.Append(id=wxID_SHOWALL, kind=wx.ITEM_NORMAL,text='Show/Hide all',
    1964             help='Show/Hide all data entries')           
    19651963        self.DataEdit.Append(id=wxID_DATADELETE, kind=wx.ITEM_NORMAL,text='Remove histograms',
    19661964            help='Remove histograms from use for this phase')
  • trunk/GSASIIphsGUI.py

    r1694 r1699  
    38423842                dlg.Destroy()
    38433843               
    3844     def OnShowAll(event):
    3845         G2frame.DDShowAll = not G2frame.DDShowAll
    3846         UseList = data['Histograms']
    3847         for hist in UseList:
    3848             UseList[hist]['Show'] = G2frame.DDShowAll
    3849         wx.CallAfter(G2ddG.UpdateDData,G2frame,DData,data)
    3850        
    38513844    def OnDataDelete(event):
    38523845        UseList = data['Histograms']
     
    58835876        G2frame.dataFrame.Bind(wx.EVT_MENU, OnPwdrAdd, id=G2gd.wxID_PWDRADD)
    58845877        G2frame.dataFrame.Bind(wx.EVT_MENU, OnHklfAdd, id=G2gd.wxID_HKLFADD)
    5885         G2frame.dataFrame.Bind(wx.EVT_MENU, OnShowAll, id=G2gd.wxID_SHOWALL)
    58865878        G2frame.dataFrame.Bind(wx.EVT_MENU, OnDataDelete, id=G2gd.wxID_DATADELETE)
    58875879        # Atoms
  • trunk/GSASIIspc.py

    r1695 r1699  
    14251425def GetSSfxuinel(waveType,nH,XYZ,SGData,SSGData,debug=False):
    14261426   
     1427    def orderParms(CSI):
     1428        parms = [0,]
     1429        for csi in CSI:
     1430            for i in [0,1,2]:
     1431                if csi[i] not in parms:
     1432                    parms.append(csi[i])
     1433        for csi in CSI:
     1434            for i in [0,1,2]:
     1435                csi[i] = parms.index(csi[i])
     1436        return CSI
     1437   
    14271438    def fracCrenel(tau,Toff,Twid):
    14281439        Tau = (tau-Toff)%1.
     
    15871598                        CSI['Spos'][0][i+3] = [0,0,0]
    15881599                        CSI['Spos'][1][i+3] = [0.,0.,0.]
     1600            elif np.allclose(dX[0,0,:],dXT[0,1,:]*sdet):
     1601                if 'xy' in siteSym or '+-0' in siteSym:
     1602                    CSI['Spos'][0][3:5] = [[12,0,0],[12,0,0]]
     1603                    CSI['Spos'][1][3:5] = [[1.,0,0],[-sdet,0,0]]
     1604                    xsc[3:5] = 0
    15891605            else:
    15901606                for i in range(3):
     
    16611677                else:
    16621678                    usc[i+6] = 0
    1663             if '4/m' in siteSym and np.any(dUT[0,1,:]):
    1664                 CSI['Sadp'][0][6:8] = [[12,0,0],[12,0,0]]
    1665                 if ssop[1][3]:
    1666                     CSI['Sadp'][1][6:8] = [[1.,0.,0.],[-1.,0.,0.]]
    1667                     usc[9] = 1
    1668                 else:
    1669                     CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]
    1670                     usc[9] = 0
    1671             elif '4' in siteSym and np.any(dUT[0,1,:]):
    1672                 CSI['Sadp'][0][6:8] = [[12,0,0],[12,0,0]]
    1673                 CSI['Sadp'][0][:2] = [[11,0,0],[11,0,0]]
    1674                 if ssop[1][3]:
    1675                     CSI['Sadp'][1][:2] = [[1.,0.,0.],[-1.,0.,0.]]
    1676                     CSI['Sadp'][1][6:8] = [[1.,0.,0.],[-1.,0.,0.]]
    1677                     usc[3] = 1
    1678                     usc[9] = 1
    1679                 else:
    1680                     CSI['Sadp'][1][:2] = [[1.,0.,0.],[1.,0.,0.]]
    1681                     CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]
    1682                     usc[3] = 0               
    1683                     usc[9] = 0
     1679            if np.any(dUT[0,1,:]):
     1680                if '4/m' in siteSym:
     1681                    CSI['Sadp'][0][6:8] = [[12,0,0],[12,0,0]]
     1682                    if ssop[1][3]:
     1683                        CSI['Sadp'][1][6:8] = [[1.,0.,0.],[-1.,0.,0.]]
     1684                        usc[9] = 1
     1685                    else:
     1686                        CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]
     1687                        usc[9] = 0
     1688                elif '4' in siteSym:
     1689                    CSI['Sadp'][0][6:8] = [[12,0,0],[12,0,0]]
     1690                    CSI['Sadp'][0][:2] = [[11,0,0],[11,0,0]]
     1691                    if ssop[1][3]:
     1692                        CSI['Sadp'][1][:2] = [[1.,0.,0.],[-1.,0.,0.]]
     1693                        CSI['Sadp'][1][6:8] = [[1.,0.,0.],[-1.,0.,0.]]
     1694                        usc[3] = 1
     1695                        usc[9] = 1
     1696                    else:
     1697                        CSI['Sadp'][1][:2] = [[1.,0.,0.],[1.,0.,0.]]
     1698                        CSI['Sadp'][1][6:8] = [[1.,0.,0.],[1.,0.,0.]]
     1699                        usc[3] = 0               
     1700                        usc[9] = 0
     1701                elif 'xy' in siteSym or '+-0' in siteSym:
     1702                    if np.allclose(dU[0,0,:],dUT[0,1,:]*sdet):
     1703                        print np.allclose(dU[0,0,:],dUT[0,1,:]*sdet),sdet
     1704                        CSI['Sadp'][0][4:6] = [[12,0,0],[12,0,0]]
     1705                        CSI['Sadp'][0][6:8] = [[11,0,0],[11,0,0]]
     1706                        CSI['Sadp'][1][4:6] = [[1.,0.,0.],[sdet,0.,0.]]
     1707                        CSI['Sadp'][1][6:8] = [[1.,0.,0.],[sdet,0.,0.]]
     1708                        usc[4:6] = 0
     1709                        usc[6:8] = 0
     1710                   
    16841711            print SSMT2text(ssop).replace(' ',''),sdet,ssdet,epsinv,usc
    16851712        USC &= usc
     
    17061733            else:
    17071734                CSI['Sfrac'][0][i] = 0
    1708                 CSI['Sfrac'][1][i] = 0.           
     1735                CSI['Sfrac'][1][i] = 0.
     1736    CSI['Spos'][0] = orderParms(CSI['Spos'][0])
     1737    CSI['Sadp'][0] = orderParms(CSI['Sadp'][0])           
    17091738    if debug:
    17101739        return CSI,[tau,tauT],[dF,dFTP],[dX,dXTP],[dU,dUTP]
Note: See TracChangeset for help on using the changeset viewer.