Ignore:
Timestamp:
Jul 4, 2017 12:11:29 PM (6 years ago)
Author:
toby
Message:

use GPXtree in place of PatternTree?

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branch/2frame/GSASIIdataGUI.py

    r2900 r2905  
    744744        contents of the Controls 'Seq Data' item (if present)
    745745        '''
    746         controls = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,self.root, 'Controls'))
     746        controls = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,self.root, 'Controls'))
    747747        if controls.get('Seq Data'):
    748748            for i in self.SeqRefine: i.Enable(True)
     
    10701070            newPhaseList.append(PhaseName)
    10711071            print(u'Read phase {} from file {}'.format(PhaseName,self.lastimport))
    1072             if not GetPatternTreeItemId(self,self.root,'Phases'):
    1073                 sub = self.PatternTree.AppendItem(parent=self.root,text='Phases')
     1072            if not GetGPXtreeItemId(self,self.root,'Phases'):
     1073                sub = self.GPXtree.AppendItem(parent=self.root,text='Phases')
    10741074            else:
    1075                 sub = GetPatternTreeItemId(self,self.root,'Phases')
    1076             psub = self.PatternTree.AppendItem(parent=sub,text=PhaseName)
    1077             self.PatternTree.SetItemPyData(psub,rd.Phase)
    1078             self.PatternTree.Expand(self.root) # make sure phases are seen
    1079             self.PatternTree.Expand(sub)
    1080             self.PatternTree.Expand(psub)
     1075                sub = GetGPXtreeItemId(self,self.root,'Phases')
     1076            psub = self.GPXtree.AppendItem(parent=sub,text=PhaseName)
     1077            self.GPXtree.SetItemPyData(psub,rd.Phase)
     1078            self.GPXtree.Expand(self.root) # make sure phases are seen
     1079            self.GPXtree.Expand(sub)
     1080            self.GPXtree.Expand(psub)
    10811081            wx.CallAfter(SelectDataTreeItem,self,psub) #bring up new phase General tab
    10821082
    10831083            if rd.Constraints:
    1084                 sub = GetPatternTreeItemId(self,self.root,'Constraints') # was created in CheckNotebook if needed
    1085                 Constraints = self.PatternTree.GetItemPyData(sub)               
     1084                sub = GetGPXtreeItemId(self,self.root,'Constraints') # was created in CheckNotebook if needed
     1085                Constraints = self.GPXtree.GetItemPyData(sub)               
    10861086                # TODO: make sure that NEWVAR names are unique here?
    10871087                for i in rd.Constraints:
     
    10961096        PWDRlist = []
    10971097        HKLFlist = []
    1098         if self.PatternTree.GetCount():
    1099             item, cookie = self.PatternTree.GetFirstChild(self.root)
     1098        if self.GPXtree.GetCount():
     1099            item, cookie = self.GPXtree.GetFirstChild(self.root)
    11001100            while item:
    1101                 name = self.PatternTree.GetItemText(item)
     1101                name = self.GPXtree.GetItemText(item)
    11021102                if name.startswith('PWDR ') and name not in PWDRlist:
    11031103                    PWDRlist.append(name)
    11041104                if name.startswith('HKLF ') and name not in HKLFlist:
    11051105                    HKLFlist.append(name)
    1106                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     1106                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    11071107        TextList = PWDRlist + HKLFlist
    11081108        if not TextList:
     
    11311131                notOK = False
    11321132        # connect new phases to histograms
    1133         sub = GetPatternTreeItemId(self,self.root,'Phases')
     1133        sub = GetGPXtreeItemId(self,self.root,'Phases')
    11341134        if not sub:
    11351135            raise Exception('ERROR -- why are there no phases here?')
    11361136        wx.BeginBusyCursor()
    1137         item, cookie = self.PatternTree.GetFirstChild(sub)
     1137        item, cookie = self.GPXtree.GetFirstChild(sub)
    11381138        while item: # loop over (new) phases
    1139             phaseName = self.PatternTree.GetItemText(item)
    1140             data = self.PatternTree.GetItemPyData(item)
    1141             item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     1139            phaseName = self.GPXtree.GetItemText(item)
     1140            data = self.GPXtree.GetItemPyData(item)
     1141            item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    11421142            if phaseName not in newPhaseList: continue
    11431143            generalData = data['General']
     
    11541154                if histoName in HKLFlist:
    11551155                    #redo UpdateHKLFdata(histoName) here:
    1156                     Id = GetPatternTreeItemId(self,self.root,histoName)
    1157                     refDict,reflData = self.PatternTree.GetItemPyData(Id)
     1156                    Id = GetGPXtreeItemId(self,self.root,histoName)
     1157                    refDict,reflData = self.GPXtree.GetItemPyData(Id)
    11581158                    G,g = G2lat.cell2Gmat(generalData['Cell'][1:7])
    11591159                    Super = reflData.get('Super',0)
     
    11761176                    UseList[histoName] = SetDefaultDData(reflData['Type'],histoName)
    11771177                elif histoName in PWDRlist:
    1178                     Id = GetPatternTreeItemId(self,self.root,histoName)
    1179                     refList = self.PatternTree.GetItemPyData(
    1180                         GetPatternTreeItemId(self,Id,'Reflection Lists'))
     1178                    Id = GetGPXtreeItemId(self,self.root,histoName)
     1179                    refList = self.GPXtree.GetItemPyData(
     1180                        GetGPXtreeItemId(self,Id,'Reflection Lists'))
    11811181                    refList[generalData['Name']] = {}
    11821182                    UseList[histoName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij)
     
    12191219            'image',multiple=True,Preview=False,load2Tree=True)
    12201220        if rdlist:
    1221             self.PatternTree.SelectItem(GetPatternTreeItemId(self,self.Image,'Image Controls'))             #show last image to have beeen read
     1221            self.GPXtree.SelectItem(GetGPXtreeItemId(self,self.Image,'Image Controls'))             #show last image to have beeen read
    12221222                   
    12231223    def _Add_ImportMenu_Sfact(self,parent):
     
    12481248        # get a list of existing histograms
    12491249        HKLFlist = []
    1250         if self.PatternTree.GetCount():
    1251             item, cookie = self.PatternTree.GetFirstChild(self.root)
     1250        if self.GPXtree.GetCount():
     1251            item, cookie = self.GPXtree.GetFirstChild(self.root)
    12521252            while item:
    1253                 name = self.PatternTree.GetItemText(item)
     1253                name = self.GPXtree.GetItemText(item)
    12541254                if name.startswith('HKLF ') and name not in HKLFlist:
    12551255                    HKLFlist.append(name)
    1256                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     1256                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    12571257        # look up which format was requested
    12581258        reqrdr = self.ImportMenuId.get(event.GetId())
     
    12801280                    HistName = G2obj.MakeUniqueLabel(HistName,HKLFlist)
    12811281                    print 'Read structure factor table '+HistName+' from file '+self.lastimport
    1282                     Id = self.PatternTree.AppendItem(parent=self.root,text=HistName)
     1282                    Id = self.GPXtree.AppendItem(parent=self.root,text=HistName)
    12831283                    if not Bank['RefDict'].get('FF'):
    12841284                        Bank['RefDict']['FF'] = {}
    1285                     self.PatternTree.SetItemPyData(Id,[valuesdict,Bank['RefDict']])
    1286                     Sub = self.PatternTree.AppendItem(Id,text='Instrument Parameters')
    1287                     self.PatternTree.SetItemPyData(Sub,copy.copy(rd.Parameters))
    1288                     self.PatternTree.SetItemPyData(
    1289                         self.PatternTree.AppendItem(Id,text='Reflection List'),{})  #dummy entry for GUI use
     1285                    self.GPXtree.SetItemPyData(Id,[valuesdict,Bank['RefDict']])
     1286                    Sub = self.GPXtree.AppendItem(Id,text='Instrument Parameters')
     1287                    self.GPXtree.SetItemPyData(Sub,copy.copy(rd.Parameters))
     1288                    self.GPXtree.SetItemPyData(
     1289                        self.GPXtree.AppendItem(Id,text='Reflection List'),{})  #dummy entry for GUI use
    12901290                    newHistList.append(HistName)
    12911291            else:
     
    12951295                if not rd.RefDict.get('FF'):
    12961296                    rd.RefDict['FF'] = {}
    1297                 Id = self.PatternTree.AppendItem(parent=self.root,text=HistName)
    1298                 self.PatternTree.SetItemPyData(Id,[valuesdict,rd.RefDict])
    1299                 Sub = self.PatternTree.AppendItem(Id,text='Instrument Parameters')
    1300                 self.PatternTree.SetItemPyData(Sub,rd.Parameters)
    1301                 self.PatternTree.SetItemPyData(
    1302                     self.PatternTree.AppendItem(Id,text='Reflection List'),{})  #dummy entry for GUI use
     1297                Id = self.GPXtree.AppendItem(parent=self.root,text=HistName)
     1298                self.GPXtree.SetItemPyData(Id,[valuesdict,rd.RefDict])
     1299                Sub = self.GPXtree.AppendItem(Id,text='Instrument Parameters')
     1300                self.GPXtree.SetItemPyData(Sub,rd.Parameters)
     1301                self.GPXtree.SetItemPyData(
     1302                    self.GPXtree.AppendItem(Id,text='Reflection List'),{})  #dummy entry for GUI use
    13031303                newHistList.append(HistName)
    13041304               
    1305             self.PatternTree.SelectItem(Id)
    1306             self.PatternTree.Expand(Id)
     1305            self.GPXtree.SelectItem(Id)
     1306            self.GPXtree.Expand(Id)
    13071307            self.Sngl = True
    13081308
     
    13181318        if not result: return
    13191319        # connect new phases to histograms
    1320         sub = GetPatternTreeItemId(self,self.root,'Phases')
     1320        sub = GetGPXtreeItemId(self,self.root,'Phases')
    13211321        if not sub:
    13221322            raise Exception('ERROR -- why are there no phases here?')
    13231323        wx.BeginBusyCursor()
    1324         item, cookie = self.PatternTree.GetFirstChild(sub)
     1324        item, cookie = self.GPXtree.GetFirstChild(sub)
    13251325        iph = -1
    13261326        while item: # loop over (new) phases
    13271327            iph += 1
    1328             data = self.PatternTree.GetItemPyData(item)
    1329             item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     1328            data = self.GPXtree.GetItemPyData(item)
     1329            item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    13301330            if iph not in result: continue
    13311331            generalData = data['General']
     
    13381338            for histoName in newHistList:
    13391339                #redo UpdateHKLFdata(histoName) here:
    1340                 Id = GetPatternTreeItemId(self,self.root,histoName)
    1341                 refDict,reflData = self.PatternTree.GetItemPyData(Id)
     1340                Id = GetGPXtreeItemId(self,self.root,histoName)
     1341                refDict,reflData = self.GPXtree.GetItemPyData(Id)
    13421342                UseList[histoName] = SetDefaultDData(reflData['Type'],histoName)
    13431343                G,g = G2lat.cell2Gmat(generalData['Cell'][1:7])
     
    18841884        haveData = False
    18851885        # check for phases connected to histograms
    1886         sub = GetPatternTreeItemId(self,self.root,'Phases')
     1886        sub = GetGPXtreeItemId(self,self.root,'Phases')
    18871887        if not sub: return
    1888         item, cookie = self.PatternTree.GetFirstChild(sub)
     1888        item, cookie = self.GPXtree.GetFirstChild(sub)
    18891889        while item: # loop over phases
    1890             data = self.PatternTree.GetItemPyData(item)
    1891             item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     1890            data = self.GPXtree.GetItemPyData(item)
     1891            item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    18921892            UseList = data['Histograms']
    18931893            if UseList: haveData = True
     
    19121912        # get a list of existing histograms
    19131913        PWDRlist = []
    1914         if self.PatternTree.GetCount():
    1915             item, cookie = self.PatternTree.GetFirstChild(self.root)
     1914        if self.GPXtree.GetCount():
     1915            item, cookie = self.GPXtree.GetFirstChild(self.root)
    19161916            while item:
    1917                 name = self.PatternTree.GetItemText(item)
     1917                name = self.GPXtree.GetItemText(item)
    19181918                if name.startswith('PWDR ') and name not in PWDRlist:
    19191919                    PWDRlist.append(name)
    1920                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     1920                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    19211921        # look up which format was requested
    19221922        reqrdr = self.ImportMenuId.get(event.GetId()) 
     
    19681968                '). Inst parameters from '+rd.instmsg)
    19691969            # data are read, now store them in the tree
    1970             Id = self.PatternTree.AppendItem(parent=self.root,text=HistName)
     1970            Id = self.GPXtree.AppendItem(parent=self.root,text=HistName)
    19711971            if 'T' in Iparm1['Type'][0]:
    19721972                if not rd.clockWd and rd.GSAS:
     
    20182018                    del Iparm1['CorrectionCode']
    20192019            rd.Sample['ranId'] = valuesdict['ranId'] # this should be removed someday
    2020             self.PatternTree.SetItemPyData(Id,[valuesdict,rd.powderdata])
    2021             self.PatternTree.SetItemPyData(
    2022                 self.PatternTree.AppendItem(Id,text='Comments'),
     2020            self.GPXtree.SetItemPyData(Id,[valuesdict,rd.powderdata])
     2021            self.GPXtree.SetItemPyData(
     2022                self.GPXtree.AppendItem(Id,text='Comments'),
    20232023                rd.comments)
    20242024            Tmin = min(rd.powderdata[0])
     
    20272027            if 'NT' in Iparm1['Type'][0] and G2lat.Pos2dsp(Iparm1,Tmin) < 0.4:               
    20282028                Tmin1 = G2lat.Dsp2pos(Iparm1,0.4)
    2029             self.PatternTree.SetItemPyData(
    2030                 self.PatternTree.AppendItem(Id,text='Limits'),
     2029            self.GPXtree.SetItemPyData(
     2030                self.GPXtree.AppendItem(Id,text='Limits'),
    20312031                rd.pwdparms.get('Limits',[(Tmin,Tmax),[Tmin1,Tmax]])
    20322032                )
    2033             self.PatternId = GetPatternTreeItemId(self,Id,'Limits')
    2034             self.PatternTree.SetItemPyData(
    2035                 self.PatternTree.AppendItem(Id,text='Background'),
     2033            self.PatternId = GetGPXtreeItemId(self,Id,'Limits')
     2034            self.GPXtree.SetItemPyData(
     2035                self.GPXtree.AppendItem(Id,text='Background'),
    20362036                rd.pwdparms.get('Background',
    20372037                    [['chebyschev',True,3,1.0,0.0,0.0],{'nDebye':0,'debyeTerms':[],'nPeaks':0,'peaksList':[]}])
    20382038                    )
    2039             self.PatternTree.SetItemPyData(
    2040                 self.PatternTree.AppendItem(Id,text='Instrument Parameters'),
     2039            self.GPXtree.SetItemPyData(
     2040                self.GPXtree.AppendItem(Id,text='Instrument Parameters'),
    20412041                [Iparm1,Iparm2])
    2042             self.PatternTree.SetItemPyData(
    2043                 self.PatternTree.AppendItem(Id,text='Sample Parameters'),
     2042            self.GPXtree.SetItemPyData(
     2043                self.GPXtree.AppendItem(Id,text='Sample Parameters'),
    20442044                rd.Sample)
    2045             self.PatternTree.SetItemPyData(
    2046                 self.PatternTree.AppendItem(Id,text='Peak List')
     2045            self.GPXtree.SetItemPyData(
     2046                self.GPXtree.AppendItem(Id,text='Peak List')
    20472047                ,{'peaks':[],'sigDict':{}})
    2048             self.PatternTree.SetItemPyData(
    2049                 self.PatternTree.AppendItem(Id,text='Index Peak List'),
     2048            self.GPXtree.SetItemPyData(
     2049                self.GPXtree.AppendItem(Id,text='Index Peak List'),
    20502050                [[],[]])
    2051             self.PatternTree.SetItemPyData(
    2052                 self.PatternTree.AppendItem(Id,text='Unit Cells List'),
     2051            self.GPXtree.SetItemPyData(
     2052                self.GPXtree.AppendItem(Id,text='Unit Cells List'),
    20532053                [])
    2054             self.PatternTree.SetItemPyData(
    2055                 self.PatternTree.AppendItem(Id,text='Reflection Lists'),
     2054            self.GPXtree.SetItemPyData(
     2055                self.GPXtree.AppendItem(Id,text='Reflection Lists'),
    20562056                {})
    20572057            # if any Control values have been set, move them into tree
    2058             Controls = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,self.root, 'Controls'))
     2058            Controls = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,self.root, 'Controls'))
    20592059            Controls.update(rd.Controls)
    20602060            newHistList.append(HistName)
     
    20632063            self.EnablePlot = True
    20642064            if Id:
    2065                 self.PatternTree.Expand(Id)
    2066                 self.PatternTree.SelectItem(Id)
     2065                self.GPXtree.Expand(Id)
     2066                self.GPXtree.SelectItem(Id)
    20672067
    20682068        if not newHistList: return # somehow, no new histograms
     
    20782078        if not result: return
    20792079        # connect new phases to histograms
    2080         sub = GetPatternTreeItemId(self,self.root,'Phases')
     2080        sub = GetGPXtreeItemId(self,self.root,'Phases')
    20812081        if not sub:
    20822082            raise Exception('ERROR -- why are there no phases here?')
    2083         item, cookie = self.PatternTree.GetFirstChild(sub)
     2083        item, cookie = self.GPXtree.GetFirstChild(sub)
    20842084        iph = -1
    20852085        while item: # loop over (new) phases
    20862086            iph += 1
    2087             data = self.PatternTree.GetItemPyData(item)
    2088             item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     2087            data = self.GPXtree.GetItemPyData(item)
     2088            item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    20892089            if iph not in result: continue
    20902090            generalData = data['General']
     
    20952095            for histoName in newHistList:
    20962096                UseList[histoName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij)
    2097                 Id = GetPatternTreeItemId(self,self.root,histoName)
    2098                 refList = self.PatternTree.GetItemPyData(
    2099                     GetPatternTreeItemId(self,Id,'Reflection Lists'))
     2097                Id = GetGPXtreeItemId(self,self.root,histoName)
     2098                refList = self.GPXtree.GetItemPyData(
     2099                    GetGPXtreeItemId(self,Id,'Reflection Lists'))
    21002100                refList[generalData['Name']] = []
    21012101        self.EnableRefineCommand()
     
    21102110        # get a list of existing histograms
    21112111        PWDRlist = []
    2112         if self.PatternTree.GetCount():
    2113             item, cookie = self.PatternTree.GetFirstChild(self.root)
     2112        if self.GPXtree.GetCount():
     2113            item, cookie = self.GPXtree.GetFirstChild(self.root)
    21142114            while item:
    2115                 name = self.PatternTree.GetItemText(item)
     2115                name = self.GPXtree.GetItemText(item)
    21162116                if name.startswith('PWDR ') and name not in PWDRlist:
    21172117                    PWDRlist.append(name)
    2118                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     2118                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    21192119        # Initialize a base class reader
    21202120        rd = G2obj.ImportPowderData(
     
    21912191        HistName = 'PWDR '+HistName
    21922192        HistName = G2obj.MakeUniqueLabel(HistName,PWDRlist)  # make new histogram names unique
    2193         Id = self.PatternTree.AppendItem(parent=self.root,text=HistName)
     2193        Id = self.GPXtree.AppendItem(parent=self.root,text=HistName)
    21942194        Ymin = np.min(rd.powderdata[1])
    21952195        Ymax = np.max(rd.powderdata[1])
     
    22012201            'qPlot':False,'dPlot':False,'sqrtPlot':False,'Yminmax':[Ymin,Ymax]
    22022202            }
    2203         self.PatternTree.SetItemPyData(Id,[valuesdict,rd.powderdata])
    2204         self.PatternTree.SetItemPyData(
    2205             self.PatternTree.AppendItem(Id,text='Comments'),
     2203        self.GPXtree.SetItemPyData(Id,[valuesdict,rd.powderdata])
     2204        self.GPXtree.SetItemPyData(
     2205            self.GPXtree.AppendItem(Id,text='Comments'),
    22062206            rd.comments)
    2207         self.PatternTree.SetItemPyData(
    2208             self.PatternTree.AppendItem(Id,text='Limits'),
     2207        self.GPXtree.SetItemPyData(
     2208            self.GPXtree.AppendItem(Id,text='Limits'),
    22092209            [(Tmin,Tmax),[Tmin,Tmax]])
    2210         self.PatternId = GetPatternTreeItemId(self,Id,'Limits')
    2211         self.PatternTree.SetItemPyData(
    2212             self.PatternTree.AppendItem(Id,text='Background'),
     2210        self.PatternId = GetGPXtreeItemId(self,Id,'Limits')
     2211        self.GPXtree.SetItemPyData(
     2212            self.GPXtree.AppendItem(Id,text='Background'),
    22132213            [['chebyschev',True,3,1.0,0.0,0.0],
    22142214             {'nDebye':0,'debyeTerms':[],'nPeaks':0,'peaksList':[]}])
    2215         self.PatternTree.SetItemPyData(
    2216             self.PatternTree.AppendItem(Id,text='Instrument Parameters'),
     2215        self.GPXtree.SetItemPyData(
     2216            self.GPXtree.AppendItem(Id,text='Instrument Parameters'),
    22172217            [Iparm1,Iparm2])
    2218         self.PatternTree.SetItemPyData(
    2219             self.PatternTree.AppendItem(Id,text='Sample Parameters'),
     2218        self.GPXtree.SetItemPyData(
     2219            self.GPXtree.AppendItem(Id,text='Sample Parameters'),
    22202220            rd.Sample)
    2221         self.PatternTree.SetItemPyData(
    2222             self.PatternTree.AppendItem(Id,text='Peak List')
     2221        self.GPXtree.SetItemPyData(
     2222            self.GPXtree.AppendItem(Id,text='Peak List')
    22232223            ,{'peaks':[],'sigDict':{}})
    2224         self.PatternTree.SetItemPyData(
    2225             self.PatternTree.AppendItem(Id,text='Index Peak List'),
     2224        self.GPXtree.SetItemPyData(
     2225            self.GPXtree.AppendItem(Id,text='Index Peak List'),
    22262226            [[],[]])
    2227         self.PatternTree.SetItemPyData(
    2228             self.PatternTree.AppendItem(Id,text='Unit Cells List'),
     2227        self.GPXtree.SetItemPyData(
     2228            self.GPXtree.AppendItem(Id,text='Unit Cells List'),
    22292229            [])
    2230         self.PatternTree.SetItemPyData(
    2231             self.PatternTree.AppendItem(Id,text='Reflection Lists'),
     2230        self.GPXtree.SetItemPyData(
     2231            self.GPXtree.AppendItem(Id,text='Reflection Lists'),
    22322232            {})
    2233         self.PatternTree.Expand(Id)
    2234         self.PatternTree.SelectItem(Id)
     2233        self.GPXtree.Expand(Id)
     2234        self.GPXtree.SelectItem(Id)
    22352235        print(u'Added simulation powder data {}'.format(HistName)+
    22362236              ' with parameters from {}'.format(rd.instmsg))
     
    22442244        if not result: return
    22452245        # connect new phases to histograms
    2246         sub = GetPatternTreeItemId(self,self.root,'Phases')
     2246        sub = GetGPXtreeItemId(self,self.root,'Phases')
    22472247        if not sub:
    22482248            raise Exception('ERROR -- why are there no phases here?')
    2249         item, cookie = self.PatternTree.GetFirstChild(sub)
     2249        item, cookie = self.GPXtree.GetFirstChild(sub)
    22502250        iph = -1
    22512251        while item: # loop over (new) phases
    22522252            iph += 1
    2253             data = self.PatternTree.GetItemPyData(item)
    2254             item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     2253            data = self.GPXtree.GetItemPyData(item)
     2254            item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    22552255            if iph not in result: continue
    22562256            generalData = data['General']
     
    22602260            NDij = len(G2spc.HStrainNames(SGData))
    22612261            UseList[HistName] = SetDefaultDData('PWDR',HistName,NShkl=NShkl,NDij=NDij)
    2262             Id = GetPatternTreeItemId(self,self.root,HistName)
    2263             refList = self.PatternTree.GetItemPyData(
    2264                 GetPatternTreeItemId(self,Id,'Reflection Lists'))
     2262            Id = GetGPXtreeItemId(self,self.root,HistName)
     2263            refList = self.GPXtree.GetItemPyData(
     2264                GetGPXtreeItemId(self,Id,'Reflection Lists'))
    22652265            refList[generalData['Name']] = []
    22662266        self.EnableRefineCommand()
     
    23072307        # get a list of existing histograms
    23082308        SASDlist = []
    2309         if self.PatternTree.GetCount():
    2310             item, cookie = self.PatternTree.GetFirstChild(self.root)
     2309        if self.GPXtree.GetCount():
     2310            item, cookie = self.GPXtree.GetFirstChild(self.root)
    23112311            while item:
    2312                 name = self.PatternTree.GetItemText(item)
     2312                name = self.GPXtree.GetItemText(item)
    23132313                if name.startswith('SASD ') and name not in SASDlist:
    23142314                    SASDlist.append(name)
    2315                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     2315                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    23162316        # look up which format was requested
    23172317        reqrdr = self.ImportMenuId.get(event.GetId()) 
     
    23302330                ' from file '+self.lastimport
    23312331            # data are read, now store them in the tree
    2332             Id = self.PatternTree.AppendItem(parent=self.root,text=HistName)
     2332            Id = self.GPXtree.AppendItem(parent=self.root,text=HistName)
    23332333            Iparm1,Iparm2 = GetSASDIparm(rd)
    23342334#            if 'T' in Iparm1['Type'][0]:
     
    23612361                }
    23622362            rd.Sample['ranId'] = valuesdict['ranId'] # this should be removed someday
    2363             self.PatternTree.SetItemPyData(Id,[valuesdict,rd.smallangledata])
    2364             self.PatternTree.SetItemPyData(
    2365                 self.PatternTree.AppendItem(Id,text='Comments'),
     2363            self.GPXtree.SetItemPyData(Id,[valuesdict,rd.smallangledata])
     2364            self.GPXtree.SetItemPyData(
     2365                self.GPXtree.AppendItem(Id,text='Comments'),
    23662366                rd.comments)
    2367             self.PatternTree.SetItemPyData(
    2368                 self.PatternTree.AppendItem(Id,text='Limits'),
     2367            self.GPXtree.SetItemPyData(
     2368                self.GPXtree.AppendItem(Id,text='Limits'),
    23692369                [(Tmin,Tmax),[Tmin,Tmax]])
    2370             self.PatternId = GetPatternTreeItemId(self,Id,'Limits')
    2371             self.PatternTree.SetItemPyData(
    2372                 self.PatternTree.AppendItem(Id,text='Instrument Parameters'),
     2370            self.PatternId = GetGPXtreeItemId(self,Id,'Limits')
     2371            self.GPXtree.SetItemPyData(
     2372                self.GPXtree.AppendItem(Id,text='Instrument Parameters'),
    23732373                [Iparm1,Iparm2])
    2374             self.PatternTree.SetItemPyData(
    2375                 self.PatternTree.AppendItem(Id,text='Substances'),G2pdG.SetDefaultSubstances())
    2376             self.PatternTree.SetItemPyData(
    2377                 self.PatternTree.AppendItem(Id,text='Sample Parameters'),
     2374            self.GPXtree.SetItemPyData(
     2375                self.GPXtree.AppendItem(Id,text='Substances'),G2pdG.SetDefaultSubstances())
     2376            self.GPXtree.SetItemPyData(
     2377                self.GPXtree.AppendItem(Id,text='Sample Parameters'),
    23782378                rd.Sample)
    2379             self.PatternTree.SetItemPyData(
    2380                 self.PatternTree.AppendItem(Id,text='Models'),G2pdG.SetDefaultSASDModel())
     2379            self.GPXtree.SetItemPyData(
     2380                self.GPXtree.AppendItem(Id,text='Models'),G2pdG.SetDefaultSASDModel())
    23812381            newHistList.append(HistName)
    23822382        else:
    23832383            self.EnablePlot = True
    2384             self.PatternTree.Expand(Id)
    2385             self.PatternTree.SelectItem(Id)
     2384            self.GPXtree.Expand(Id)
     2385            self.GPXtree.SelectItem(Id)
    23862386           
    23872387        if not newHistList: return # somehow, no new histograms
     
    24222422        # get a list of existing histograms
    24232423        REFDlist = []
    2424         if self.PatternTree.GetCount():
    2425             item, cookie = self.PatternTree.GetFirstChild(self.root)
     2424        if self.GPXtree.GetCount():
     2425            item, cookie = self.GPXtree.GetFirstChild(self.root)
    24262426            while item:
    2427                 name = self.PatternTree.GetItemText(item)
     2427                name = self.GPXtree.GetItemText(item)
    24282428                if name.startswith('REFD ') and name not in REFDlist:
    24292429                    REFDlist.append(name)
    2430                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     2430                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    24312431        # look up which format was requested
    24322432        reqrdr = self.ImportMenuId.get(event.GetId()) 
     
    24452445                ' from file '+self.lastimport
    24462446            # data are read, now store them in the tree
    2447             Id = self.PatternTree.AppendItem(parent=self.root,text=HistName)
     2447            Id = self.GPXtree.AppendItem(parent=self.root,text=HistName)
    24482448            Iparm1,Iparm2 = GetREFDIparm(rd)
    24492449#            if 'T' in Iparm1['Type'][0]:
     
    24782478                }
    24792479            rd.Sample['ranId'] = valuesdict['ranId'] # this should be removed someday
    2480             self.PatternTree.SetItemPyData(Id,[valuesdict,rd.reflectometrydata])
    2481             self.PatternTree.SetItemPyData(
    2482                 self.PatternTree.AppendItem(Id,text='Comments'),
     2480            self.GPXtree.SetItemPyData(Id,[valuesdict,rd.reflectometrydata])
     2481            self.GPXtree.SetItemPyData(
     2482                self.GPXtree.AppendItem(Id,text='Comments'),
    24832483                rd.comments)
    2484             self.PatternTree.SetItemPyData(
    2485                 self.PatternTree.AppendItem(Id,text='Limits'),
     2484            self.GPXtree.SetItemPyData(
     2485                self.GPXtree.AppendItem(Id,text='Limits'),
    24862486                [(Tmin,Tmax),[Tmin,Tmax]])
    2487             self.PatternId = GetPatternTreeItemId(self,Id,'Limits')
    2488             self.PatternTree.SetItemPyData(
    2489                 self.PatternTree.AppendItem(Id,text='Instrument Parameters'),
     2487            self.PatternId = GetGPXtreeItemId(self,Id,'Limits')
     2488            self.GPXtree.SetItemPyData(
     2489                self.GPXtree.AppendItem(Id,text='Instrument Parameters'),
    24902490                [Iparm1,Iparm2])
    2491             self.PatternTree.SetItemPyData(
    2492                 self.PatternTree.AppendItem(Id,text='Substances'),G2pdG.SetDefaultSubstances())
    2493             self.PatternTree.SetItemPyData(
    2494                 self.PatternTree.AppendItem(Id,text='Sample Parameters'),
     2491            self.GPXtree.SetItemPyData(
     2492                self.GPXtree.AppendItem(Id,text='Substances'),G2pdG.SetDefaultSubstances())
     2493            self.GPXtree.SetItemPyData(
     2494                self.GPXtree.AppendItem(Id,text='Sample Parameters'),
    24952495                rd.Sample)
    2496             self.PatternTree.SetItemPyData(
    2497                 self.PatternTree.AppendItem(Id,text='Models'),G2pdG.SetDefaultREFDModel())
     2496            self.GPXtree.SetItemPyData(
     2497                self.GPXtree.AppendItem(Id,text='Models'),G2pdG.SetDefaultREFDModel())
    24982498            newHistList.append(HistName)
    24992499        else:
    25002500            self.EnablePlot = True
    2501             self.PatternTree.Expand(Id)
    2502             self.PatternTree.SelectItem(Id)
     2501            self.GPXtree.Expand(Id)
     2502            self.GPXtree.SelectItem(Id)
    25032503           
    25042504        if not newHistList: return # somehow, no new histograms
     
    25332533        # get a list of existing histograms
    25342534        PDFlist = []
    2535         if self.PatternTree.GetCount():
    2536             item, cookie = self.PatternTree.GetFirstChild(self.root)
     2535        if self.GPXtree.GetCount():
     2536            item, cookie = self.GPXtree.GetFirstChild(self.root)
    25372537            while item:
    2538                 name = self.PatternTree.GetItemText(item)
     2538                name = self.GPXtree.GetItemText(item)
    25392539                if name.startswith('PDF ') and name not in PDFlist:
    25402540                    PDFlist.append(name)
    2541                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     2541                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    25422542        # look up which format was requested
    25432543        reqrdr = self.ImportMenuId.get(event.GetId()) 
     
    25562556                ' from file '+self.lastimport
    25572557            # data are read, now store them in the tree
    2558             Id = self.PatternTree.AppendItem(self.root,text=HistName)
     2558            Id = self.GPXtree.AppendItem(self.root,text=HistName)
    25592559            Ymin = np.min(rd.pdfdata[1])                 
    25602560            Ymax = np.max(rd.pdfdata[1])                 
     
    25642564                'qPlot':False,'dPlot':False,'sqrtPlot':False,'Yminmax':[Ymin,Ymax]
    25652565                }
    2566             self.PatternTree.SetItemPyData(
    2567                 self.PatternTree.AppendItem(Id,text='PDF Controls'),
     2566            self.GPXtree.SetItemPyData(
     2567                self.GPXtree.AppendItem(Id,text='PDF Controls'),
    25682568                    {'G(R)':[valuesdict,rd.pdfdata,HistName],'diffGRname':'','diffMult':1.0})
    2569             self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='PDF Peaks'),
     2569            self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='PDF Peaks'),
    25702570                {'Limits':[1.,5.],'Background':[2,[0.,-0.2*np.pi],False],'Peaks':[]})
    25712571        else:
    25722572            self.EnablePlot = True
    2573             self.PatternTree.Expand(Id)
    2574             self.PatternTree.SelectItem(Id)
     2573            self.GPXtree.Expand(Id)
     2574            self.GPXtree.SelectItem(Id)
    25752575           
    25762576        if not newHistList: return # somehow, no new histograms
     
    28952895            #     # make a list of used phase ranId's
    28962896            # phaseRIdList = []
    2897             # sub = GetPatternTreeItemId(self,self.root,'Phases')
     2897            # sub = GetGPXtreeItemId(self,self.root,'Phases')
    28982898            # if sub:
    2899             #     item, cookie = self.PatternTree.GetFirstChild(sub)
     2899            #     item, cookie = self.GPXtree.GetFirstChild(sub)
    29002900            #     while item:
    2901             #         phaseName = self.PatternTree.GetItemText(item)
    2902             #         ranId = self.PatternTree.GetItemPyData(item).get('ranId')
     2901            #         phaseName = self.GPXtree.GetItemText(item)
     2902            #         ranId = self.GPXtree.GetItemPyData(item).get('ranId')
    29032903            #         if ranId: phaseRIdList.append(ranId)
    2904             #         item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     2904            #         item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    29052905            # if rd.Reader(filename,fp,usedRanIdList=phaseRIdList):
    29062906            #     print 'read OK'
     
    29252925    def _init_ctrls(self, parent):
    29262926        wx.Frame.__init__(self, name='GSASII', parent=parent,
    2927             size=wx.Size(700, 450),style=wx.DEFAULT_FRAME_STYLE, title='GSAS-II data tree')
    2928             #size=wx.Size(400, 450),style=wx.DEFAULT_FRAME_STYLE, title='GSAS-II data tree')
     2927            #size=wx.Size(700, 450),style=wx.DEFAULT_FRAME_STYLE, title='GSAS-II data tree')
     2928            # DEBUG
     2929            size=wx.Size(400, 450),style=wx.DEFAULT_FRAME_STYLE, title='GSAS-II data tree')
    29292930        clientSize = wx.ClientDisplayRect()
    29302931        Size = self.GetSize()
     
    29672968        treeSizer = wx.BoxSizer()
    29682969        self.treePanel.SetSizer(treeSizer)
    2969         self.PatternTree = G2G.G2TreeCtrl(id=wxID_PATTERNTREE,
     2970        self.GPXtree = G2G.G2TreeCtrl(id=wxID_PATTERNTREE,
    29702971            parent=self.treePanel, size=self.treePanel.GetClientSize(),style=wx.TR_DEFAULT_STYLE )
    2971         treeSizer.Add(self.PatternTree,1,wx.EXPAND|wx.ALL,0)
    2972         self.PatternTree.Bind(wx.EVT_TREE_SEL_CHANGED,self.OnDataTreeSelChanged)
    2973         self.PatternTree.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK,self.OnDataTreeSelChanged)
    2974         self.PatternTree.Bind(wx.EVT_TREE_ITEM_COLLAPSED,
    2975             self.OnPatternTreeItemCollapsed, id=wxID_PATTERNTREE)
    2976         self.PatternTree.Bind(wx.EVT_TREE_ITEM_EXPANDED,
    2977             self.OnPatternTreeItemExpanded, id=wxID_PATTERNTREE)
    2978         self.PatternTree.Bind(wx.EVT_TREE_DELETE_ITEM,
    2979             self.OnPatternTreeItemDelete, id=wxID_PATTERNTREE)
    2980         self.PatternTree.Bind(wx.EVT_TREE_KEY_DOWN,
    2981             self.OnPatternTreeKeyDown, id=wxID_PATTERNTREE)
    2982         self.PatternTree.Bind(wx.EVT_TREE_BEGIN_RDRAG,
    2983             self.OnPatternTreeBeginRDrag, id=wxID_PATTERNTREE)       
    2984         self.PatternTree.Bind(wx.EVT_TREE_END_DRAG,
    2985             self.OnPatternTreeEndDrag, id=wxID_PATTERNTREE)       
    2986         self.root = self.PatternTree.root       
     2972        treeSizer.Add(self.GPXtree,1,wx.EXPAND|wx.ALL,0)
     2973        self.GPXtree.Bind(wx.EVT_TREE_SEL_CHANGED,self.OnDataTreeSelChanged)
     2974        self.GPXtree.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK,self.OnDataTreeSelChanged)
     2975        self.GPXtree.Bind(wx.EVT_TREE_ITEM_COLLAPSED,
     2976            self.OnGPXtreeItemCollapsed, id=wxID_PATTERNTREE)
     2977        self.GPXtree.Bind(wx.EVT_TREE_ITEM_EXPANDED,
     2978            self.OnGPXtreeItemExpanded, id=wxID_PATTERNTREE)
     2979        self.GPXtree.Bind(wx.EVT_TREE_DELETE_ITEM,
     2980            self.OnGPXtreeItemDelete, id=wxID_PATTERNTREE)
     2981        self.GPXtree.Bind(wx.EVT_TREE_KEY_DOWN,
     2982            self.OnGPXtreeKeyDown, id=wxID_PATTERNTREE)
     2983        self.GPXtree.Bind(wx.EVT_TREE_BEGIN_RDRAG,
     2984            self.OnGPXtreeBeginRDrag, id=wxID_PATTERNTREE)       
     2985        self.GPXtree.Bind(wx.EVT_TREE_END_DRAG,
     2986            self.OnGPXtreeEndDrag, id=wxID_PATTERNTREE)       
     2987        self.root = self.GPXtree.root       
    29872988       
    29882989        # def FillWindow(panel,sizer,size=1.):
     
    31103111
    31113112    def GetTreeItemsList(self,item):
    3112         return self.PatternTree._getTreeItemsList(item)
     3113        return self.GPXtree._getTreeItemsList(item)
    31133114
    31143115    # def OnSize(self,event):
    3115     #     'Called to make PatternTree fill mainPanel'
     3116    #     'Called to make GPXtree fill mainPanel'
    31163117    #     print 'OnSize'
    31173118    #     event.Skip()
     
    31193120        # self.dataWindow.SetupScrolling()
    31203121        # self.mainPanel.SetSize(wx.Size(w,h))
    3121         # self.PatternTree.SetSize(wx.Size(w,h))
     3122        # self.GPXtree.SetSize(wx.Size(w,h))
    31223123        # self.dataWindow.SetSize(self.dataPanel.GetClientSize())
    31233124       
     
    31473148            #    wx.CallAfter(self.oldFocus.SetFocus)
    31483149       
    3149     def OnPatternTreeItemCollapsed(self, event):
     3150    def OnGPXtreeItemCollapsed(self, event):
    31503151        'Called when a tree item is collapsed - all children will be collapsed'
    3151         self.PatternTree.CollapseAllChildren(event.GetItem())
    3152 
    3153     def OnPatternTreeItemExpanded(self, event):
     3152        self.GPXtree.CollapseAllChildren(event.GetItem())
     3153
     3154    def OnGPXtreeItemExpanded(self, event):
    31543155        'Called when a tree item is expanded'
    31553156        self.OnDataTreeSelChanged(event)
    31563157        event.Skip()
    31573158       
    3158     def OnPatternTreeItemDelete(self, event):
     3159    def OnGPXtreeItemDelete(self, event):
    31593160        'Called when a tree item is deleted -- not sure what this does'
    31603161        self.TreeItemDelete = True
    31613162
    3162     def OnPatternTreeItemActivated(self, event):
     3163    def OnGPXtreeItemActivated(self, event):
    31633164        'Called when a tree item is activated'
    31643165        event.Skip()
    31653166       
    3166     def OnPatternTreeBeginRDrag(self,event):
     3167    def OnGPXtreeBeginRDrag(self,event):
    31673168        event.Allow()
    31683169        self.BeginDragId = event.GetItem()
    3169         self.ParentId = self.PatternTree.GetItemParent(self.BeginDragId)
    3170         DragText = self.PatternTree.GetItemText(self.BeginDragId)
    3171         self.DragData = [[DragText,self.PatternTree.GetItemPyData(self.BeginDragId)],]
    3172         item, cookie = self.PatternTree.GetFirstChild(self.BeginDragId)
     3170        self.ParentId = self.GPXtree.GetItemParent(self.BeginDragId)
     3171        DragText = self.GPXtree.GetItemText(self.BeginDragId)
     3172        self.DragData = [[DragText,self.GPXtree.GetItemPyData(self.BeginDragId)],]
     3173        item, cookie = self.GPXtree.GetFirstChild(self.BeginDragId)
    31733174        while item:     #G2 data tree has no sub children under a child of a tree item
    3174             name = self.PatternTree.GetItemText(item)
    3175             self.DragData.append([name,self.PatternTree.GetItemPyData(item)])
    3176             item, cookie = self.PatternTree.GetNextChild(self.BeginDragId, cookie)                           
    3177        
    3178     def OnPatternTreeEndDrag(self,event):
     3175            name = self.GPXtree.GetItemText(item)
     3176            self.DragData.append([name,self.GPXtree.GetItemPyData(item)])
     3177            item, cookie = self.GPXtree.GetNextChild(self.BeginDragId, cookie)                           
     3178       
     3179    def OnGPXtreeEndDrag(self,event):
    31793180        event.Allow()
    31803181        self.EndDragId = event.GetItem()
    31813182        try:
    3182             NewParent = self.PatternTree.GetItemParent(self.EndDragId)
     3183            NewParent = self.GPXtree.GetItemParent(self.EndDragId)
    31833184        except:
    3184             self.EndDragId = self.PatternTree.GetLastChild(self.root)
     3185            self.EndDragId = self.GPXtree.GetLastChild(self.root)
    31853186            NewParent = self.root
    31863187        if self.ParentId != NewParent:
     
    31883189        else:
    31893190            Name,Item = self.DragData[0]
    3190             NewId = self.PatternTree.InsertItem(self.ParentId,self.EndDragId,Name,data=None)
    3191             self.PatternTree.SetItemPyData(NewId,Item)
     3191            NewId = self.GPXtree.InsertItem(self.ParentId,self.EndDragId,Name,data=None)
     3192            self.GPXtree.SetItemPyData(NewId,Item)
    31923193            for name,item in self.DragData[1:]:     #loop over children
    3193                 Id = self.PatternTree.AppendItem(parent=NewId,text=name)
    3194                 self.PatternTree.SetItemPyData(Id,item)
    3195             self.PatternTree.Delete(self.BeginDragId)
     3194                Id = self.GPXtree.AppendItem(parent=NewId,text=name)
     3195                self.GPXtree.SetItemPyData(Id,item)
     3196            self.GPXtree.Delete(self.BeginDragId)
    31963197            SelectDataTreeItem(self,NewId)
    31973198       
    3198     def OnPatternTreeKeyDown(self,event): #doesn't exactly work right with Shift key down
     3199    def OnGPXtreeKeyDown(self,event): #doesn't exactly work right with Shift key down
    31993200        'Allows stepping through the tree with the up/down arrow keys'
    32003201        self.oldFocus = wx.Window.FindFocus()
    32013202        keyevt = event.GetKeyEvent()
    32023203        key = event.GetKeyCode()
    3203         item = self.PatternTree.GetSelection()
     3204        item = self.GPXtree.GetSelection()
    32043205        if type(item) is int: return # is this the toplevel in tree?
    3205         name = self.PatternTree.GetItemText(item)
    3206         parent = self.PatternTree.GetItemParent(item)
     3206        name = self.GPXtree.GetItemText(item)
     3207        parent = self.GPXtree.GetItemParent(item)
    32073208        if key == wx.WXK_UP:
    32083209            if keyevt.GetModifiers() == wx.MOD_SHIFT and parent != self.root:
    32093210                if type(parent) is int: return # is this the toplevel in tree?
    3210                 prev = self.PatternTree.GetPrevSibling(parent)
    3211                 NewId = GetPatternTreeItemId(self,prev,name)
     3211                prev = self.GPXtree.GetPrevSibling(parent)
     3212                NewId = GetGPXtreeItemId(self,prev,name)
    32123213                if NewId:
    3213                     self.PatternTree.Collapse(parent)
    3214                     self.PatternTree.Expand(prev)
     3214                    self.GPXtree.Collapse(parent)
     3215                    self.GPXtree.Expand(prev)
    32153216                    self.oldFocus = wx.Window.FindFocus()
    3216                     wx.CallAfter(self.PatternTree.SelectItem,NewId)
     3217                    wx.CallAfter(self.GPXtree.SelectItem,NewId)
    32173218                else:
    3218                     wx.CallAfter(self.PatternTree.SelectItem,item)
     3219                    wx.CallAfter(self.GPXtree.SelectItem,item)
    32193220            elif sys.platform == "win32":   
    3220                 self.PatternTree.GetPrevSibling(item)
    3221                 self.PatternTree.SelectItem(item)
     3221                self.GPXtree.GetPrevSibling(item)
     3222                self.GPXtree.SelectItem(item)
    32223223            else:
    3223                 item = self.PatternTree.GetPrevSibling(item)
    3224                 if item.IsOk(): self.PatternTree.SelectItem(item)
     3224                item = self.GPXtree.GetPrevSibling(item)
     3225                if item.IsOk(): self.GPXtree.SelectItem(item)
    32253226        elif key == wx.WXK_DOWN:
    32263227            if keyevt.GetModifiers() == wx.MOD_SHIFT and parent != self.root:
    3227                 next = self.PatternTree.GetNextSibling(parent)
    3228                 NewId = GetPatternTreeItemId(self,next,name)
     3228                next = self.GPXtree.GetNextSibling(parent)
     3229                NewId = GetGPXtreeItemId(self,next,name)
    32293230                if NewId:
    3230                     self.PatternTree.Collapse(parent)
    3231                     self.PatternTree.Expand(next)
     3231                    self.GPXtree.Collapse(parent)
     3232                    self.GPXtree.Expand(next)
    32323233                    self.oldFocus = wx.Window.FindFocus()
    3233                     wx.CallAfter(self.PatternTree.SelectItem,NewId)
     3234                    wx.CallAfter(self.GPXtree.SelectItem,NewId)
    32343235                else:
    3235                     wx.CallAfter(self.PatternTree.SelectItem,item)
     3236                    wx.CallAfter(self.GPXtree.SelectItem,item)
    32363237            elif sys.platform == "win32":   
    3237                 self.PatternTree.GetNextSibling(item)
    3238                 self.PatternTree.SelectItem(item)
     3238                self.GPXtree.GetNextSibling(item)
     3239                self.GPXtree.SelectItem(item)
    32393240            else:   
    3240                 item = self.PatternTree.GetNextSibling(item)
    3241                 if item.IsOk(): self.PatternTree.SelectItem(item)
     3241                item = self.GPXtree.GetNextSibling(item)
     3242                if item.IsOk(): self.GPXtree.SelectItem(item)
    32423243               
    32433244    def OnReadPowderPeaks(self,event):
     
    32533254                self.powderfile = dlg.GetPath()
    32543255                comments,peaks,limits,wave = G2IO.GetPowderPeaks(self.powderfile)
    3255                 Id = self.PatternTree.AppendItem(parent=self.root,text='PKS '+os.path.basename(self.powderfile))
     3256                Id = self.GPXtree.AppendItem(parent=self.root,text='PKS '+os.path.basename(self.powderfile))
    32563257                data = ['PKS',wave,0.0]
    32573258                names = ['Type','Lam','Zero']
    32583259                codes = [0,0,0]
    32593260                inst = [G2IO.makeInstDict(names,data,codes),{}]
    3260                 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),inst)
    3261                 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),comments)
    3262                 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Limits'),[tuple(limits),limits])
    3263                 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[peaks,[]])
    3264                 self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[])             
    3265                 self.PatternTree.Expand(Id)
    3266                 self.PatternTree.SelectItem(Id)
     3261                self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Instrument Parameters'),inst)
     3262                self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Comments'),comments)
     3263                self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Limits'),[tuple(limits),limits])
     3264                self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Index Peak List'),[peaks,[]])
     3265                self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Unit Cells List'),[])             
     3266                self.GPXtree.Expand(Id)
     3267                self.GPXtree.SelectItem(Id)
    32673268                os.chdir(dlg.GetDirectory())           # to get Mac/Linux to change directory!
    32683269        finally:
    32693270            dlg.Destroy()
    32703271                       
    3271     # def OnImageRead(self,event):
    3272     #     '''Called to read in an image in any known format. *** Depreciated. ***
    3273     #     '''
    3274     #     G2G.G2MessageBox(self,'Please use the Import/Image/... menu item rather than this','depreciating menu item')
    3275 
    32763272    def CheckNotebook(self):
    32773273        '''Make sure the data tree has the minimally expected controls.
    32783274        '''
    3279         if not GetPatternTreeItemId(self,self.root,'Notebook'):
    3280             sub = self.PatternTree.AppendItem(parent=self.root,text='Notebook')
    3281             self.PatternTree.SetItemPyData(sub,[''])
    3282         if not GetPatternTreeItemId(self,self.root,'Controls'):
    3283             sub = self.PatternTree.AppendItem(parent=self.root,text='Controls')
    3284             self.PatternTree.SetItemPyData(sub,copy.copy(G2obj.DefaultControls))
    3285         if not GetPatternTreeItemId(self,self.root,'Covariance'):
    3286             sub = self.PatternTree.AppendItem(parent=self.root,text='Covariance')
    3287             self.PatternTree.SetItemPyData(sub,{})
    3288         if not GetPatternTreeItemId(self,self.root,'Constraints'):
    3289             sub = self.PatternTree.AppendItem(parent=self.root,text='Constraints')
    3290             self.PatternTree.SetItemPyData(sub,{'Hist':[],'HAP':[],'Phase':[]})
    3291         if not GetPatternTreeItemId(self,self.root,'Restraints'):
    3292             sub = self.PatternTree.AppendItem(parent=self.root,text='Restraints')
    3293             self.PatternTree.SetItemPyData(sub,{})
    3294         if not GetPatternTreeItemId(self,self.root,'Rigid bodies'):
    3295             sub = self.PatternTree.AppendItem(parent=self.root,text='Rigid bodies')
    3296             self.PatternTree.SetItemPyData(sub,{'Vector':{'AtInfo':{}},
     3275        if not GetGPXtreeItemId(self,self.root,'Notebook'):
     3276            sub = self.GPXtree.AppendItem(parent=self.root,text='Notebook')
     3277            self.GPXtree.SetItemPyData(sub,[''])
     3278        if not GetGPXtreeItemId(self,self.root,'Controls'):
     3279            sub = self.GPXtree.AppendItem(parent=self.root,text='Controls')
     3280            self.GPXtree.SetItemPyData(sub,copy.copy(G2obj.DefaultControls))
     3281        if not GetGPXtreeItemId(self,self.root,'Covariance'):
     3282            sub = self.GPXtree.AppendItem(parent=self.root,text='Covariance')
     3283            self.GPXtree.SetItemPyData(sub,{})
     3284        if not GetGPXtreeItemId(self,self.root,'Constraints'):
     3285            sub = self.GPXtree.AppendItem(parent=self.root,text='Constraints')
     3286            self.GPXtree.SetItemPyData(sub,{'Hist':[],'HAP':[],'Phase':[]})
     3287        if not GetGPXtreeItemId(self,self.root,'Restraints'):
     3288            sub = self.GPXtree.AppendItem(parent=self.root,text='Restraints')
     3289            self.GPXtree.SetItemPyData(sub,{})
     3290        if not GetGPXtreeItemId(self,self.root,'Rigid bodies'):
     3291            sub = self.GPXtree.AppendItem(parent=self.root,text='Rigid bodies')
     3292            self.GPXtree.SetItemPyData(sub,{'Vector':{'AtInfo':{}},
    32973293                'Residue':{'AtInfo':{}},'RBIds':{'Vector':[],'Residue':[]}})
    32983294               
     
    35233519        Inst = None
    35243520        Comments = ['Sum equals: \n']
    3525         if self.PatternTree.GetCount():
    3526             item, cookie = self.PatternTree.GetFirstChild(self.root)
     3521        if self.GPXtree.GetCount():
     3522            item, cookie = self.GPXtree.GetFirstChild(self.root)
    35273523            while item:
    3528                 name = self.PatternTree.GetItemText(item)
     3524                name = self.GPXtree.GetItemText(item)
    35293525                Names.append(name)
    35303526                if 'PWDR' in name:
    35313527                    TextList.append([0.0,name])
    3532                     DataList.append(self.PatternTree.GetItemPyData(item)[1])    # (x,y,w,yc,yb,yd)
     3528                    DataList.append(self.GPXtree.GetItemPyData(item)[1])    # (x,y,w,yc,yb,yd)
    35333529                    if not Inst:
    3534                         Inst = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,item, 'Instrument Parameters'))
    3535                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3530                        Inst = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,item, 'Instrument Parameters'))
     3531                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    35363532            if len(TextList) < 2:
    35373533                self.ErrorDialog('Not enough data to sum','There must be more than one "PWDR" pattern')
     
    35503546                        try:
    35513547                            if dlg2.ShowModal() == wx.ID_OK:
    3552                                 Id = GetPatternTreeItemId(self,self.root,name)
    3553                                 self.PatternTree.Delete(Id)
     3548                                Id = GetGPXtreeItemId(self,self.root,name)
     3549                                self.GPXtree.Delete(Id)
    35543550                        finally:
    35553551                            dlg2.Destroy()
    3556                     Id = self.PatternTree.AppendItem(parent=self.root,text=outname)
     3552                    Id = self.GPXtree.AppendItem(parent=self.root,text=outname)
    35573553                    if Id:
    35583554                        Sample = G2obj.SetDefaultSample()
     
    35663562                            'qPlot':False,'dPlot':False,'sqrtPlot':False,'Yminmax':[Ymin,Ymax]
    35673563                            }
    3568                         self.PatternTree.SetItemPyData(Id,[valuesdict,[np.array(Xsum),np.array(Ysum),np.array(Wsum),
     3564                        self.GPXtree.SetItemPyData(Id,[valuesdict,[np.array(Xsum),np.array(Ysum),np.array(Wsum),
    35693565                            np.array(YCsum),np.array(YBsum),np.array(YDsum)]])
    3570                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),Comments)                   
    3571                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Limits'),[tuple(Xminmax),Xminmax])
    3572                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Background'),[['chebyschev',True,3,1.0,0.0,0.0],
     3566                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Comments'),Comments)                   
     3567                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Limits'),[tuple(Xminmax),Xminmax])
     3568                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Background'),[['chebyschev',True,3,1.0,0.0,0.0],
    35733569                            {'nDebye':0,'debyeTerms':[],'nPeaks':0,'peaksList':[]}])
    3574                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Instrument Parameters'),Inst)
    3575                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Sample Parameters'),Sample)
    3576                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Peak List'),{'peaks':[],'sigDict':{}})
    3577                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[[],[]])
    3578                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[])             
    3579                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Reflection Lists'),{})             
    3580                         self.PatternTree.SelectItem(Id)
    3581                         self.PatternTree.Expand(Id)
     3570                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Instrument Parameters'),Inst)
     3571                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Sample Parameters'),Sample)
     3572                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Peak List'),{'peaks':[],'sigDict':{}})
     3573                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Index Peak List'),[[],[]])
     3574                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Unit Cells List'),[])             
     3575                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Reflection Lists'),{})             
     3576                        self.GPXtree.SelectItem(Id)
     3577                        self.GPXtree.Expand(Id)
    35823578            finally:
    35833579                dlg.Destroy()
     
    35903586        Names = []
    35913587        Comments = ['Sum equals: \n']
    3592         if self.PatternTree.GetCount():
    3593             item, cookie = self.PatternTree.GetFirstChild(self.root)
     3588        if self.GPXtree.GetCount():
     3589            item, cookie = self.GPXtree.GetFirstChild(self.root)
    35943590            while item:
    3595                 name = self.PatternTree.GetItemText(item)
     3591                name = self.GPXtree.GetItemText(item)
    35963592                Names.append(name)
    35973593                if 'IMG' in name:
    35983594                    TextList.append([0.0,name])
    3599                     DataList.append(self.PatternTree.GetImageLoc(item))        #Size,Image,Tag
     3595                    DataList.append(self.GPXtree.GetImageLoc(item))        #Size,Image,Tag
    36003596                    IdList.append(item)
    3601                     Data = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,item,'Image Controls'))
    3602                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3597                    Data = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,item,'Image Controls'))
     3598                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    36033599            if len(TextList) < 2:
    36043600                self.ErrorDialog('Not enough data to sum','There must be more than one "IMG" pattern')
     
    36463642                        try:
    36473643                            if dlg2.ShowModal() == wx.ID_OK:
    3648                                 Id = GetPatternTreeItemId(self,self.root,name)
     3644                                Id = GetGPXtreeItemId(self,self.root,name)
    36493645                        finally:
    36503646                            dlg2.Destroy()
    36513647                    else:
    3652                         Id = self.PatternTree.AppendItem(parent=self.root,text=outname)
     3648                        Id = self.GPXtree.AppendItem(parent=self.root,text=outname)
    36533649                    if Id:
    36543650                        pth = G2G.GetExportPath(self)
     
    36633659                            Imin = np.amin(newImage)
    36643660                            newImage = []
    3665                             self.PatternTree.SetItemPyData(Id,[imSize,newimagefile])
    3666                             self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),Comments)
     3661                            self.GPXtree.SetItemPyData(Id,[imSize,newimagefile])
     3662                            self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Comments'),Comments)
    36673663                        del(newImage)
    36683664                        if self.imageDefault:
     
    36773673                        Data['calibrant'] = ''
    36783674                        Data['range'] = [(Imin,Imax),[Imin,Imax]]
    3679                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Image Controls'),Data)                                           
     3675                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Image Controls'),Data)                                           
    36803676                        Masks = {'Points':[],'Rings':[],'Arcs':[],'Polygons':[],'Frames':[],'Thresholds':[(Imin,Imax),[Imin,Imax]]}
    3681                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Masks'),Masks)
    3682                         self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Stress/Strain'),
     3677                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Masks'),Masks)
     3678                        self.GPXtree.SetItemPyData(self.GPXtree.AppendItem(Id,text='Stress/Strain'),
    36833679                            {'Type':'True','d-zero':[],'Sample phi':0.0,'Sample z':0.0,'Sample load':0.0})
    3684                         self.PatternTree.SelectItem(Id)
    3685                         self.PatternTree.Expand(Id)
    3686                         self.PickId = GetPatternTreeItemId(self,self.root,outname)
     3680                        self.GPXtree.SelectItem(Id)
     3681                        self.GPXtree.Expand(Id)
     3682                        self.PickId = GetGPXtreeItemId(self,self.root,outname)
    36873683                        self.Image = self.PickId
    36883684            finally:
     
    36913687    def OnAddPhase(self,event):
    36923688        'Add a new, empty phase to the tree. Called by Data/Add Phase menu'
    3693         if not GetPatternTreeItemId(self,self.root,'Phases'):
    3694             sub = self.PatternTree.AppendItem(parent=self.root,text='Phases')
     3689        if not GetGPXtreeItemId(self,self.root,'Phases'):
     3690            sub = self.GPXtree.AppendItem(parent=self.root,text='Phases')
    36953691        else:
    3696             sub = GetPatternTreeItemId(self,self.root,'Phases')
     3692            sub = GetGPXtreeItemId(self,self.root,'Phases')
    36973693        PhaseName = ''
    36983694        dlg = wx.TextEntryDialog(None,'Enter a name for this phase','Phase Name Entry','New phase',
     
    37013697            PhaseName = dlg.GetValue()
    37023698        dlg.Destroy()
    3703         sub = self.PatternTree.AppendItem(parent=sub,text=PhaseName)
     3699        sub = self.GPXtree.AppendItem(parent=sub,text=PhaseName)
    37043700        E,SGData = G2spc.SpcGroup('P 1')
    3705         self.PatternTree.SetItemPyData(sub,G2obj.SetNewPhase(Name=PhaseName,SGData=SGData))
     3701        self.GPXtree.SetItemPyData(sub,G2obj.SetNewPhase(Name=PhaseName,SGData=SGData))
    37063702        SelectDataTreeItem(self,sub) #bring up new phase General tab
    37073703       
     
    37143710        DelList = []
    37153711        DelItemList = []
    3716         if GetPatternTreeItemId(self,self.root,'Phases'):
    3717             sub = GetPatternTreeItemId(self,self.root,'Phases')
     3712        if GetGPXtreeItemId(self,self.root,'Phases'):
     3713            sub = GetGPXtreeItemId(self,self.root,'Phases')
    37183714        else:
    37193715            return
    37203716        if sub:
    3721             item, cookie = self.PatternTree.GetFirstChild(sub)
     3717            item, cookie = self.GPXtree.GetFirstChild(sub)
    37223718            while item:
    3723                 TextList.append(self.PatternTree.GetItemText(item))
    3724                 item, cookie = self.PatternTree.GetNextChild(sub, cookie)               
     3719                TextList.append(self.GPXtree.GetItemText(item))
     3720                item, cookie = self.GPXtree.GetNextChild(sub, cookie)               
    37253721            dlg = wx.MultiChoiceDialog(self, 'Which phase to delete?', 'Delete phase', TextList, wx.CHOICEDLG_STYLE)
    37263722            try:
     
    37283724                    result = dlg.GetSelections()
    37293725                    for i in result: DelList.append([i,TextList[i]])
    3730                     item, cookie = self.PatternTree.GetFirstChild(sub)
     3726                    item, cookie = self.GPXtree.GetFirstChild(sub)
    37313727                    i = 0
    37323728                    while item:
    3733                         if [i,self.PatternTree.GetItemText(item)] in DelList: DelItemList.append(item)
    3734                         item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     3729                        if [i,self.GPXtree.GetItemText(item)] in DelList: DelItemList.append(item)
     3730                        item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    37353731                        i += 1
    37363732                    for item in DelItemList:
    3737                         name = self.PatternTree.GetItemText(item)
    3738                         self.PatternTree.Delete(item)
     3733                        name = self.GPXtree.GetItemText(item)
     3734                        self.GPXtree.Delete(item)
    37393735                        self.G2plotNB.Delete(name)
    3740                     item, cookie = self.PatternTree.GetFirstChild(self.root)
     3736                    item, cookie = self.GPXtree.GetFirstChild(self.root)
    37413737                    while item:
    3742                         name = self.PatternTree.GetItemText(item)
     3738                        name = self.GPXtree.GetItemText(item)
    37433739                        if 'PWDR' in name:
    3744                             Id = GetPatternTreeItemId(self,item, 'Reflection Lists')
    3745                             refList = self.PatternTree.GetItemPyData(Id)
     3740                            Id = GetGPXtreeItemId(self,item, 'Reflection Lists')
     3741                            refList = self.GPXtree.GetItemPyData(Id)
    37463742                            if len(refList):
    37473743                                for i,item in DelList:
    37483744                                    if item in refList:
    37493745                                        del(refList[item])
    3750 #                            self.PatternTree.SetItemPyData(Id,refList)
     3746#                            self.GPXtree.SetItemPyData(Id,refList)
    37513747                        elif 'HKLF' in name:
    3752                             data = self.PatternTree.GetItemPyData(item)
     3748                            data = self.GPXtree.GetItemPyData(item)
    37533749                            data[0] = {}
    3754 #                            self.PatternTree.SetItemPyData(item,data)
     3750#                            self.GPXtree.SetItemPyData(item,data)
    37553751                           
    3756                         item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3752                        item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    37573753            finally:
    37583754                dlg.Destroy()
     
    37603756    def OnRenameData(self,event):
    37613757        'Renames an existing phase. Called by Data/Rename Phase menu'
    3762         name = self.PatternTree.GetItemText(self.PickId)     
     3758        name = self.GPXtree.GetItemText(self.PickId)     
    37633759        if 'PWDR' in name or 'HKLF' in name or 'IMG' in name:
    37643760            if 'Bank' in name:
     
    37763772                if dlg.ShowModal() == wx.ID_OK:
    37773773                    name = dataType+dlg.GetValue()+names[1]
    3778                     self.PatternTree.SetItemText(self.PickId,name)
     3774                    self.GPXtree.SetItemText(self.PickId,name)
    37793775            finally:
    37803776                dlg.Destroy()
     
    37843780        fileList = []
    37853781        Source = ''
    3786         id, cookie = self.PatternTree.GetFirstChild(self.root)
     3782        id, cookie = self.GPXtree.GetFirstChild(self.root)
    37873783        while id:
    3788             name = self.PatternTree.GetItemText(id)
     3784            name = self.GPXtree.GetItemText(id)
    37893785            if fileType in name:
    37903786                if id == skip:
     
    37923788                else:
    37933789                    fileList.append([False,name,id])
    3794             id, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3790            id, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    37953791        if skip:
    37963792            return fileList,Source
     
    38073803        nItems = {'PWDR':0,'SASD':0,'REFD':0,'IMG':0,'HKLF':0,'PDF':0}
    38083804        PDFnames = []
    3809         if self.PatternTree.GetCount():
    3810             item, cookie = self.PatternTree.GetFirstChild(self.root)
     3805        if self.GPXtree.GetCount():
     3806            item, cookie = self.GPXtree.GetFirstChild(self.root)
    38113807            while item:
    3812                 name = self.PatternTree.GetItemText(item)
     3808                name = self.GPXtree.GetItemText(item)
    38133809                if name not in ['Notebook','Controls','Covariance','Constraints',
    38143810                    'Restraints','Phases','Rigid bodies'] and 'Sequential' not in name:
     
    38223818                        nItems['PDF'] += 1
    38233819                    TextList.append(name)
    3824                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3820                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    38253821            for pdfName in PDFnames:
    38263822                try:
     
    38333829                    result = dlg.GetSelections()
    38343830                    for i in result: DelList.append(TextList[i])
    3835                     item, cookie = self.PatternTree.GetFirstChild(self.root)
     3831                    item, cookie = self.GPXtree.GetFirstChild(self.root)
    38363832                    while item:
    3837                         itemName = self.PatternTree.GetItemText(item)
     3833                        itemName = self.GPXtree.GetItemText(item)
    38383834                        if itemName in DelList:
    38393835                            if 'PWDR' in itemName[:4]: nItems['PWDR'] -= 1
     
    38443840                            elif 'PDF' in itemName[:3]: nItems['PDF'] -= 1
    38453841                            DelItemList.append(item)
    3846                         item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3842                        item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    38473843                    for item in DelItemList:
    3848                         self.PatternTree.Delete(item)
     3844                        self.GPXtree.Delete(item)
    38493845                    self.PickId = 0
    38503846                    self.PickIdText = None
     
    38693865        result = wx.ID_OK
    38703866        self.EnablePlot = False
    3871         if self.PatternTree.GetChildrenCount(self.root,False):
     3867        if self.GPXtree.GetChildrenCount(self.root,False):
    38723868            if self.dataFrame:
    38733869                self.dataFrame.ClearData()
     
    38803876                result = dlg.ShowModal()
    38813877                if result == wx.ID_OK:
    3882                     self.PatternTree.DeleteChildren(self.root)
     3878                    self.GPXtree.DeleteChildren(self.root)
    38833879                    self.GSASprojectfile = ''
    38843880                    self.HKL = []
     
    39223918        phaseId = None
    39233919        G2IO.ProjFileOpen(self)
    3924         self.PatternTree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)
    3925         self.PatternTree.Expand(self.root)
     3920        self.GPXtree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)
     3921        self.GPXtree.Expand(self.root)
    39263922        self.HKL = []
    3927         item, cookie = self.PatternTree.GetFirstChild(self.root)
     3923        item, cookie = self.GPXtree.GetFirstChild(self.root)
    39283924        while item and not Id:
    3929             name = self.PatternTree.GetItemText(item)
     3925            name = self.GPXtree.GetItemText(item)
    39303926            if name[:4] in ['PWDR','HKLF','IMG ','PDF ','SASD','REFD']:
    39313927                Id = item
     
    39333929                phaseId = item
    39343930            elif name == 'Controls':
    3935                 data = self.PatternTree.GetItemPyData(item)
     3931                data = self.GPXtree.GetItemPyData(item)
    39363932                if data:
    39373933                    for item in self.Refine: item.Enable(True)
    39383934                    self.EnableSeqRefineMenu()
    3939             item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     3935            item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    39403936        if phaseId: # show all phases
    3941             self.PatternTree.Expand(phaseId)
     3937            self.GPXtree.Expand(phaseId)
    39423938        if Id:
    39433939            self.EnablePlot = True
    3944             self.PatternTree.SelectItem(Id)
    3945             self.PatternTree.Expand(Id)
     3940            self.GPXtree.SelectItem(Id)
     3941            self.GPXtree.Expand(Id)
    39463942        elif phaseId:
    3947             self.PatternTree.SelectItem(phaseId)
     3943            self.GPXtree.SelectItem(phaseId)
    39483944        self.CheckNotebook()
    39493945        if self.dirname: os.chdir(self.dirname)           # to get Mac/Linux to change directory!
     
    39643960            if result != wx.ID_CANCEL:
    39653961                self.GSASprojectfile = ''
    3966                 self.PatternTree.SetItemText(self.root,'Loaded Data: ')
    3967                 self.PatternTree.DeleteChildren(self.root)
     3962                self.GPXtree.SetItemText(self.root,'Loaded Data: ')
     3963                self.GPXtree.DeleteChildren(self.root)
    39683964                if self.HKL: self.HKL = []
    39693965                if self.G2plotNB.plotList:
     
    39783974       
    39793975        if self.GSASprojectfile:
    3980             self.PatternTree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)
     3976            self.GPXtree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)
    39813977            self.CheckNotebook()
    39823978            G2IO.ProjFileSave(self)
     
    40013997                self.GSASprojectfile = dlg.GetPath()
    40023998                self.GSASprojectfile = G2IO.FileDlgFixExt(dlg,self.GSASprojectfile)
    4003                 self.PatternTree.SetItemText(self.root,'Saving project as'+self.GSASprojectfile)
     3999                self.GPXtree.SetItemText(self.root,'Saving project as'+self.GSASprojectfile)
    40044000                self.SetTitle("GSAS-II data tree: "+os.path.split(self.GSASprojectfile)[1])
    40054001                self.CheckNotebook()
     
    40164012            self.ExpandingAll = True
    40174013            try:
    4018                 self.PatternTree.ExpandAll()
     4014                self.GPXtree.ExpandAll()
    40194015            finally:
    40204016                self.ExpandingAll = False
     
    40224018            self.ExpandingAll = True
    40234019            try:
    4024                 item, cookie = self.PatternTree.GetFirstChild(self.root)
     4020                item, cookie = self.GPXtree.GetFirstChild(self.root)
    40254021                while item:
    4026                     name = self.PatternTree.GetItemText(item)
    4027                     if name.startswith(txt+' '): self.PatternTree.Expand(item)
    4028                     item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     4022                    name = self.GPXtree.GetItemText(item)
     4023                    if name.startswith(txt+' '): self.GPXtree.Expand(item)
     4024                    item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    40294025            finally:
    40304026                self.ExpandingAll = False
     
    40364032        # make a list of items to copy
    40374033        copyList = []
    4038         item, cookie = self.PatternTree.GetFirstChild(self.root)
     4034        item, cookie = self.GPXtree.GetFirstChild(self.root)
    40394035        while item:
    4040             if self.PatternTree.GetItemText(item).startswith(txt+' '):
     4036            if self.GPXtree.GetItemText(item).startswith(txt+' '):
    40414037                copyList.append(item)
    4042             item, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     4038            item, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    40434039       
    40444040        self.ExpandingAll = True
    40454041        try:
    40464042            for item in copyList:
    4047                 name = self.PatternTree.GetItemText(item)
    4048                 newId = self.PatternTree.AppendItem(self.root,name)
    4049                 self.PatternTree.SetItemPyData(newId,self.PatternTree.GetItemPyData(item))
    4050                 chld, chldcookie = self.PatternTree.GetFirstChild(item)
     4043                name = self.GPXtree.GetItemText(item)
     4044                newId = self.GPXtree.AppendItem(self.root,name)
     4045                self.GPXtree.SetItemPyData(newId,self.GPXtree.GetItemPyData(item))
     4046                chld, chldcookie = self.GPXtree.GetFirstChild(item)
    40514047                while chld:
    4052                     chname = self.PatternTree.GetItemText(chld)
    4053                     newCh = self.PatternTree.AppendItem(newId,chname)
    4054                     self.PatternTree.SetItemPyData(newCh,self.PatternTree.GetItemPyData(chld))
    4055                     chld, chldcookie = self.PatternTree.GetNextChild(item, chldcookie)
    4056                 self.PatternTree.Delete(item)
     4048                    chname = self.GPXtree.GetItemText(chld)
     4049                    newCh = self.GPXtree.AppendItem(newId,chname)
     4050                    self.GPXtree.SetItemPyData(newCh,self.GPXtree.GetItemPyData(chld))
     4051                    chld, chldcookie = self.GPXtree.GetNextChild(item, chldcookie)
     4052                self.GPXtree.Delete(item)
    40574053        finally:
    40584054            self.ExpandingAll = False
     
    40874083                self.peaklistfile = G2IO.FileDlgFixExt(dlg,self.peaklistfile)
    40884084                file = open(self.peaklistfile,'w')               
    4089                 item, cookie = self.PatternTree.GetFirstChild(self.root)
     4085                item, cookie = self.GPXtree.GetFirstChild(self.root)
    40904086                while item:
    4091                     name = self.PatternTree.GetItemText(item)
     4087                    name = self.GPXtree.GetItemText(item)
    40924088                    if 'PWDR' in name:
    4093                         item2, cookie2 = self.PatternTree.GetFirstChild(item)
     4089                        item2, cookie2 = self.GPXtree.GetFirstChild(item)
    40944090                        wave = 0.0
    40954091                        while item2:
    4096                             name2 = self.PatternTree.GetItemText(item2)
     4092                            name2 = self.GPXtree.GetItemText(item2)
    40974093                            if name2 == 'Instrument Parameters':
    4098                                 Inst = self.PatternTree.GetItemPyData(item2)[0]
     4094                                Inst = self.GPXtree.GetItemPyData(item2)[0]
    40994095                                Type = Inst['Type'][0]
    41004096                                if 'T' not in Type:
    41014097                                    wave = G2mth.getWave(Inst)
    41024098                            elif name2 == 'Peak List':
    4103                                 pkdata = self.PatternTree.GetItemPyData(item2)
     4099                                pkdata = self.GPXtree.GetItemPyData(item2)
    41044100                                peaks = pkdata['peaks']
    41054101                                sigDict = pkdata['sigDict']
    4106                             item2, cookie2 = self.PatternTree.GetNextChild(item, cookie2)                           
     4102                            item2, cookie2 = self.GPXtree.GetNextChild(item, cookie2)                           
    41074103                        file.write("#%s \n" % (name+' Peak List'))
    41084104                        if wave:
     
    41354131                                file.write("%10.4f %10.5f %10.5f %12.2f %10.5f %10.5f %10.5f \n" % \
    41364132                                    (peak[0],dsp,esddsp,peak[2],np.sqrt(max(0.0001,peak[4]))/100.,peak[6]/100.,FWHM/100.)) #convert to deg
    4137                     item, cookie = self.PatternTree.GetNextChild(self.root, cookie)                           
     4133                    item, cookie = self.GPXtree.GetNextChild(self.root, cookie)                           
    41384134                file.close()
    41394135        finally:
     
    41494145                self.peaklistfile = G2IO.FileDlgFixExt(dlg,self.peaklistfile)
    41504146                file = open(self.peaklistfile,'w')               
    4151                 item, cookie = self.PatternTree.GetFirstChild(self.root)
     4147                item, cookie = self.GPXtree.GetFirstChild(self.root)
    41524148                while item:
    4153                     name = self.PatternTree.GetItemText(item)
     4149                    name = self.GPXtree.GetItemText(item)
    41544150                    if 'PWDR' in name:
    4155                         item2, cookie2 = self.PatternTree.GetFirstChild(item)
     4151                        item2, cookie2 = self.GPXtree.GetFirstChild(item)
    41564152                        while item2:
    4157                             name2 = self.PatternTree.GetItemText(item2)
     4153                            name2 = self.GPXtree.GetItemText(item2)
    41584154                            if name2 == 'Reflection Lists':
    4159                                 data = self.PatternTree.GetItemPyData(item2)
     4155                                data = self.GPXtree.GetItemPyData(item2)
    41604156                                phases = data.keys()
    41614157                                for phase in phases:
     
    41854181                                                (int(peak[0]),int(peak[1]),int(peak[2]),int(peak[3]),peak[4],peak[5],FWHM/100.,
    41864182                                                peak[8],peak[9],peak[11],peak[12],peak[13],peak[14],I100[ipk]))
    4187                             item2, cookie2 = self.PatternTree.GetNextChild(item, cookie2)                           
    4188                     item, cookie = self.PatternTree.GetNextChild(self.root, cookie)                           
     4183                            item2, cookie2 = self.GPXtree.GetNextChild(item, cookie2)                           
     4184                    item, cookie = self.GPXtree.GetNextChild(self.root, cookie)                           
    41894185                file.close()
    41904186        finally:
     
    42204216        Qlimits = []
    42214217        Names = []
    4222         if self.PatternTree.GetCount():
    4223             id, cookie = self.PatternTree.GetFirstChild(self.root)
     4218        if self.GPXtree.GetCount():
     4219            id, cookie = self.GPXtree.GetFirstChild(self.root)
    42244220            while id:
    4225                 name = self.PatternTree.GetItemText(id)
     4221                name = self.GPXtree.GetItemText(id)
    42264222                Names.append(name)
    42274223                if 'PWDR' in name:
    42284224                    TextList.append(name)
    4229                     Data = self.PatternTree.GetItemPyData(id)[1]
     4225                    Data = self.GPXtree.GetItemPyData(id)[1]
    42304226                    pwdrMin = np.min(Data[1])
    4231                     Comments = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,id,'Comments'))
    4232                     Parms = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,id,'Instrument Parameters'))[0]
    4233                     fullLimits = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,id,'Limits'))[0]
     4227                    Comments = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,id,'Comments'))
     4228                    Parms = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,id,'Instrument Parameters'))[0]
     4229                    fullLimits = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,id,'Limits'))[0]
    42344230                    if 'C' in Parms['Type'][0]:
    42354231                        wave = G2mth.getWave(Parms)
     
    42594255                                ElList[elem] = ElData
    42604256                    ElLists.append(ElList)
    4261                 id, cookie = self.PatternTree.GetNextChild(self.root, cookie)
     4257                id, cookie = self.GPXtree.GetNextChild(self.root, cookie)
    42624258            if len(TextList) < 1:
    42634259                self.ErrorDialog('Nothing to make PDFs for','There must be at least one "PWDR" pattern')
     
    42674263                if dlg.ShowModal() == wx.ID_OK:
    42684264                    for i in dlg.GetSelections():
    4269                         PDFnames = GetPatternTreeDataNames(self,['PDF ',])
     4265                        PDFnames = GetGPXtreeDataNames(self,['PDF ',])
    42704266                        G2obj.CreatePDFitems(self,TextList[i],ElLists[i],Qlimits[i],sumnum,pwdrMin,PDFnames)
    42714267                for item in self.ExportPDF: item.Enable(True)
     
    42854281        PWDRdata = {}
    42864282        try:
    4287             PWDRdata.update(self.PatternTree.GetItemPyData(PWDRname)[0])            #wtFactor + ?
     4283            PWDRdata.update(self.GPXtree.GetItemPyData(PWDRname)[0])            #wtFactor + ?
    42884284        except ValueError:
    42894285            PWDRdata['wtFactor'] = 1.0
    4290         PWDRdata['Data'] = self.PatternTree.GetItemPyData(PWDRname)[1]          #powder data arrays
    4291         PWDRdata['Limits'] = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,PWDRname,'Limits'))
    4292         PWDRdata['Background'] = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,PWDRname,'Background'))
    4293         PWDRdata['Instrument Parameters'] = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,PWDRname,'Instrument Parameters'))
    4294         PWDRdata['Sample Parameters'] = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,PWDRname,'Sample Parameters'))
    4295         PWDRdata['Reflection Lists'] = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,PWDRname,'Reflection Lists'))
     4286        PWDRdata['Data'] = self.GPXtree.GetItemPyData(PWDRname)[1]          #powder data arrays
     4287        PWDRdata['Limits'] = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,PWDRname,'Limits'))
     4288        PWDRdata['Background'] = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,PWDRname,'Background'))
     4289        PWDRdata['Instrument Parameters'] = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,PWDRname,'Instrument Parameters'))
     4290        PWDRdata['Sample Parameters'] = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,PWDRname,'Sample Parameters'))
     4291        PWDRdata['Reflection Lists'] = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,PWDRname,'Reflection Lists'))
    42964292        if 'ranId' not in PWDRdata:  # patch, add a random Id
    42974293            PWDRdata['ranId'] = ran.randint(0,sys.maxint)
     
    43114307        '''
    43124308        HKLFdata = {}
    4313         HKLFdata.update(self.PatternTree.GetItemPyData(HKLFname)[0])            #wtFactor + ?
     4309        HKLFdata.update(self.GPXtree.GetItemPyData(HKLFname)[0])            #wtFactor + ?
    43144310#        try:
    4315 #            HKLFdata.update(self.PatternTree.GetItemPyData(HKLFname)[0])            #wtFactor + ?
     4311#            HKLFdata.update(self.GPXtree.GetItemPyData(HKLFname)[0])            #wtFactor + ?
    43164312#        except ValueError:
    43174313#            HKLFdata['wtFactor'] = 1.0
    4318         HKLFdata['Data'] = self.PatternTree.GetItemPyData(HKLFname)[1]
    4319         HKLFdata['Instrument Parameters'] = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,HKLFname,'Instrument Parameters'))
     4314        HKLFdata['Data'] = self.GPXtree.GetItemPyData(HKLFname)[1]
     4315        HKLFdata['Instrument Parameters'] = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,HKLFname,'Instrument Parameters'))
    43204316        return HKLFdata
    43214317       
     
    43264322        '''
    43274323        phaseData = {}
    4328         if GetPatternTreeItemId(self,self.root,'Phases'):
    4329             sub = GetPatternTreeItemId(self,self.root,'Phases')
     4324        if GetGPXtreeItemId(self,self.root,'Phases'):
     4325            sub = GetGPXtreeItemId(self,self.root,'Phases')
    43304326        else:
    43314327            print 'no phases found in GetPhaseData'
    43324328            sub = None
    43334329        if sub:
    4334             item, cookie = self.PatternTree.GetFirstChild(sub)
     4330            item, cookie = self.GPXtree.GetFirstChild(sub)
    43354331            while item:
    4336                 phaseName = self.PatternTree.GetItemText(item)
    4337                 phaseData[phaseName] =  self.PatternTree.GetItemPyData(item)
     4332                phaseName = self.GPXtree.GetItemText(item)
     4333                phaseData[phaseName] =  self.GPXtree.GetItemPyData(item)
    43384334                if 'ranId' not in phaseData[phaseName]:
    43394335                    phaseData[phaseName]['ranId'] = ran.randint(0,sys.maxint)         
    4340                 item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     4336                item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    43414337        return phaseData
    43424338
     
    43544350        phaseRIdList = []
    43554351        usedHistograms = {}
    4356         sub = GetPatternTreeItemId(self,self.root,'Phases')
     4352        sub = GetGPXtreeItemId(self,self.root,'Phases')
    43574353        if sub:
    4358             item, cookie = self.PatternTree.GetFirstChild(sub)
     4354            item, cookie = self.GPXtree.GetFirstChild(sub)
    43594355            while item:
    4360                 phaseName = self.PatternTree.GetItemText(item)
    4361                 ranId = self.PatternTree.GetItemPyData(item).get('ranId')
     4356                phaseName = self.GPXtree.GetItemText(item)
     4357                ranId = self.GPXtree.GetItemPyData(item).get('ranId')
    43624358                if ranId: phaseRIdList.append(ranId)
    4363                 data = self.PatternTree.GetItemPyData(item)
     4359                data = self.GPXtree.GetItemPyData(item)
    43644360                UseList = data['Histograms']
    43654361                usedHistograms[phaseName] = UseList.keys()
    4366                 item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     4362                item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    43674363        return phaseRIdList,usedHistograms
    43684364
     
    43734369        '''
    43744370        phaseNames = []
    4375         if GetPatternTreeItemId(self,self.root,'Phases'):
    4376             sub = GetPatternTreeItemId(self,self.root,'Phases')
     4371        if GetGPXtreeItemId(self,self.root,'Phases'):
     4372            sub = GetGPXtreeItemId(self,self.root,'Phases')
    43774373        else:
    43784374            print 'no phases found in GetPhaseNames'
    43794375            sub = None
    43804376        if sub:
    4381             item, cookie = self.PatternTree.GetFirstChild(sub)
     4377            item, cookie = self.GPXtree.GetFirstChild(sub)
    43824378            while item:
    4383                 phase = self.PatternTree.GetItemText(item)
     4379                phase = self.GPXtree.GetItemText(item)
    43844380                phaseNames.append(phase)
    4385                 item, cookie = self.PatternTree.GetNextChild(sub, cookie)
     4381                item, cookie = self.GPXtree.GetNextChild(sub, cookie)
    43864382        return phaseNames
    43874383   
     
    43964392        """
    43974393        HistogramNames = []
    4398         if self.PatternTree.GetCount():
    4399             item, cookie = self.PatternTree.GetFirstChild(self.root)
     4394        if self.GPXtree.GetCount():
     4395            item, cookie = self.GPXtree.GetFirstChild(self.root)
    44004396            while item:
    4401                 name = self.PatternTree.GetItemText(item)
     4397                name = self.GPXtree.GetItemText(item)
    44024398                if name[:4] in hType:
    44034399                    HistogramNames.append(name)       
    4404                 item, cookie = self.PatternTree.GetNextChild(self.root, cookie)               
     4400                item, cookie = self.GPXtree.GetNextChild(self.root, cookie)               
    44054401
    44064402        return HistogramNames
     
    44364432                        Phase['Histograms'][hist]['Use'] = True         
    44374433                    if hist not in Histograms and Phase['Histograms'][hist]['Use']:
    4438                         item = GetPatternTreeItemId(self,self.root,hist)
     4434                        item = GetGPXtreeItemId(self,self.root,hist)
    44394435                        if item:
    44404436                            if 'PWDR' in hist[:4]:
     
    44744470                self.ErrorDialog('View parameter error','You must run least squares at least once')
    44754471                raise Exception,'No pId for phase '+phase
    4476         rigidbodyDict = self.PatternTree.GetItemPyData(   
    4477             GetPatternTreeItemId(self,self.root,'Rigid bodies'))
     4472        rigidbodyDict = self.GPXtree.GetItemPyData(   
     4473            GetGPXtreeItemId(self,self.root,'Rigid bodies'))
    44784474        rbVary,rbDict = G2stIO.GetRigidBodyModels(rigidbodyDict,Print=False)
    44794475        rbIds = rigidbodyDict.get('RBIds',{'Vector':[],'Residue':[]})
     
    45194515        try:
    45204516            # process constraints
    4521             sub = GetPatternTreeItemId(self,self.root,'Constraints')
    4522             Constraints = self.PatternTree.GetItemPyData(sub)
     4517            sub = GetGPXtreeItemId(self,self.root,'Constraints')
     4518            Constraints = self.GPXtree.GetItemPyData(sub)
    45234519            constList = []
    45244520            for item in Constraints:
     
    45404536        Called from the Calculate/Refine menu.
    45414537        '''
    4542         Id = GetPatternTreeItemId(self,self.root,'Sequential results')
     4538        Id = GetGPXtreeItemId(self,self.root,'Sequential results')
    45434539        if Id:
    45444540            dlg = wx.MessageDialog(
     
    45474543                'Remove sequential results?',wx.OK|wx.CANCEL)
    45484544            if dlg.ShowModal() == wx.ID_OK:
    4549                 self.PatternTree.Delete(Id)
     4545                self.GPXtree.Delete(Id)
    45504546                dlg.Destroy()
    45514547            else:
     
    45744570        Rw = 100.00
    45754571        self.SaveTreeSetting()
    4576         self.PatternTree.SaveExposedItems()       
     4572        self.GPXtree.SaveExposedItems()       
    45774573        try:
    45784574            OK,Msg = G2stMn.Refine(self.GSASprojectfile,dlg)    #Msg is Rvals dict if Ok=True
     
    45934589            try:
    45944590                if dlg2.ShowModal() == wx.ID_OK:
    4595                     self.PatternTree.DeleteChildren(self.root)
     4591                    self.GPXtree.DeleteChildren(self.root)
    45964592                    self.HKL = []
    45974593                    G2IO.ProjFileOpen(self,False)
    4598                     self.PatternTree.RestoreExposedItems()       
     4594                    self.GPXtree.RestoreExposedItems()       
    45994595                    self.ResetPlots()
    46004596            finally:
     
    46054601    def SaveTreeSetting(self):
    46064602        'Save the last tree setting'
    4607         oldId =  self.PatternTree.GetSelection()        #retain current selection
     4603        oldId =  self.GPXtree.GetSelection()        #retain current selection
    46084604        oldPath = self.GetTreeItemsList(oldId)
    46094605        self.lastTreeSetting = oldPath
     
    46114607        #parentName = ''
    46124608        #tabId = None
    4613         # parentId = self.PatternTree.GetItemParent(oldId)
     4609        # parentId = self.GPXtree.GetItemParent(oldId)
    46144610        # if parentId:
    4615         #     parentName = self.PatternTree.GetItemText(parentId)     #find the current data tree name
     4611        #     parentName = self.GPXtree.GetItemText(parentId)     #find the current data tree name
    46164612        #     if 'Phases' in parentName:
    46174613        #         tabId = self.dataDisplay.GetSelection()
     
    46444640        Id = self.root
    46454641        for txt in oldPath:
    4646             Id = GetPatternTreeItemId(self, Id, txt)
     4642            Id = GetGPXtreeItemId(self, Id, txt)
    46474643        self.PickIdText = None  #force reload of page
    46484644        if Id:
    46494645            self.PickId = Id
    4650             self.PatternTree.SelectItem(Id)
     4646            self.GPXtree.SelectItem(Id)
    46514647        # update other self-updating plots
    46524648#        for lbl,frame in zip(self.G2plotNB.plotList,self.G2plotNB.panelList):
     
    46654661        Called from the Calculate/Sequential refine menu.
    46664662        '''
    4667         Id = GetPatternTreeItemId(self,self.root,'Sequential results')
     4663        Id = GetGPXtreeItemId(self,self.root,'Sequential results')
    46684664        if not Id:
    4669             Id = self.PatternTree.AppendItem(self.root,text='Sequential results')
    4670             self.PatternTree.SetItemPyData(Id,{})           
     4665            Id = self.GPXtree.AppendItem(self.root,text='Sequential results')
     4666            self.GPXtree.SetItemPyData(Id,{})           
    46714667        self.G2plotNB.Delete('Sequential refinement')    #clear away probably invalid plot
    4672         Controls = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,self.root, 'Controls'))
     4668        Controls = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,self.root, 'Controls'))
    46734669        if not Controls.get('Seq Data'):
    46744670            print('Error: a sequential refinement has not been set up')
     
    46884684                             warnmsg+'\nRefinement not possible')
    46894685            return
    4690         self.PatternTree.SaveExposedItems()       
     4686        self.GPXtree.SaveExposedItems()       
    46914687        dlg = wx.ProgressDialog('Residual for histogram 0','Powder profile Rwp =',101.0,
    46924688            style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_CAN_ABORT,
     
    47074703                if dlg.ShowModal() == wx.ID_OK:
    47084704                    self.PickIdText = None  #force reload of PickId contents
    4709                     self.PatternTree.DeleteChildren(self.root)
     4705                    self.GPXtree.DeleteChildren(self.root)
    47104706                    if len(self.HKL): self.HKL = []
    47114707                    if self.G2plotNB.plotList:
    47124708                        self.G2plotNB.clear()
    47134709                    G2IO.ProjFileOpen(self,False)
    4714                     self.PatternTree.RestoreExposedItems()
     4710                    self.GPXtree.RestoreExposedItems()
    47154711                    self.ResetPlots()
    4716                     Id = GetPatternTreeItemId(self,self.root,'Sequential results')
    4717                     self.PatternTree.SelectItem(Id)
     4712                    Id = GetGPXtreeItemId(self,self.root,'Sequential results')
     4713                    self.GPXtree.SelectItem(Id)
    47184714            finally:
    47194715                dlg.Destroy()
     
    57865782#        '''Keep track of size changes for Phase windows
    57875783#        '''
    5788 #        id = self.G2frame.PatternTree.GetSelection()
     5784#        id = self.G2frame.GPXtree.GetSelection()
    57895785#        try:
    5790 #            parent = self.G2frame.PatternTree.GetItemParent(id)
     5786#            parent = self.G2frame.GPXtree.GetItemParent(id)
    57915787#        except:         #avoid bad tree item on start via gpx file selection
    57925788#            parent = 0
    5793 #        if self.userReSize and parent and self.G2frame.PatternTree.GetItemText(parent) == "Phases":
     5789#        if self.userReSize and parent and self.G2frame.GPXtree.GetItemText(parent) == "Phases":
    57945790#            newSize = event.EventObject.GetSize()
    57955791#            if newSize[1] < 200: return             #avois spurious small window after Refine
     
    58265822        event.Skip()
    58275823        data = text.GetValue().split('\n')
    5828         G2frame.PatternTree.SetItemPyData(GetPatternTreeItemId(G2frame,G2frame.root,'Notebook'),data)
     5824        G2frame.GPXtree.SetItemPyData(GetGPXtreeItemId(G2frame,G2frame.root,'Notebook'),data)
    58295825        if 'nt' not in os.name:
    58305826            text.AppendText('\n')
     
    59175913       
    59185914        def OnSelectData(event):
    5919             choices = GetPatternTreeDataNames(G2frame,['PWDR','HKLF',])
     5915            choices = GetGPXtreeDataNames(G2frame,['PWDR','HKLF',])
    59205916            sel = []
    59215917            try:
     
    61256121                'FreePrm1':[],'FreePrm2':[],'FreePrm3':[],'Omega':[],
    61266122                'Chi':[],'Phi':[],'Azimuth':[],}
    6127         Controls = G2frame.PatternTree.GetItemPyData(
    6128             GetPatternTreeItemId(G2frame,G2frame.root, 'Controls'))
     6123        Controls = G2frame.GPXtree.GetItemPyData(
     6124            GetGPXtreeItemId(G2frame,G2frame.root, 'Controls'))
    61296125        sampleParm = {}
    61306126        for name in histNames:
     
    61376133                if 'PDF' in name:
    61386134                    name = 'PWDR' + name[4:]
    6139                 Id = GetPatternTreeItemId(G2frame,G2frame.root,name)
     6135                Id = GetGPXtreeItemId(G2frame,G2frame.root,name)
    61406136                if Id:
    6141                     sampleData = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,Id,'Sample Parameters'))
     6137                    sampleData = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,Id,'Sample Parameters'))
    61426138                    for item in sampleParmDict:
    61436139                        sampleParmDict[item].append(sampleData.get(item,0))
     
    61766172            if not name.startswith('PWDR'): return
    61776173            pickId = G2frame.PickId
    6178             G2frame.PickId = G2frame.PatternId = GetPatternTreeItemId(G2frame, G2frame.root, name)
     6174            G2frame.PickId = G2frame.PatternId = GetGPXtreeItemId(G2frame, G2frame.root, name)
    61796175            G2plt.PlotPatterns(G2frame,newPlot=True,plotType='PWDR')
    61806176            G2frame.PickId = pickId
     
    69066902    data['variableLabels'] = variableLabels
    69076903    Histograms,Phases = G2frame.GetUsedHistogramsAndPhasesfromTree()
    6908     Controls = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.root,'Controls'))
     6904    Controls = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,G2frame.root,'Controls'))
    69096905    # create a place to store Pseudo Vars & Parametric Fit functions, if not present
    69106906    if 'SeqPseudoVars' not in data: data['SeqPseudoVars'] = {}
     
    73817377        Tmin = newdata[0]
    73827378        Tmax = newdata[-1]
    7383         G2frame.PatternTree.SetItemPyData(GetPatternTreeItemId(G2frame,item,'Limits'),
     7379        G2frame.GPXtree.SetItemPyData(GetGPXtreeItemId(G2frame,item,'Limits'),
    73847380            [(Tmin,Tmax),[Tmin,Tmax]])
    73857381        UpdatePWHKPlot(G2frame,kind,item) # redisplay data screen
     
    73987394       
    73997395    def OnPlotAll3DHKL(event):
    7400         choices = GetPatternTreeDataNames(G2frame,['HKLF',])
     7396        choices = GetGPXtreeDataNames(G2frame,['HKLF',])
    74017397        dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to plot',
    74027398            'Use data',choices)
     
    74107406        refList = np.zeros(0)
    74117407        for name in refNames:
    7412             Id = GetPatternTreeItemId(G2frame,G2frame.root, name)
    7413             reflData = G2frame.PatternTree.GetItemPyData(Id)[1]
     7408            Id = GetGPXtreeItemId(G2frame,G2frame.root, name)
     7409            reflData = G2frame.GPXtree.GetItemPyData(Id)[1]
    74147410            if len(refList):
    74157411                refList = np.concatenate((refList,reflData['RefList']))
     
    74287424                 
    74297425    def OnMergeHKL(event):
    7430         Name = G2frame.PatternTree.GetItemText(G2frame.PatternId)
    7431         Inst = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,
     7426        Name = G2frame.GPXtree.GetItemText(G2frame.PatternId)
     7427        Inst = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,
    74327428            G2frame.PatternId,'Instrument Parameters'))
    7433         CId = GetPatternTreeItemId(G2frame,G2frame.PatternId,'Comments')
     7429        CId = GetGPXtreeItemId(G2frame,G2frame.PatternId,'Comments')
    74347430        if CId:
    7435             Comments = G2frame.PatternTree.GetItemPyData(CId)
     7431            Comments = G2frame.GPXtree.GetItemPyData(CId)
    74367432        else:
    74377433            Comments = []
     
    75007496        HKLFlist = []
    75017497        newName = Name+' '+Laue
    7502         if G2frame.PatternTree.GetCount():
    7503             item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root)
     7498        if G2frame.GPXtree.GetCount():
     7499            item, cookie = G2frame.GPXtree.GetFirstChild(G2frame.root)
    75047500            while item:
    7505                 name = G2frame.PatternTree.GetItemText(item)
     7501                name = G2frame.GPXtree.GetItemText(item)
    75067502                if name.startswith('HKLF ') and name not in HKLFlist:
    75077503                    HKLFlist.append(name)
    7508                 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)
     7504                item, cookie = G2frame.GPXtree.GetNextChild(G2frame.root, cookie)
    75097505        newName = G2obj.MakeUniqueLabel(newName,HKLFlist)
    75107506        newData = copy.deepcopy(data)
    75117507        newData[0]['ranId'] = ran.randint(0,sys.maxint)
    75127508        newData[1]['RefList'] = mergeRef
    7513         Id = G2frame.PatternTree.AppendItem(parent=G2frame.root,text=newName)
    7514         G2frame.PatternTree.SetItemPyData(
    7515             G2frame.PatternTree.AppendItem(Id,text='Comments'),Comments)
    7516         G2frame.PatternTree.SetItemPyData(Id,newData)
    7517         G2frame.PatternTree.SetItemPyData(
    7518             G2frame.PatternTree.AppendItem(Id,text='Instrument Parameters'),Inst)
    7519         G2frame.PatternTree.SetItemPyData(
    7520             G2frame.PatternTree.AppendItem(Id,text='Reflection List'),{})  #dummy entry for GUI use
     7509        Id = G2frame.GPXtree.AppendItem(parent=G2frame.root,text=newName)
     7510        G2frame.GPXtree.SetItemPyData(
     7511            G2frame.GPXtree.AppendItem(Id,text='Comments'),Comments)
     7512        G2frame.GPXtree.SetItemPyData(Id,newData)
     7513        G2frame.GPXtree.SetItemPyData(
     7514            G2frame.GPXtree.AppendItem(Id,text='Instrument Parameters'),Inst)
     7515        G2frame.GPXtree.SetItemPyData(
     7516            G2frame.GPXtree.AppendItem(Id,text='Reflection List'),{})  #dummy entry for GUI use
    75217517                   
    75227518    def OnErrorAnalysis(event):
     
    75387534        G2pdG.CopySelectedHistItems(G2frame)
    75397535           
    7540     data = G2frame.PatternTree.GetItemPyData(item)
    7541     G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+G2frame.PatternTree.GetItemText(item))
     7536    data = G2frame.GPXtree.GetItemPyData(item)
     7537    G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+G2frame.GPXtree.GetItemText(item))
    75427538#patches
    75437539    if not data:
     
    75547550            RefData['FF'].append(ref[14])
    75557551        data[1] = RefData
    7556         G2frame.PatternTree.SetItemPyData(item,data)
     7552        G2frame.GPXtree.SetItemPyData(item,data)
    75577553#end patches
    75587554    if kind in ['PWDR','SASD','REFD']:
     
    76307626    G2frame.SetDataSize()
    76317627   
    7632     G2frame.PatternTree.SetItemPyData(item,data)
     7628    G2frame.GPXtree.SetItemPyData(item,data)
    76337629    G2frame.PatternId = item
    76347630    if kind in ['PWDR','SASD','REFD',]:
     
    76387634        G2plt.PlotPatterns(G2frame,plotType=kind,newPlot=NewPlot)
    76397635    elif kind == 'HKLF':
    7640         Name = G2frame.PatternTree.GetItemText(item)
     7636        Name = G2frame.GPXtree.GetItemText(item)
    76417637        phaseName = G2pdG.IsHistogramInAnyPhase(G2frame,Name)
    76427638        if phaseName:
    7643             pId = GetPatternTreeItemId(G2frame,G2frame.root,'Phases')
    7644             phaseId =  GetPatternTreeItemId(G2frame,pId,phaseName)
    7645             General = G2frame.PatternTree.GetItemPyData(phaseId)['General']
     7639            pId = GetGPXtreeItemId(G2frame,G2frame.root,'Phases')
     7640            phaseId =  GetGPXtreeItemId(G2frame,pId,phaseName)
     7641            General = G2frame.GPXtree.GetItemPyData(phaseId)['General']
    76467642            Super = General.get('Super',0)
    76477643            SuperVec = General.get('SuperVec',[])
     
    76717667################################################################################           
    76727668       
    7673 def GetPatternTreeDataNames(G2frame,dataTypes):
     7669def GetGPXtreeDataNames(G2frame,dataTypes):
    76747670    '''Finds all items in tree that match a 4 character prefix
    76757671   
     
    76807676    '''
    76817677    names = []
    7682     item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root)       
     7678    item, cookie = G2frame.GPXtree.GetFirstChild(G2frame.root)       
    76837679    while item:
    7684         name = G2frame.PatternTree.GetItemText(item)
     7680        name = G2frame.GPXtree.GetItemText(item)
    76857681        if name[:4] in dataTypes:
    76867682            names.append(name)
    7687         item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)
     7683        item, cookie = G2frame.GPXtree.GetNextChild(G2frame.root, cookie)
    76887684    return names
    76897685                         
    7690 def GetPatternTreeItemId(G2frame, parentId, itemText):
     7686def GetGPXtreeItemId(G2frame, parentId, itemText):
    76917687    '''Find the tree item that matches the text in itemText starting with parentId
    76927688
     
    76957691    :param str itemText: text for tree item
    76967692    '''
    7697     item, cookie = G2frame.PatternTree.GetFirstChild(parentId)
     7693    item, cookie = G2frame.GPXtree.GetFirstChild(parentId)
    76987694    while item:
    7699         if G2frame.PatternTree.GetItemText(item) == itemText:
     7695        if G2frame.GPXtree.GetItemText(item) == itemText:
    77007696            return item
    7701         item, cookie = G2frame.PatternTree.GetNextChild(parentId, cookie)
     7697        item, cookie = G2frame.GPXtree.GetNextChild(parentId, cookie)
    77027698    return 0               
    77037699
    77047700def SelectDataTreeItem(G2frame,item,oldFocus=None):
    77057701    '''Called from :meth:`GSASII.GSASII.OnDataTreeSelChanged` when a item is selected on the tree.
    7706     Also called from GSASII.OnPatternTreeEndDrag, OnAddPhase -- might be better to select item, triggering
     7702    Also called from GSASII.OnGPXtreeEndDrag, OnAddPhase -- might be better to select item, triggering
    77077703    the the bind to SelectDataTreeItem
    77087704
     
    77277723                data = [G2frame.dataDisplay.GetValue()]
    77287724                G2frame.dataDisplay.Clear()
    7729                 Id = GetPatternTreeItemId(G2frame,G2frame.root, 'Comments')
    7730                 if Id: G2frame.PatternTree.SetItemPyData(Id,data)
     7725                Id = GetGPXtreeItemId(G2frame,G2frame.root, 'Comments')
     7726                if Id: G2frame.GPXtree.SetItemPyData(Id,data)
    77317727            except:     #clumsy but avoids dead window problem when opening another project
    77327728                pass
     
    77357731                data = [G2frame.dataDisplay.GetValue()]
    77367732                G2frame.dataDisplay.Clear()
    7737                 Id = GetPatternTreeItemId(G2frame,G2frame.root, 'Notebook')
    7738                 if Id: G2frame.PatternTree.SetItemPyData(Id,data)
     7733                Id = GetGPXtreeItemId(G2frame,G2frame.root, 'Notebook')
     7734                if Id: G2frame.GPXtree.SetItemPyData(Id,data)
    77397735            except:     #clumsy but avoids dead window problem when opening another project
    77407736                pass
     
    77557751    else:
    77567752        try:    #don't know why here when opening new project  from inside phase data!
    7757             parentID = G2frame.PatternTree.GetItemParent(item)
     7753            parentID = G2frame.GPXtree.GetItemParent(item)
    77587754            # save name of calling tree item for help. N.B. may want to override this later
    7759             prfx = G2frame.PatternTree.GetItemText(item).split()[0]
    7760             prfx1 = G2frame.PatternTree.GetItemText(parentID).split()[0]
     7755            prfx = G2frame.GPXtree.GetItemText(item).split()[0]
     7756            prfx1 = G2frame.GPXtree.GetItemText(parentID).split()[0]
    77617757            if prfx in ('IMG','PKS','PWDR','SASD','HKLF','PDF','refd',):
    77627758                G2frame.dataFrame.helpKey = prfx
    77637759            elif prfx1 in ('IMG','PKS','PWDR','SASD','HKLF','PDF','REFD',):
    7764                 suffix = G2frame.PatternTree.GetItemText(item)
     7760                suffix = G2frame.GPXtree.GetItemText(item)
    77657761                suffix1 = suffix.split()[0]
    77667762                if '(Q)' in suffix1 or '(R)' in suffix1: suffix = suffix1
    77677763                G2frame.dataFrame.helpKey = prfx1 + '_' + suffix
    77687764            else:
    7769                 G2frame.dataFrame.helpKey = G2frame.PatternTree.GetItemText(item) # save name of calling tree item for help
     7765                G2frame.dataFrame.helpKey = G2frame.GPXtree.GetItemText(item) # save name of calling tree item for help
    77707766        except IndexError:
    77717767            print 'bug: why here?'
    77727768            return
    7773     if G2frame.PatternTree.GetItemParent(item) == G2frame.root:
     7769    if G2frame.GPXtree.GetItemParent(item) == G2frame.root:
    77747770        G2frame.PatternId = 0
    7775         if G2frame.PatternTree.GetItemText(item) == 'Notebook':
     7771        if G2frame.GPXtree.GetItemText(item) == 'Notebook':
    77767772            SetDataMenuBar(G2frame,G2frame.dataWindow.DataNotebookMenu)
    7777             data = G2frame.PatternTree.GetItemPyData(item)
     7773            data = G2frame.GPXtree.GetItemPyData(item)
    77787774            UpdateNotebook(G2frame,data)
    7779         elif G2frame.PatternTree.GetItemText(item) == 'Controls':
    7780             data = G2frame.PatternTree.GetItemPyData(item)
     7775        elif G2frame.GPXtree.GetItemText(item) == 'Controls':
     7776            data = G2frame.GPXtree.GetItemPyData(item)
    77817777            if not data:           #fill in defaults
    77827778                data = copy.copy(G2obj.DefaultControls)    #least squares controls
    7783                 G2frame.PatternTree.SetItemPyData(item,data)                             
     7779                G2frame.GPXtree.SetItemPyData(item,data)                             
    77847780            for i in G2frame.Refine: i.Enable(True)
    77857781            G2frame.EnableSeqRefineMenu()
    77867782            UpdateControls(G2frame,data)
    7787         elif G2frame.PatternTree.GetItemText(item).startswith('Sequential '):
     7783        elif G2frame.GPXtree.GetItemText(item).startswith('Sequential '):
    77887784            G2frame.dataFrame.helpKey = 'Sequential'  # for now all sequential refinements are documented in one place
    7789             data = G2frame.PatternTree.GetItemPyData(item)
     7785            data = G2frame.GPXtree.GetItemPyData(item)
    77907786            UpdateSeqResults(G2frame,data)
    7791         elif G2frame.PatternTree.GetItemText(item) == 'Covariance':
    7792             data = G2frame.PatternTree.GetItemPyData(item)
     7787        elif G2frame.GPXtree.GetItemText(item) == 'Covariance':
     7788            data = G2frame.GPXtree.GetItemPyData(item)
    77937789            text = ''
    77947790            if 'Rvals' in data:
     
    78047800                value='See plot window for covariance display'+text,style=wx.TE_MULTILINE)
    78057801            G2plt.PlotCovariance(G2frame,data)
    7806         elif G2frame.PatternTree.GetItemText(item) == 'Constraints':
    7807             data = G2frame.PatternTree.GetItemPyData(item)
     7802        elif G2frame.GPXtree.GetItemText(item) == 'Constraints':
     7803            data = G2frame.GPXtree.GetItemPyData(item)
    78087804            G2cnstG.UpdateConstraints(G2frame,data)
    7809         elif G2frame.PatternTree.GetItemText(item) == 'Rigid bodies':
    7810             data = G2frame.PatternTree.GetItemPyData(item)
     7805        elif G2frame.GPXtree.GetItemText(item) == 'Rigid bodies':
     7806            data = G2frame.GPXtree.GetItemPyData(item)
    78117807            G2cnstG.UpdateRigidBodies(G2frame,data)
    7812         elif G2frame.PatternTree.GetItemText(item) == 'Restraints':
    7813             data = G2frame.PatternTree.GetItemPyData(item)
     7808        elif G2frame.GPXtree.GetItemText(item) == 'Restraints':
     7809            data = G2frame.GPXtree.GetItemPyData(item)
    78147810            Phases = G2frame.GetPhaseData()
    78157811            phaseName = ''
     
    78177813                phaseName = Phases.keys()[0]
    78187814            G2restG.UpdateRestraints(G2frame,data,Phases,phaseName)
    7819         elif G2frame.PatternTree.GetItemText(item).startswith('IMG '):
     7815        elif G2frame.GPXtree.GetItemText(item).startswith('IMG '):
    78207816            G2frame.Image = item
    78217817            G2frame.SetTitle('Image Data')
    7822             data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(
     7818            data = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(
    78237819                G2frame,item,'Image Controls'))
    78247820            G2imG.UpdateImageData(G2frame,data)
    78257821            G2plt.PlotImage(G2frame,newPlot=True)
    7826         elif G2frame.PatternTree.GetItemText(item).startswith('PKS '):
     7822        elif G2frame.GPXtree.GetItemText(item).startswith('PKS '):
    78277823            G2plt.PlotPowderLines(G2frame)
    7828         elif G2frame.PatternTree.GetItemText(item).startswith('PWDR '):
     7824        elif G2frame.GPXtree.GetItemText(item).startswith('PWDR '):
    78297825            G2frame.PatternId = item
    78307826            #for i in G2frame.ExportPattern: i.Enable(True)
    78317827            if G2frame.EnablePlot:
    78327828                UpdatePWHKPlot(G2frame,'PWDR',item)
    7833         elif G2frame.PatternTree.GetItemText(item).startswith('SASD '):
     7829        elif G2frame.GPXtree.GetItemText(item).startswith('SASD '):
    78347830            G2frame.PatternId = item
    78357831            #for i in G2frame.ExportPattern: i.Enable(True)
    78367832            if G2frame.EnablePlot:
    78377833                UpdatePWHKPlot(G2frame,'SASD',item)
    7838         elif G2frame.PatternTree.GetItemText(item).startswith('REFD '):
     7834        elif G2frame.GPXtree.GetItemText(item).startswith('REFD '):
    78397835            G2frame.PatternId = item
    78407836            #for i in G2frame.ExportPattern: i.Enable(True)
    78417837            if G2frame.EnablePlot:
    78427838                UpdatePWHKPlot(G2frame,'REFD',item)
    7843         elif G2frame.PatternTree.GetItemText(item).startswith('HKLF '):
     7839        elif G2frame.GPXtree.GetItemText(item).startswith('HKLF '):
    78447840            G2frame.Sngl = True
    78457841            UpdatePWHKPlot(G2frame,'HKLF',item)
    7846         elif G2frame.PatternTree.GetItemText(item).startswith('PDF '):
     7842        elif G2frame.GPXtree.GetItemText(item).startswith('PDF '):
    78477843            G2frame.PatternId = item
    78487844            for i in G2frame.ExportPDF: i.Enable(True) # this should be done on .gpx load; is done on OnMakePDFs (GSASII.py)
    7849             data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,item,'PDF Controls'))
     7845            data = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,item,'PDF Controls'))
    78507846            G2pdG.UpdatePDFGrid(G2frame,data)
    78517847            if len(data['G(R)']):
    78527848                G2plt.PlotISFG(G2frame,data,plotType='G(R)')
    7853         elif G2frame.PatternTree.GetItemText(item) == 'Phases':
     7849        elif G2frame.GPXtree.GetItemText(item) == 'Phases':
    78547850            wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(),
    78557851                value='Select one phase to see its parameters')           
    7856     elif G2frame.PatternTree.GetItemText(item) == 'PDF Peaks':
    7857         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7858         peaks = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.PatternId,'PDF Peaks'))
    7859         data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.PatternId,'PDF Controls'))
     7852    elif G2frame.GPXtree.GetItemText(item) == 'PDF Peaks':
     7853        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7854        peaks = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,G2frame.PatternId,'PDF Peaks'))
     7855        data = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,G2frame.PatternId,'PDF Controls'))
    78607856        G2pdG.UpdatePDFPeaks(G2frame,peaks,data)
    78617857        if len(data['G(R)']):
    78627858            G2plt.PlotISFG(G2frame,data,plotType='G(R)',newPlot=True,peaks=peaks)           
    7863     elif G2frame.PatternTree.GetItemText(item) == 'PDF Controls':
     7859    elif G2frame.GPXtree.GetItemText(item) == 'PDF Controls':
    78647860        for i in G2frame.ExportPDF: i.Enable(True) # this should be done on .gpx load; is done on OnMakePDFs (GSASII.py)
    7865         G2frame.dataFrame.helpKey = G2frame.PatternTree.GetItemText(item) # special treatment to avoid PDF_PDF Controls
    7866         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7867         data = G2frame.PatternTree.GetItemPyData(item)
     7861        G2frame.dataFrame.helpKey = G2frame.GPXtree.GetItemText(item) # special treatment to avoid PDF_PDF Controls
     7862        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7863        data = G2frame.GPXtree.GetItemPyData(item)
    78687864        G2pdG.UpdatePDFGrid(G2frame,data)
    78697865        if len(data['G(R)']):
     
    78727868            if 'F(Q)' in data:  G2plt.PlotISFG(G2frame,data,plotType='F(Q)')
    78737869            G2plt.PlotISFG(G2frame,data,plotType='G(R)')
    7874     elif G2frame.PatternTree.GetItemText(parentID) == 'Phases':
    7875         data = G2frame.PatternTree.GetItemPyData(item)
     7870    elif G2frame.GPXtree.GetItemText(parentID) == 'Phases':
     7871        data = G2frame.GPXtree.GetItemPyData(item)
    78767872        G2phG.UpdatePhaseData(G2frame,item,data,oldPage)
    7877     elif G2frame.PatternTree.GetItemText(item) == 'Comments':
     7873    elif G2frame.GPXtree.GetItemText(item) == 'Comments':
    78787874        SetDataMenuBar(G2frame,G2frame.dataWindow.DataCommentsMenu)
    7879         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7880         data = G2frame.PatternTree.GetItemPyData(item)
     7875        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7876        data = G2frame.GPXtree.GetItemPyData(item)
    78817877        UpdateComments(G2frame,data)
    7882     elif G2frame.PatternTree.GetItemText(item) == 'Image Controls':
     7878    elif G2frame.GPXtree.GetItemText(item) == 'Image Controls':
    78837879        G2frame.SetTitle('Image Controls')
    7884         G2frame.Image = G2frame.PatternTree.GetItemParent(item)
    7885         masks = G2frame.PatternTree.GetItemPyData(
    7886             GetPatternTreeItemId(G2frame,G2frame.Image, 'Masks'))
    7887         data = G2frame.PatternTree.GetItemPyData(item)
     7880        G2frame.Image = G2frame.GPXtree.GetItemParent(item)
     7881        masks = G2frame.GPXtree.GetItemPyData(
     7882            GetGPXtreeItemId(G2frame,G2frame.Image, 'Masks'))
     7883        data = G2frame.GPXtree.GetItemPyData(item)
    78887884        G2frame.ImageZ = G2imG.GetImageZ(G2frame,data)
    78897885        G2imG.UpdateImageControls(G2frame,data,masks)
    78907886        G2plt.PlotImage(G2frame,newPlot=False)
    7891     elif G2frame.PatternTree.GetItemText(item) == 'Masks':
     7887    elif G2frame.GPXtree.GetItemText(item) == 'Masks':
    78927888        G2frame.SetTitle('Masks')
    7893         G2frame.Image = G2frame.PatternTree.GetItemParent(item)
    7894         masks = G2frame.PatternTree.GetItemPyData(item)
    7895         data = G2frame.PatternTree.GetItemPyData(
    7896             GetPatternTreeItemId(G2frame,G2frame.Image, 'Image Controls'))
     7889        G2frame.Image = G2frame.GPXtree.GetItemParent(item)
     7890        masks = G2frame.GPXtree.GetItemPyData(item)
     7891        data = G2frame.GPXtree.GetItemPyData(
     7892            GetGPXtreeItemId(G2frame,G2frame.Image, 'Image Controls'))
    78977893        G2frame.ImageZ = G2imG.GetImageZ(G2frame,data)
    78987894        G2imG.UpdateMasks(G2frame,masks)
    78997895        G2plt.PlotImage(G2frame,newPlot=False)
    7900     elif G2frame.PatternTree.GetItemText(item) == 'Stress/Strain':
     7896    elif G2frame.GPXtree.GetItemText(item) == 'Stress/Strain':
    79017897        G2frame.SetTitle('Stress/Strain')
    7902         G2frame.Image = G2frame.PatternTree.GetItemParent(item)
    7903         data = G2frame.PatternTree.GetItemPyData(
    7904             GetPatternTreeItemId(G2frame,G2frame.Image, 'Image Controls'))
     7898        G2frame.Image = G2frame.GPXtree.GetItemParent(item)
     7899        data = G2frame.GPXtree.GetItemPyData(
     7900            GetGPXtreeItemId(G2frame,G2frame.Image, 'Image Controls'))
    79057901        G2frame.ImageZ = G2imG.GetImageZ(G2frame,data,newRange=False)
    7906         strsta = G2frame.PatternTree.GetItemPyData(item)
     7902        strsta = G2frame.GPXtree.GetItemPyData(item)
    79077903        G2plt.PlotStrain(G2frame,strsta,newPlot=True)
    79087904        G2plt.PlotImage(G2frame,newPlot=False)
    79097905        G2imG.UpdateStressStrain(G2frame,strsta)
    7910     elif G2frame.PatternTree.GetItemText(item) == 'Peak List':
    7911         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
     7906    elif G2frame.GPXtree.GetItemText(item) == 'Peak List':
     7907        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
    79127908        for i in G2frame.ExportPeakList: i.Enable(True)
    7913         data = G2frame.PatternTree.GetItemPyData(item)
     7909        data = G2frame.GPXtree.GetItemPyData(item)
    79147910#patch
    79157911        if 'list' in str(type(data)):
    79167912            data = {'peaks':data,'sigDict':{}}
    7917             G2frame.PatternTree.SetItemPyData(item,data)
     7913            G2frame.GPXtree.SetItemPyData(item,data)
    79187914#end patch
    79197915        G2pdG.UpdatePeakGrid(G2frame,data)
    79207916        G2plt.PlotPatterns(G2frame)
    7921     elif G2frame.PatternTree.GetItemText(item) == 'Background':
    7922         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7923         data = G2frame.PatternTree.GetItemPyData(item)
     7917    elif G2frame.GPXtree.GetItemText(item) == 'Background':
     7918        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7919        data = G2frame.GPXtree.GetItemPyData(item)
    79247920        G2pdG.UpdateBackground(G2frame,data)
    79257921        G2plt.PlotPatterns(G2frame)
    7926     elif G2frame.PatternTree.GetItemText(item) == 'Limits':
    7927         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7928         datatype = G2frame.PatternTree.GetItemText(G2frame.PatternId)[:4]
    7929         data = G2frame.PatternTree.GetItemPyData(item)
     7922    elif G2frame.GPXtree.GetItemText(item) == 'Limits':
     7923        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7924        datatype = G2frame.GPXtree.GetItemText(G2frame.PatternId)[:4]
     7925        data = G2frame.GPXtree.GetItemPyData(item)
    79307926        G2pdG.UpdateLimitsGrid(G2frame,data,datatype)
    79317927        G2plt.PlotPatterns(G2frame,plotType=datatype)
    7932     elif G2frame.PatternTree.GetItemText(item) == 'Instrument Parameters':
    7933         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7934         data = G2frame.PatternTree.GetItemPyData(item)[0]
     7928    elif G2frame.GPXtree.GetItemText(item) == 'Instrument Parameters':
     7929        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7930        data = G2frame.GPXtree.GetItemPyData(item)[0]
    79357931        G2pdG.UpdateInstrumentGrid(G2frame,data)
    79367932        if 'P' in data['Type'][0]:          #powder data only
    79377933            G2plt.PlotPeakWidths(G2frame)
    7938     elif G2frame.PatternTree.GetItemText(item) == 'Models':
    7939         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7940         data = G2frame.PatternTree.GetItemPyData(item)
     7934    elif G2frame.GPXtree.GetItemText(item) == 'Models':
     7935        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7936        data = G2frame.GPXtree.GetItemPyData(item)
    79417937        if prfx1 == 'SASD':
    79427938            G2pdG.UpdateModelsGrid(G2frame,data)
     
    79467942        if prfx1 == 'SASD' and len(data['Size']['Distribution']):
    79477943            G2plt.PlotSASDSizeDist(G2frame)
    7948     elif G2frame.PatternTree.GetItemText(item) == 'Substances':
    7949         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7950         data = G2frame.PatternTree.GetItemPyData(item)
     7944    elif G2frame.GPXtree.GetItemText(item) == 'Substances':
     7945        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7946        data = G2frame.GPXtree.GetItemPyData(item)
    79517947        G2pdG.UpdateSubstanceGrid(G2frame,data)
    7952     elif G2frame.PatternTree.GetItemText(item) == 'Sample Parameters':
    7953         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7954         data = G2frame.PatternTree.GetItemPyData(item)
    7955         datatype = G2frame.PatternTree.GetItemPyData(G2frame.PatternId)[2][:4]
     7948    elif G2frame.GPXtree.GetItemText(item) == 'Sample Parameters':
     7949        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7950        data = G2frame.GPXtree.GetItemPyData(item)
     7951        datatype = G2frame.GPXtree.GetItemPyData(G2frame.PatternId)[2][:4]
    79567952
    79577953        if 'Temperature' not in data:           #temp fix for old gpx files
     
    79607956                    'FreePrm1':0.,'FreePrm2':0.,'FreePrm3':0.,
    79617957                    'Gonio. radius':200.0}
    7962             G2frame.PatternTree.SetItemPyData(item,data)
     7958            G2frame.GPXtree.SetItemPyData(item,data)
    79637959   
    79647960        G2pdG.UpdateSampleGrid(G2frame,data)
    79657961        G2plt.PlotPatterns(G2frame,plotType=datatype)
    7966     elif G2frame.PatternTree.GetItemText(item) == 'Index Peak List':
    7967         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
     7962    elif G2frame.GPXtree.GetItemText(item) == 'Index Peak List':
     7963        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
    79687964        for i in G2frame.ExportPeakList: i.Enable(True)
    7969         data = G2frame.PatternTree.GetItemPyData(item)
     7965        data = G2frame.GPXtree.GetItemPyData(item)
    79707966#patch
    79717967        if len(data) != 2:
    79727968            data = [data,[]]
    7973             G2frame.PatternTree.SetItemPyData(item,data)
     7969            G2frame.GPXtree.SetItemPyData(item,data)
    79747970#end patch
    79757971        G2pdG.UpdateIndexPeaksGrid(G2frame,data)
    7976         if 'PKS' in G2frame.PatternTree.GetItemText(G2frame.PatternId):
     7972        if 'PKS' in G2frame.GPXtree.GetItemText(G2frame.PatternId):
    79777973            G2plt.PlotPowderLines(G2frame)
    79787974        else:
    79797975            G2plt.PlotPatterns(G2frame)
    7980     elif G2frame.PatternTree.GetItemText(item) == 'Unit Cells List':
    7981         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    7982         data = G2frame.PatternTree.GetItemPyData(item)
     7976    elif G2frame.GPXtree.GetItemText(item) == 'Unit Cells List':
     7977        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7978        data = G2frame.GPXtree.GetItemPyData(item)
    79837979        if not data:
    79847980            data.append([0,0.0,4,25.0,0,'P1',1,1,1,90,90,90]) #zero error flag, zero value, max Nc/No, start volume
     
    79877983            data.append([])                                 #empty dmin
    79887984            data.append({})                                 #empty superlattice stuff
    7989             G2frame.PatternTree.SetItemPyData(item,data)                             
     7985            G2frame.GPXtree.SetItemPyData(item,data)                             
    79907986#patch
    79917987        if len(data) < 5:
    79927988            data.append({'Use':False,'ModVec':[0,0,0.1],'maxH':1,'ssSymb':''})                                 #empty superlattice stuff
    7993             G2frame.PatternTree.SetItemPyData(item,data) 
     7989            G2frame.GPXtree.SetItemPyData(item,data) 
    79947990#end patch
    79957991        G2pdG.UpdateUnitCellsGrid(G2frame,data)
    7996         if 'PKS' in G2frame.PatternTree.GetItemText(G2frame.PatternId):
     7992        if 'PKS' in G2frame.GPXtree.GetItemText(G2frame.PatternId):
    79977993            G2plt.PlotPowderLines(G2frame)
    79987994        else:
    79997995            G2plt.PlotPatterns(G2frame)
    8000     elif G2frame.PatternTree.GetItemText(item) == 'Reflection Lists':   #powder reflections
    8001         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    8002         data = G2frame.PatternTree.GetItemPyData(item)
     7996    elif G2frame.GPXtree.GetItemText(item) == 'Reflection Lists':   #powder reflections
     7997        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     7998        data = G2frame.GPXtree.GetItemPyData(item)
    80037999        G2frame.RefList = ''
    80048000        if len(data):
     
    80068002        G2pdG.UpdateReflectionGrid(G2frame,data)
    80078003        G2plt.PlotPatterns(G2frame)
    8008     elif G2frame.PatternTree.GetItemText(item) == 'Reflection List':    #HKLF reflections
    8009         G2frame.PatternId = G2frame.PatternTree.GetItemParent(item)
    8010         name = G2frame.PatternTree.GetItemText(G2frame.PatternId)
    8011         data = G2frame.PatternTree.GetItemPyData(G2frame.PatternId)
     8004    elif G2frame.GPXtree.GetItemText(item) == 'Reflection List':    #HKLF reflections
     8005        G2frame.PatternId = G2frame.GPXtree.GetItemParent(item)
     8006        name = G2frame.GPXtree.GetItemText(G2frame.PatternId)
     8007        data = G2frame.GPXtree.GetItemPyData(G2frame.PatternId)
    80128008        G2pdG.UpdateReflectionGrid(G2frame,data,HKLF=True,Name=name)
    80138009
     
    80298025    else:
    80308026        G2frame.SetMenuBar(menu)
    8031 
    8032 def HowDidIgetHere():
    8033     '''Show a traceback with calls that brought us to the current location.
    8034     Used for debugging.
    8035     '''
    8036     import traceback
    8037     print 70*'*'   
    8038     for i in traceback.format_list(traceback.extract_stack()[:-1]): print(i.strip().rstrip())
    8039     print 70*'*'   
    8040        
Note: See TracChangeset for help on using the changeset viewer.