Changeset 2905 for branch/2frame/GSASIIdataGUI.py
- Timestamp:
- Jul 4, 2017 12:11:29 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branch/2frame/GSASIIdataGUI.py
r2900 r2905 744 744 contents of the Controls 'Seq Data' item (if present) 745 745 ''' 746 controls = self. PatternTree.GetItemPyData(GetPatternTreeItemId(self,self.root, 'Controls'))746 controls = self.GPXtree.GetItemPyData(GetGPXtreeItemId(self,self.root, 'Controls')) 747 747 if controls.get('Seq Data'): 748 748 for i in self.SeqRefine: i.Enable(True) … … 1070 1070 newPhaseList.append(PhaseName) 1071 1071 print(u'Read phase {} from file {}'.format(PhaseName,self.lastimport)) 1072 if not Get PatternTreeItemId(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') 1074 1074 else: 1075 sub = Get PatternTreeItemId(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 seen1079 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) 1081 1081 wx.CallAfter(SelectDataTreeItem,self,psub) #bring up new phase General tab 1082 1082 1083 1083 if rd.Constraints: 1084 sub = Get PatternTreeItemId(self,self.root,'Constraints') # was created in CheckNotebook if needed1085 Constraints = self. PatternTree.GetItemPyData(sub)1084 sub = GetGPXtreeItemId(self,self.root,'Constraints') # was created in CheckNotebook if needed 1085 Constraints = self.GPXtree.GetItemPyData(sub) 1086 1086 # TODO: make sure that NEWVAR names are unique here? 1087 1087 for i in rd.Constraints: … … 1096 1096 PWDRlist = [] 1097 1097 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) 1100 1100 while item: 1101 name = self. PatternTree.GetItemText(item)1101 name = self.GPXtree.GetItemText(item) 1102 1102 if name.startswith('PWDR ') and name not in PWDRlist: 1103 1103 PWDRlist.append(name) 1104 1104 if name.startswith('HKLF ') and name not in HKLFlist: 1105 1105 HKLFlist.append(name) 1106 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)1106 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 1107 1107 TextList = PWDRlist + HKLFlist 1108 1108 if not TextList: … … 1131 1131 notOK = False 1132 1132 # connect new phases to histograms 1133 sub = Get PatternTreeItemId(self,self.root,'Phases')1133 sub = GetGPXtreeItemId(self,self.root,'Phases') 1134 1134 if not sub: 1135 1135 raise Exception('ERROR -- why are there no phases here?') 1136 1136 wx.BeginBusyCursor() 1137 item, cookie = self. PatternTree.GetFirstChild(sub)1137 item, cookie = self.GPXtree.GetFirstChild(sub) 1138 1138 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) 1142 1142 if phaseName not in newPhaseList: continue 1143 1143 generalData = data['General'] … … 1154 1154 if histoName in HKLFlist: 1155 1155 #redo UpdateHKLFdata(histoName) here: 1156 Id = Get PatternTreeItemId(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) 1158 1158 G,g = G2lat.cell2Gmat(generalData['Cell'][1:7]) 1159 1159 Super = reflData.get('Super',0) … … 1176 1176 UseList[histoName] = SetDefaultDData(reflData['Type'],histoName) 1177 1177 elif histoName in PWDRlist: 1178 Id = Get PatternTreeItemId(self,self.root,histoName)1179 refList = self. PatternTree.GetItemPyData(1180 Get PatternTreeItemId(self,Id,'Reflection Lists'))1178 Id = GetGPXtreeItemId(self,self.root,histoName) 1179 refList = self.GPXtree.GetItemPyData( 1180 GetGPXtreeItemId(self,Id,'Reflection Lists')) 1181 1181 refList[generalData['Name']] = {} 1182 1182 UseList[histoName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij) … … 1219 1219 'image',multiple=True,Preview=False,load2Tree=True) 1220 1220 if rdlist: 1221 self. PatternTree.SelectItem(GetPatternTreeItemId(self,self.Image,'Image Controls')) #show last image to have beeen read1221 self.GPXtree.SelectItem(GetGPXtreeItemId(self,self.Image,'Image Controls')) #show last image to have beeen read 1222 1222 1223 1223 def _Add_ImportMenu_Sfact(self,parent): … … 1248 1248 # get a list of existing histograms 1249 1249 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) 1252 1252 while item: 1253 name = self. PatternTree.GetItemText(item)1253 name = self.GPXtree.GetItemText(item) 1254 1254 if name.startswith('HKLF ') and name not in HKLFlist: 1255 1255 HKLFlist.append(name) 1256 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)1256 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 1257 1257 # look up which format was requested 1258 1258 reqrdr = self.ImportMenuId.get(event.GetId()) … … 1280 1280 HistName = G2obj.MakeUniqueLabel(HistName,HKLFlist) 1281 1281 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) 1283 1283 if not Bank['RefDict'].get('FF'): 1284 1284 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 use1285 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 1290 1290 newHistList.append(HistName) 1291 1291 else: … … 1295 1295 if not rd.RefDict.get('FF'): 1296 1296 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 use1297 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 1303 1303 newHistList.append(HistName) 1304 1304 1305 self. PatternTree.SelectItem(Id)1306 self. PatternTree.Expand(Id)1305 self.GPXtree.SelectItem(Id) 1306 self.GPXtree.Expand(Id) 1307 1307 self.Sngl = True 1308 1308 … … 1318 1318 if not result: return 1319 1319 # connect new phases to histograms 1320 sub = Get PatternTreeItemId(self,self.root,'Phases')1320 sub = GetGPXtreeItemId(self,self.root,'Phases') 1321 1321 if not sub: 1322 1322 raise Exception('ERROR -- why are there no phases here?') 1323 1323 wx.BeginBusyCursor() 1324 item, cookie = self. PatternTree.GetFirstChild(sub)1324 item, cookie = self.GPXtree.GetFirstChild(sub) 1325 1325 iph = -1 1326 1326 while item: # loop over (new) phases 1327 1327 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) 1330 1330 if iph not in result: continue 1331 1331 generalData = data['General'] … … 1338 1338 for histoName in newHistList: 1339 1339 #redo UpdateHKLFdata(histoName) here: 1340 Id = Get PatternTreeItemId(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) 1342 1342 UseList[histoName] = SetDefaultDData(reflData['Type'],histoName) 1343 1343 G,g = G2lat.cell2Gmat(generalData['Cell'][1:7]) … … 1884 1884 haveData = False 1885 1885 # check for phases connected to histograms 1886 sub = Get PatternTreeItemId(self,self.root,'Phases')1886 sub = GetGPXtreeItemId(self,self.root,'Phases') 1887 1887 if not sub: return 1888 item, cookie = self. PatternTree.GetFirstChild(sub)1888 item, cookie = self.GPXtree.GetFirstChild(sub) 1889 1889 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) 1892 1892 UseList = data['Histograms'] 1893 1893 if UseList: haveData = True … … 1912 1912 # get a list of existing histograms 1913 1913 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) 1916 1916 while item: 1917 name = self. PatternTree.GetItemText(item)1917 name = self.GPXtree.GetItemText(item) 1918 1918 if name.startswith('PWDR ') and name not in PWDRlist: 1919 1919 PWDRlist.append(name) 1920 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)1920 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 1921 1921 # look up which format was requested 1922 1922 reqrdr = self.ImportMenuId.get(event.GetId()) … … 1968 1968 '). Inst parameters from '+rd.instmsg) 1969 1969 # 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) 1971 1971 if 'T' in Iparm1['Type'][0]: 1972 1972 if not rd.clockWd and rd.GSAS: … … 2018 2018 del Iparm1['CorrectionCode'] 2019 2019 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'), 2023 2023 rd.comments) 2024 2024 Tmin = min(rd.powderdata[0]) … … 2027 2027 if 'NT' in Iparm1['Type'][0] and G2lat.Pos2dsp(Iparm1,Tmin) < 0.4: 2028 2028 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'), 2031 2031 rd.pwdparms.get('Limits',[(Tmin,Tmax),[Tmin1,Tmax]]) 2032 2032 ) 2033 self.PatternId = Get PatternTreeItemId(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'), 2036 2036 rd.pwdparms.get('Background', 2037 2037 [['chebyschev',True,3,1.0,0.0,0.0],{'nDebye':0,'debyeTerms':[],'nPeaks':0,'peaksList':[]}]) 2038 2038 ) 2039 self. PatternTree.SetItemPyData(2040 self. PatternTree.AppendItem(Id,text='Instrument Parameters'),2039 self.GPXtree.SetItemPyData( 2040 self.GPXtree.AppendItem(Id,text='Instrument Parameters'), 2041 2041 [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'), 2044 2044 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') 2047 2047 ,{'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'), 2050 2050 [[],[]]) 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'), 2053 2053 []) 2054 self. PatternTree.SetItemPyData(2055 self. PatternTree.AppendItem(Id,text='Reflection Lists'),2054 self.GPXtree.SetItemPyData( 2055 self.GPXtree.AppendItem(Id,text='Reflection Lists'), 2056 2056 {}) 2057 2057 # 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')) 2059 2059 Controls.update(rd.Controls) 2060 2060 newHistList.append(HistName) … … 2063 2063 self.EnablePlot = True 2064 2064 if Id: 2065 self. PatternTree.Expand(Id)2066 self. PatternTree.SelectItem(Id)2065 self.GPXtree.Expand(Id) 2066 self.GPXtree.SelectItem(Id) 2067 2067 2068 2068 if not newHistList: return # somehow, no new histograms … … 2078 2078 if not result: return 2079 2079 # connect new phases to histograms 2080 sub = Get PatternTreeItemId(self,self.root,'Phases')2080 sub = GetGPXtreeItemId(self,self.root,'Phases') 2081 2081 if not sub: 2082 2082 raise Exception('ERROR -- why are there no phases here?') 2083 item, cookie = self. PatternTree.GetFirstChild(sub)2083 item, cookie = self.GPXtree.GetFirstChild(sub) 2084 2084 iph = -1 2085 2085 while item: # loop over (new) phases 2086 2086 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) 2089 2089 if iph not in result: continue 2090 2090 generalData = data['General'] … … 2095 2095 for histoName in newHistList: 2096 2096 UseList[histoName] = SetDefaultDData('PWDR',histoName,NShkl=NShkl,NDij=NDij) 2097 Id = Get PatternTreeItemId(self,self.root,histoName)2098 refList = self. PatternTree.GetItemPyData(2099 Get PatternTreeItemId(self,Id,'Reflection Lists'))2097 Id = GetGPXtreeItemId(self,self.root,histoName) 2098 refList = self.GPXtree.GetItemPyData( 2099 GetGPXtreeItemId(self,Id,'Reflection Lists')) 2100 2100 refList[generalData['Name']] = [] 2101 2101 self.EnableRefineCommand() … … 2110 2110 # get a list of existing histograms 2111 2111 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) 2114 2114 while item: 2115 name = self. PatternTree.GetItemText(item)2115 name = self.GPXtree.GetItemText(item) 2116 2116 if name.startswith('PWDR ') and name not in PWDRlist: 2117 2117 PWDRlist.append(name) 2118 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)2118 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 2119 2119 # Initialize a base class reader 2120 2120 rd = G2obj.ImportPowderData( … … 2191 2191 HistName = 'PWDR '+HistName 2192 2192 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) 2194 2194 Ymin = np.min(rd.powderdata[1]) 2195 2195 Ymax = np.max(rd.powderdata[1]) … … 2201 2201 'qPlot':False,'dPlot':False,'sqrtPlot':False,'Yminmax':[Ymin,Ymax] 2202 2202 } 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'), 2206 2206 rd.comments) 2207 self. PatternTree.SetItemPyData(2208 self. PatternTree.AppendItem(Id,text='Limits'),2207 self.GPXtree.SetItemPyData( 2208 self.GPXtree.AppendItem(Id,text='Limits'), 2209 2209 [(Tmin,Tmax),[Tmin,Tmax]]) 2210 self.PatternId = Get PatternTreeItemId(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'), 2213 2213 [['chebyschev',True,3,1.0,0.0,0.0], 2214 2214 {'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'), 2217 2217 [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'), 2220 2220 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') 2223 2223 ,{'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'), 2226 2226 [[],[]]) 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'), 2229 2229 []) 2230 self. PatternTree.SetItemPyData(2231 self. PatternTree.AppendItem(Id,text='Reflection Lists'),2230 self.GPXtree.SetItemPyData( 2231 self.GPXtree.AppendItem(Id,text='Reflection Lists'), 2232 2232 {}) 2233 self. PatternTree.Expand(Id)2234 self. PatternTree.SelectItem(Id)2233 self.GPXtree.Expand(Id) 2234 self.GPXtree.SelectItem(Id) 2235 2235 print(u'Added simulation powder data {}'.format(HistName)+ 2236 2236 ' with parameters from {}'.format(rd.instmsg)) … … 2244 2244 if not result: return 2245 2245 # connect new phases to histograms 2246 sub = Get PatternTreeItemId(self,self.root,'Phases')2246 sub = GetGPXtreeItemId(self,self.root,'Phases') 2247 2247 if not sub: 2248 2248 raise Exception('ERROR -- why are there no phases here?') 2249 item, cookie = self. PatternTree.GetFirstChild(sub)2249 item, cookie = self.GPXtree.GetFirstChild(sub) 2250 2250 iph = -1 2251 2251 while item: # loop over (new) phases 2252 2252 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) 2255 2255 if iph not in result: continue 2256 2256 generalData = data['General'] … … 2260 2260 NDij = len(G2spc.HStrainNames(SGData)) 2261 2261 UseList[HistName] = SetDefaultDData('PWDR',HistName,NShkl=NShkl,NDij=NDij) 2262 Id = Get PatternTreeItemId(self,self.root,HistName)2263 refList = self. PatternTree.GetItemPyData(2264 Get PatternTreeItemId(self,Id,'Reflection Lists'))2262 Id = GetGPXtreeItemId(self,self.root,HistName) 2263 refList = self.GPXtree.GetItemPyData( 2264 GetGPXtreeItemId(self,Id,'Reflection Lists')) 2265 2265 refList[generalData['Name']] = [] 2266 2266 self.EnableRefineCommand() … … 2307 2307 # get a list of existing histograms 2308 2308 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) 2311 2311 while item: 2312 name = self. PatternTree.GetItemText(item)2312 name = self.GPXtree.GetItemText(item) 2313 2313 if name.startswith('SASD ') and name not in SASDlist: 2314 2314 SASDlist.append(name) 2315 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)2315 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 2316 2316 # look up which format was requested 2317 2317 reqrdr = self.ImportMenuId.get(event.GetId()) … … 2330 2330 ' from file '+self.lastimport 2331 2331 # 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) 2333 2333 Iparm1,Iparm2 = GetSASDIparm(rd) 2334 2334 # if 'T' in Iparm1['Type'][0]: … … 2361 2361 } 2362 2362 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'), 2366 2366 rd.comments) 2367 self. PatternTree.SetItemPyData(2368 self. PatternTree.AppendItem(Id,text='Limits'),2367 self.GPXtree.SetItemPyData( 2368 self.GPXtree.AppendItem(Id,text='Limits'), 2369 2369 [(Tmin,Tmax),[Tmin,Tmax]]) 2370 self.PatternId = Get PatternTreeItemId(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'), 2373 2373 [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'), 2378 2378 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()) 2381 2381 newHistList.append(HistName) 2382 2382 else: 2383 2383 self.EnablePlot = True 2384 self. PatternTree.Expand(Id)2385 self. PatternTree.SelectItem(Id)2384 self.GPXtree.Expand(Id) 2385 self.GPXtree.SelectItem(Id) 2386 2386 2387 2387 if not newHistList: return # somehow, no new histograms … … 2422 2422 # get a list of existing histograms 2423 2423 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) 2426 2426 while item: 2427 name = self. PatternTree.GetItemText(item)2427 name = self.GPXtree.GetItemText(item) 2428 2428 if name.startswith('REFD ') and name not in REFDlist: 2429 2429 REFDlist.append(name) 2430 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)2430 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 2431 2431 # look up which format was requested 2432 2432 reqrdr = self.ImportMenuId.get(event.GetId()) … … 2445 2445 ' from file '+self.lastimport 2446 2446 # 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) 2448 2448 Iparm1,Iparm2 = GetREFDIparm(rd) 2449 2449 # if 'T' in Iparm1['Type'][0]: … … 2478 2478 } 2479 2479 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'), 2483 2483 rd.comments) 2484 self. PatternTree.SetItemPyData(2485 self. PatternTree.AppendItem(Id,text='Limits'),2484 self.GPXtree.SetItemPyData( 2485 self.GPXtree.AppendItem(Id,text='Limits'), 2486 2486 [(Tmin,Tmax),[Tmin,Tmax]]) 2487 self.PatternId = Get PatternTreeItemId(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'), 2490 2490 [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'), 2495 2495 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()) 2498 2498 newHistList.append(HistName) 2499 2499 else: 2500 2500 self.EnablePlot = True 2501 self. PatternTree.Expand(Id)2502 self. PatternTree.SelectItem(Id)2501 self.GPXtree.Expand(Id) 2502 self.GPXtree.SelectItem(Id) 2503 2503 2504 2504 if not newHistList: return # somehow, no new histograms … … 2533 2533 # get a list of existing histograms 2534 2534 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) 2537 2537 while item: 2538 name = self. PatternTree.GetItemText(item)2538 name = self.GPXtree.GetItemText(item) 2539 2539 if name.startswith('PDF ') and name not in PDFlist: 2540 2540 PDFlist.append(name) 2541 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)2541 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 2542 2542 # look up which format was requested 2543 2543 reqrdr = self.ImportMenuId.get(event.GetId()) … … 2556 2556 ' from file '+self.lastimport 2557 2557 # 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) 2559 2559 Ymin = np.min(rd.pdfdata[1]) 2560 2560 Ymax = np.max(rd.pdfdata[1]) … … 2564 2564 'qPlot':False,'dPlot':False,'sqrtPlot':False,'Yminmax':[Ymin,Ymax] 2565 2565 } 2566 self. PatternTree.SetItemPyData(2567 self. PatternTree.AppendItem(Id,text='PDF Controls'),2566 self.GPXtree.SetItemPyData( 2567 self.GPXtree.AppendItem(Id,text='PDF Controls'), 2568 2568 {'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'), 2570 2570 {'Limits':[1.,5.],'Background':[2,[0.,-0.2*np.pi],False],'Peaks':[]}) 2571 2571 else: 2572 2572 self.EnablePlot = True 2573 self. PatternTree.Expand(Id)2574 self. PatternTree.SelectItem(Id)2573 self.GPXtree.Expand(Id) 2574 self.GPXtree.SelectItem(Id) 2575 2575 2576 2576 if not newHistList: return # somehow, no new histograms … … 2895 2895 # # make a list of used phase ranId's 2896 2896 # phaseRIdList = [] 2897 # sub = Get PatternTreeItemId(self,self.root,'Phases')2897 # sub = GetGPXtreeItemId(self,self.root,'Phases') 2898 2898 # if sub: 2899 # item, cookie = self. PatternTree.GetFirstChild(sub)2899 # item, cookie = self.GPXtree.GetFirstChild(sub) 2900 2900 # 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') 2903 2903 # if ranId: phaseRIdList.append(ranId) 2904 # item, cookie = self. PatternTree.GetNextChild(sub, cookie)2904 # item, cookie = self.GPXtree.GetNextChild(sub, cookie) 2905 2905 # if rd.Reader(filename,fp,usedRanIdList=phaseRIdList): 2906 2906 # print 'read OK' … … 2925 2925 def _init_ctrls(self, parent): 2926 2926 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') 2929 2930 clientSize = wx.ClientDisplayRect() 2930 2931 Size = self.GetSize() … … 2967 2968 treeSizer = wx.BoxSizer() 2968 2969 self.treePanel.SetSizer(treeSizer) 2969 self. PatternTree = G2G.G2TreeCtrl(id=wxID_PATTERNTREE,2970 self.GPXtree = G2G.G2TreeCtrl(id=wxID_PATTERNTREE, 2970 2971 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.On PatternTreeItemCollapsed, id=wxID_PATTERNTREE)2976 self. PatternTree.Bind(wx.EVT_TREE_ITEM_EXPANDED,2977 self.On PatternTreeItemExpanded, id=wxID_PATTERNTREE)2978 self. PatternTree.Bind(wx.EVT_TREE_DELETE_ITEM,2979 self.On PatternTreeItemDelete, id=wxID_PATTERNTREE)2980 self. PatternTree.Bind(wx.EVT_TREE_KEY_DOWN,2981 self.On PatternTreeKeyDown, id=wxID_PATTERNTREE)2982 self. PatternTree.Bind(wx.EVT_TREE_BEGIN_RDRAG,2983 self.On PatternTreeBeginRDrag, id=wxID_PATTERNTREE)2984 self. PatternTree.Bind(wx.EVT_TREE_END_DRAG,2985 self.On PatternTreeEndDrag, id=wxID_PATTERNTREE)2986 self.root = self. PatternTree.root2972 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 2987 2988 2988 2989 # def FillWindow(panel,sizer,size=1.): … … 3110 3111 3111 3112 def GetTreeItemsList(self,item): 3112 return self. PatternTree._getTreeItemsList(item)3113 return self.GPXtree._getTreeItemsList(item) 3113 3114 3114 3115 # def OnSize(self,event): 3115 # 'Called to make PatternTree fill mainPanel'3116 # 'Called to make GPXtree fill mainPanel' 3116 3117 # print 'OnSize' 3117 3118 # event.Skip() … … 3119 3120 # self.dataWindow.SetupScrolling() 3120 3121 # self.mainPanel.SetSize(wx.Size(w,h)) 3121 # self. PatternTree.SetSize(wx.Size(w,h))3122 # self.GPXtree.SetSize(wx.Size(w,h)) 3122 3123 # self.dataWindow.SetSize(self.dataPanel.GetClientSize()) 3123 3124 … … 3147 3148 # wx.CallAfter(self.oldFocus.SetFocus) 3148 3149 3149 def On PatternTreeItemCollapsed(self, event):3150 def OnGPXtreeItemCollapsed(self, event): 3150 3151 'Called when a tree item is collapsed - all children will be collapsed' 3151 self. PatternTree.CollapseAllChildren(event.GetItem())3152 3153 def On PatternTreeItemExpanded(self, event):3152 self.GPXtree.CollapseAllChildren(event.GetItem()) 3153 3154 def OnGPXtreeItemExpanded(self, event): 3154 3155 'Called when a tree item is expanded' 3155 3156 self.OnDataTreeSelChanged(event) 3156 3157 event.Skip() 3157 3158 3158 def On PatternTreeItemDelete(self, event):3159 def OnGPXtreeItemDelete(self, event): 3159 3160 'Called when a tree item is deleted -- not sure what this does' 3160 3161 self.TreeItemDelete = True 3161 3162 3162 def On PatternTreeItemActivated(self, event):3163 def OnGPXtreeItemActivated(self, event): 3163 3164 'Called when a tree item is activated' 3164 3165 event.Skip() 3165 3166 3166 def On PatternTreeBeginRDrag(self,event):3167 def OnGPXtreeBeginRDrag(self,event): 3167 3168 event.Allow() 3168 3169 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) 3173 3174 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 On PatternTreeEndDrag(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): 3179 3180 event.Allow() 3180 3181 self.EndDragId = event.GetItem() 3181 3182 try: 3182 NewParent = self. PatternTree.GetItemParent(self.EndDragId)3183 NewParent = self.GPXtree.GetItemParent(self.EndDragId) 3183 3184 except: 3184 self.EndDragId = self. PatternTree.GetLastChild(self.root)3185 self.EndDragId = self.GPXtree.GetLastChild(self.root) 3185 3186 NewParent = self.root 3186 3187 if self.ParentId != NewParent: … … 3188 3189 else: 3189 3190 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) 3192 3193 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) 3196 3197 SelectDataTreeItem(self,NewId) 3197 3198 3198 def On PatternTreeKeyDown(self,event): #doesn't exactly work right with Shift key down3199 def OnGPXtreeKeyDown(self,event): #doesn't exactly work right with Shift key down 3199 3200 'Allows stepping through the tree with the up/down arrow keys' 3200 3201 self.oldFocus = wx.Window.FindFocus() 3201 3202 keyevt = event.GetKeyEvent() 3202 3203 key = event.GetKeyCode() 3203 item = self. PatternTree.GetSelection()3204 item = self.GPXtree.GetSelection() 3204 3205 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) 3207 3208 if key == wx.WXK_UP: 3208 3209 if keyevt.GetModifiers() == wx.MOD_SHIFT and parent != self.root: 3209 3210 if type(parent) is int: return # is this the toplevel in tree? 3210 prev = self. PatternTree.GetPrevSibling(parent)3211 NewId = Get PatternTreeItemId(self,prev,name)3211 prev = self.GPXtree.GetPrevSibling(parent) 3212 NewId = GetGPXtreeItemId(self,prev,name) 3212 3213 if NewId: 3213 self. PatternTree.Collapse(parent)3214 self. PatternTree.Expand(prev)3214 self.GPXtree.Collapse(parent) 3215 self.GPXtree.Expand(prev) 3215 3216 self.oldFocus = wx.Window.FindFocus() 3216 wx.CallAfter(self. PatternTree.SelectItem,NewId)3217 wx.CallAfter(self.GPXtree.SelectItem,NewId) 3217 3218 else: 3218 wx.CallAfter(self. PatternTree.SelectItem,item)3219 wx.CallAfter(self.GPXtree.SelectItem,item) 3219 3220 elif sys.platform == "win32": 3220 self. PatternTree.GetPrevSibling(item)3221 self. PatternTree.SelectItem(item)3221 self.GPXtree.GetPrevSibling(item) 3222 self.GPXtree.SelectItem(item) 3222 3223 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) 3225 3226 elif key == wx.WXK_DOWN: 3226 3227 if keyevt.GetModifiers() == wx.MOD_SHIFT and parent != self.root: 3227 next = self. PatternTree.GetNextSibling(parent)3228 NewId = Get PatternTreeItemId(self,next,name)3228 next = self.GPXtree.GetNextSibling(parent) 3229 NewId = GetGPXtreeItemId(self,next,name) 3229 3230 if NewId: 3230 self. PatternTree.Collapse(parent)3231 self. PatternTree.Expand(next)3231 self.GPXtree.Collapse(parent) 3232 self.GPXtree.Expand(next) 3232 3233 self.oldFocus = wx.Window.FindFocus() 3233 wx.CallAfter(self. PatternTree.SelectItem,NewId)3234 wx.CallAfter(self.GPXtree.SelectItem,NewId) 3234 3235 else: 3235 wx.CallAfter(self. PatternTree.SelectItem,item)3236 wx.CallAfter(self.GPXtree.SelectItem,item) 3236 3237 elif sys.platform == "win32": 3237 self. PatternTree.GetNextSibling(item)3238 self. PatternTree.SelectItem(item)3238 self.GPXtree.GetNextSibling(item) 3239 self.GPXtree.SelectItem(item) 3239 3240 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) 3242 3243 3243 3244 def OnReadPowderPeaks(self,event): … … 3253 3254 self.powderfile = dlg.GetPath() 3254 3255 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)) 3256 3257 data = ['PKS',wave,0.0] 3257 3258 names = ['Type','Lam','Zero'] 3258 3259 codes = [0,0,0] 3259 3260 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) 3267 3268 os.chdir(dlg.GetDirectory()) # to get Mac/Linux to change directory! 3268 3269 finally: 3269 3270 dlg.Destroy() 3270 3271 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 3276 3272 def CheckNotebook(self): 3277 3273 '''Make sure the data tree has the minimally expected controls. 3278 3274 ''' 3279 if not Get PatternTreeItemId(self,self.root,'Notebook'):3280 sub = self. PatternTree.AppendItem(parent=self.root,text='Notebook')3281 self. PatternTree.SetItemPyData(sub,[''])3282 if not Get PatternTreeItemId(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 Get PatternTreeItemId(self,self.root,'Covariance'):3286 sub = self. PatternTree.AppendItem(parent=self.root,text='Covariance')3287 self. PatternTree.SetItemPyData(sub,{})3288 if not Get PatternTreeItemId(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 Get PatternTreeItemId(self,self.root,'Restraints'):3292 sub = self. PatternTree.AppendItem(parent=self.root,text='Restraints')3293 self. PatternTree.SetItemPyData(sub,{})3294 if not Get PatternTreeItemId(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':{}}, 3297 3293 'Residue':{'AtInfo':{}},'RBIds':{'Vector':[],'Residue':[]}}) 3298 3294 … … 3523 3519 Inst = None 3524 3520 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) 3527 3523 while item: 3528 name = self. PatternTree.GetItemText(item)3524 name = self.GPXtree.GetItemText(item) 3529 3525 Names.append(name) 3530 3526 if 'PWDR' in name: 3531 3527 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) 3533 3529 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) 3536 3532 if len(TextList) < 2: 3537 3533 self.ErrorDialog('Not enough data to sum','There must be more than one "PWDR" pattern') … … 3550 3546 try: 3551 3547 if dlg2.ShowModal() == wx.ID_OK: 3552 Id = Get PatternTreeItemId(self,self.root,name)3553 self. PatternTree.Delete(Id)3548 Id = GetGPXtreeItemId(self,self.root,name) 3549 self.GPXtree.Delete(Id) 3554 3550 finally: 3555 3551 dlg2.Destroy() 3556 Id = self. PatternTree.AppendItem(parent=self.root,text=outname)3552 Id = self.GPXtree.AppendItem(parent=self.root,text=outname) 3557 3553 if Id: 3558 3554 Sample = G2obj.SetDefaultSample() … … 3566 3562 'qPlot':False,'dPlot':False,'sqrtPlot':False,'Yminmax':[Ymin,Ymax] 3567 3563 } 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), 3569 3565 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], 3573 3569 {'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) 3582 3578 finally: 3583 3579 dlg.Destroy() … … 3590 3586 Names = [] 3591 3587 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) 3594 3590 while item: 3595 name = self. PatternTree.GetItemText(item)3591 name = self.GPXtree.GetItemText(item) 3596 3592 Names.append(name) 3597 3593 if 'IMG' in name: 3598 3594 TextList.append([0.0,name]) 3599 DataList.append(self. PatternTree.GetImageLoc(item)) #Size,Image,Tag3595 DataList.append(self.GPXtree.GetImageLoc(item)) #Size,Image,Tag 3600 3596 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) 3603 3599 if len(TextList) < 2: 3604 3600 self.ErrorDialog('Not enough data to sum','There must be more than one "IMG" pattern') … … 3646 3642 try: 3647 3643 if dlg2.ShowModal() == wx.ID_OK: 3648 Id = Get PatternTreeItemId(self,self.root,name)3644 Id = GetGPXtreeItemId(self,self.root,name) 3649 3645 finally: 3650 3646 dlg2.Destroy() 3651 3647 else: 3652 Id = self. PatternTree.AppendItem(parent=self.root,text=outname)3648 Id = self.GPXtree.AppendItem(parent=self.root,text=outname) 3653 3649 if Id: 3654 3650 pth = G2G.GetExportPath(self) … … 3663 3659 Imin = np.amin(newImage) 3664 3660 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) 3667 3663 del(newImage) 3668 3664 if self.imageDefault: … … 3677 3673 Data['calibrant'] = '' 3678 3674 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) 3680 3676 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'), 3683 3679 {'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 = Get PatternTreeItemId(self,self.root,outname)3680 self.GPXtree.SelectItem(Id) 3681 self.GPXtree.Expand(Id) 3682 self.PickId = GetGPXtreeItemId(self,self.root,outname) 3687 3683 self.Image = self.PickId 3688 3684 finally: … … 3691 3687 def OnAddPhase(self,event): 3692 3688 'Add a new, empty phase to the tree. Called by Data/Add Phase menu' 3693 if not Get PatternTreeItemId(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') 3695 3691 else: 3696 sub = Get PatternTreeItemId(self,self.root,'Phases')3692 sub = GetGPXtreeItemId(self,self.root,'Phases') 3697 3693 PhaseName = '' 3698 3694 dlg = wx.TextEntryDialog(None,'Enter a name for this phase','Phase Name Entry','New phase', … … 3701 3697 PhaseName = dlg.GetValue() 3702 3698 dlg.Destroy() 3703 sub = self. PatternTree.AppendItem(parent=sub,text=PhaseName)3699 sub = self.GPXtree.AppendItem(parent=sub,text=PhaseName) 3704 3700 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)) 3706 3702 SelectDataTreeItem(self,sub) #bring up new phase General tab 3707 3703 … … 3714 3710 DelList = [] 3715 3711 DelItemList = [] 3716 if Get PatternTreeItemId(self,self.root,'Phases'):3717 sub = Get PatternTreeItemId(self,self.root,'Phases')3712 if GetGPXtreeItemId(self,self.root,'Phases'): 3713 sub = GetGPXtreeItemId(self,self.root,'Phases') 3718 3714 else: 3719 3715 return 3720 3716 if sub: 3721 item, cookie = self. PatternTree.GetFirstChild(sub)3717 item, cookie = self.GPXtree.GetFirstChild(sub) 3722 3718 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) 3725 3721 dlg = wx.MultiChoiceDialog(self, 'Which phase to delete?', 'Delete phase', TextList, wx.CHOICEDLG_STYLE) 3726 3722 try: … … 3728 3724 result = dlg.GetSelections() 3729 3725 for i in result: DelList.append([i,TextList[i]]) 3730 item, cookie = self. PatternTree.GetFirstChild(sub)3726 item, cookie = self.GPXtree.GetFirstChild(sub) 3731 3727 i = 0 3732 3728 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) 3735 3731 i += 1 3736 3732 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) 3739 3735 self.G2plotNB.Delete(name) 3740 item, cookie = self. PatternTree.GetFirstChild(self.root)3736 item, cookie = self.GPXtree.GetFirstChild(self.root) 3741 3737 while item: 3742 name = self. PatternTree.GetItemText(item)3738 name = self.GPXtree.GetItemText(item) 3743 3739 if 'PWDR' in name: 3744 Id = Get PatternTreeItemId(self,item, 'Reflection Lists')3745 refList = self. PatternTree.GetItemPyData(Id)3740 Id = GetGPXtreeItemId(self,item, 'Reflection Lists') 3741 refList = self.GPXtree.GetItemPyData(Id) 3746 3742 if len(refList): 3747 3743 for i,item in DelList: 3748 3744 if item in refList: 3749 3745 del(refList[item]) 3750 # self. PatternTree.SetItemPyData(Id,refList)3746 # self.GPXtree.SetItemPyData(Id,refList) 3751 3747 elif 'HKLF' in name: 3752 data = self. PatternTree.GetItemPyData(item)3748 data = self.GPXtree.GetItemPyData(item) 3753 3749 data[0] = {} 3754 # self. PatternTree.SetItemPyData(item,data)3750 # self.GPXtree.SetItemPyData(item,data) 3755 3751 3756 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)3752 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 3757 3753 finally: 3758 3754 dlg.Destroy() … … 3760 3756 def OnRenameData(self,event): 3761 3757 'Renames an existing phase. Called by Data/Rename Phase menu' 3762 name = self. PatternTree.GetItemText(self.PickId)3758 name = self.GPXtree.GetItemText(self.PickId) 3763 3759 if 'PWDR' in name or 'HKLF' in name or 'IMG' in name: 3764 3760 if 'Bank' in name: … … 3776 3772 if dlg.ShowModal() == wx.ID_OK: 3777 3773 name = dataType+dlg.GetValue()+names[1] 3778 self. PatternTree.SetItemText(self.PickId,name)3774 self.GPXtree.SetItemText(self.PickId,name) 3779 3775 finally: 3780 3776 dlg.Destroy() … … 3784 3780 fileList = [] 3785 3781 Source = '' 3786 id, cookie = self. PatternTree.GetFirstChild(self.root)3782 id, cookie = self.GPXtree.GetFirstChild(self.root) 3787 3783 while id: 3788 name = self. PatternTree.GetItemText(id)3784 name = self.GPXtree.GetItemText(id) 3789 3785 if fileType in name: 3790 3786 if id == skip: … … 3792 3788 else: 3793 3789 fileList.append([False,name,id]) 3794 id, cookie = self. PatternTree.GetNextChild(self.root, cookie)3790 id, cookie = self.GPXtree.GetNextChild(self.root, cookie) 3795 3791 if skip: 3796 3792 return fileList,Source … … 3807 3803 nItems = {'PWDR':0,'SASD':0,'REFD':0,'IMG':0,'HKLF':0,'PDF':0} 3808 3804 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) 3811 3807 while item: 3812 name = self. PatternTree.GetItemText(item)3808 name = self.GPXtree.GetItemText(item) 3813 3809 if name not in ['Notebook','Controls','Covariance','Constraints', 3814 3810 'Restraints','Phases','Rigid bodies'] and 'Sequential' not in name: … … 3822 3818 nItems['PDF'] += 1 3823 3819 TextList.append(name) 3824 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)3820 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 3825 3821 for pdfName in PDFnames: 3826 3822 try: … … 3833 3829 result = dlg.GetSelections() 3834 3830 for i in result: DelList.append(TextList[i]) 3835 item, cookie = self. PatternTree.GetFirstChild(self.root)3831 item, cookie = self.GPXtree.GetFirstChild(self.root) 3836 3832 while item: 3837 itemName = self. PatternTree.GetItemText(item)3833 itemName = self.GPXtree.GetItemText(item) 3838 3834 if itemName in DelList: 3839 3835 if 'PWDR' in itemName[:4]: nItems['PWDR'] -= 1 … … 3844 3840 elif 'PDF' in itemName[:3]: nItems['PDF'] -= 1 3845 3841 DelItemList.append(item) 3846 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)3842 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 3847 3843 for item in DelItemList: 3848 self. PatternTree.Delete(item)3844 self.GPXtree.Delete(item) 3849 3845 self.PickId = 0 3850 3846 self.PickIdText = None … … 3869 3865 result = wx.ID_OK 3870 3866 self.EnablePlot = False 3871 if self. PatternTree.GetChildrenCount(self.root,False):3867 if self.GPXtree.GetChildrenCount(self.root,False): 3872 3868 if self.dataFrame: 3873 3869 self.dataFrame.ClearData() … … 3880 3876 result = dlg.ShowModal() 3881 3877 if result == wx.ID_OK: 3882 self. PatternTree.DeleteChildren(self.root)3878 self.GPXtree.DeleteChildren(self.root) 3883 3879 self.GSASprojectfile = '' 3884 3880 self.HKL = [] … … 3922 3918 phaseId = None 3923 3919 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) 3926 3922 self.HKL = [] 3927 item, cookie = self. PatternTree.GetFirstChild(self.root)3923 item, cookie = self.GPXtree.GetFirstChild(self.root) 3928 3924 while item and not Id: 3929 name = self. PatternTree.GetItemText(item)3925 name = self.GPXtree.GetItemText(item) 3930 3926 if name[:4] in ['PWDR','HKLF','IMG ','PDF ','SASD','REFD']: 3931 3927 Id = item … … 3933 3929 phaseId = item 3934 3930 elif name == 'Controls': 3935 data = self. PatternTree.GetItemPyData(item)3931 data = self.GPXtree.GetItemPyData(item) 3936 3932 if data: 3937 3933 for item in self.Refine: item.Enable(True) 3938 3934 self.EnableSeqRefineMenu() 3939 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)3935 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 3940 3936 if phaseId: # show all phases 3941 self. PatternTree.Expand(phaseId)3937 self.GPXtree.Expand(phaseId) 3942 3938 if Id: 3943 3939 self.EnablePlot = True 3944 self. PatternTree.SelectItem(Id)3945 self. PatternTree.Expand(Id)3940 self.GPXtree.SelectItem(Id) 3941 self.GPXtree.Expand(Id) 3946 3942 elif phaseId: 3947 self. PatternTree.SelectItem(phaseId)3943 self.GPXtree.SelectItem(phaseId) 3948 3944 self.CheckNotebook() 3949 3945 if self.dirname: os.chdir(self.dirname) # to get Mac/Linux to change directory! … … 3964 3960 if result != wx.ID_CANCEL: 3965 3961 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) 3968 3964 if self.HKL: self.HKL = [] 3969 3965 if self.G2plotNB.plotList: … … 3978 3974 3979 3975 if self.GSASprojectfile: 3980 self. PatternTree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)3976 self.GPXtree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile) 3981 3977 self.CheckNotebook() 3982 3978 G2IO.ProjFileSave(self) … … 4001 3997 self.GSASprojectfile = dlg.GetPath() 4002 3998 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) 4004 4000 self.SetTitle("GSAS-II data tree: "+os.path.split(self.GSASprojectfile)[1]) 4005 4001 self.CheckNotebook() … … 4016 4012 self.ExpandingAll = True 4017 4013 try: 4018 self. PatternTree.ExpandAll()4014 self.GPXtree.ExpandAll() 4019 4015 finally: 4020 4016 self.ExpandingAll = False … … 4022 4018 self.ExpandingAll = True 4023 4019 try: 4024 item, cookie = self. PatternTree.GetFirstChild(self.root)4020 item, cookie = self.GPXtree.GetFirstChild(self.root) 4025 4021 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) 4029 4025 finally: 4030 4026 self.ExpandingAll = False … … 4036 4032 # make a list of items to copy 4037 4033 copyList = [] 4038 item, cookie = self. PatternTree.GetFirstChild(self.root)4034 item, cookie = self.GPXtree.GetFirstChild(self.root) 4039 4035 while item: 4040 if self. PatternTree.GetItemText(item).startswith(txt+' '):4036 if self.GPXtree.GetItemText(item).startswith(txt+' '): 4041 4037 copyList.append(item) 4042 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)4038 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 4043 4039 4044 4040 self.ExpandingAll = True 4045 4041 try: 4046 4042 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) 4051 4047 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) 4057 4053 finally: 4058 4054 self.ExpandingAll = False … … 4087 4083 self.peaklistfile = G2IO.FileDlgFixExt(dlg,self.peaklistfile) 4088 4084 file = open(self.peaklistfile,'w') 4089 item, cookie = self. PatternTree.GetFirstChild(self.root)4085 item, cookie = self.GPXtree.GetFirstChild(self.root) 4090 4086 while item: 4091 name = self. PatternTree.GetItemText(item)4087 name = self.GPXtree.GetItemText(item) 4092 4088 if 'PWDR' in name: 4093 item2, cookie2 = self. PatternTree.GetFirstChild(item)4089 item2, cookie2 = self.GPXtree.GetFirstChild(item) 4094 4090 wave = 0.0 4095 4091 while item2: 4096 name2 = self. PatternTree.GetItemText(item2)4092 name2 = self.GPXtree.GetItemText(item2) 4097 4093 if name2 == 'Instrument Parameters': 4098 Inst = self. PatternTree.GetItemPyData(item2)[0]4094 Inst = self.GPXtree.GetItemPyData(item2)[0] 4099 4095 Type = Inst['Type'][0] 4100 4096 if 'T' not in Type: 4101 4097 wave = G2mth.getWave(Inst) 4102 4098 elif name2 == 'Peak List': 4103 pkdata = self. PatternTree.GetItemPyData(item2)4099 pkdata = self.GPXtree.GetItemPyData(item2) 4104 4100 peaks = pkdata['peaks'] 4105 4101 sigDict = pkdata['sigDict'] 4106 item2, cookie2 = self. PatternTree.GetNextChild(item, cookie2)4102 item2, cookie2 = self.GPXtree.GetNextChild(item, cookie2) 4107 4103 file.write("#%s \n" % (name+' Peak List')) 4108 4104 if wave: … … 4135 4131 file.write("%10.4f %10.5f %10.5f %12.2f %10.5f %10.5f %10.5f \n" % \ 4136 4132 (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) 4138 4134 file.close() 4139 4135 finally: … … 4149 4145 self.peaklistfile = G2IO.FileDlgFixExt(dlg,self.peaklistfile) 4150 4146 file = open(self.peaklistfile,'w') 4151 item, cookie = self. PatternTree.GetFirstChild(self.root)4147 item, cookie = self.GPXtree.GetFirstChild(self.root) 4152 4148 while item: 4153 name = self. PatternTree.GetItemText(item)4149 name = self.GPXtree.GetItemText(item) 4154 4150 if 'PWDR' in name: 4155 item2, cookie2 = self. PatternTree.GetFirstChild(item)4151 item2, cookie2 = self.GPXtree.GetFirstChild(item) 4156 4152 while item2: 4157 name2 = self. PatternTree.GetItemText(item2)4153 name2 = self.GPXtree.GetItemText(item2) 4158 4154 if name2 == 'Reflection Lists': 4159 data = self. PatternTree.GetItemPyData(item2)4155 data = self.GPXtree.GetItemPyData(item2) 4160 4156 phases = data.keys() 4161 4157 for phase in phases: … … 4185 4181 (int(peak[0]),int(peak[1]),int(peak[2]),int(peak[3]),peak[4],peak[5],FWHM/100., 4186 4182 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) 4189 4185 file.close() 4190 4186 finally: … … 4220 4216 Qlimits = [] 4221 4217 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) 4224 4220 while id: 4225 name = self. PatternTree.GetItemText(id)4221 name = self.GPXtree.GetItemText(id) 4226 4222 Names.append(name) 4227 4223 if 'PWDR' in name: 4228 4224 TextList.append(name) 4229 Data = self. PatternTree.GetItemPyData(id)[1]4225 Data = self.GPXtree.GetItemPyData(id)[1] 4230 4226 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] 4234 4230 if 'C' in Parms['Type'][0]: 4235 4231 wave = G2mth.getWave(Parms) … … 4259 4255 ElList[elem] = ElData 4260 4256 ElLists.append(ElList) 4261 id, cookie = self. PatternTree.GetNextChild(self.root, cookie)4257 id, cookie = self.GPXtree.GetNextChild(self.root, cookie) 4262 4258 if len(TextList) < 1: 4263 4259 self.ErrorDialog('Nothing to make PDFs for','There must be at least one "PWDR" pattern') … … 4267 4263 if dlg.ShowModal() == wx.ID_OK: 4268 4264 for i in dlg.GetSelections(): 4269 PDFnames = Get PatternTreeDataNames(self,['PDF ',])4265 PDFnames = GetGPXtreeDataNames(self,['PDF ',]) 4270 4266 G2obj.CreatePDFitems(self,TextList[i],ElLists[i],Qlimits[i],sumnum,pwdrMin,PDFnames) 4271 4267 for item in self.ExportPDF: item.Enable(True) … … 4285 4281 PWDRdata = {} 4286 4282 try: 4287 PWDRdata.update(self. PatternTree.GetItemPyData(PWDRname)[0]) #wtFactor + ?4283 PWDRdata.update(self.GPXtree.GetItemPyData(PWDRname)[0]) #wtFactor + ? 4288 4284 except ValueError: 4289 4285 PWDRdata['wtFactor'] = 1.0 4290 PWDRdata['Data'] = self. PatternTree.GetItemPyData(PWDRname)[1] #powder data arrays4291 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')) 4296 4292 if 'ranId' not in PWDRdata: # patch, add a random Id 4297 4293 PWDRdata['ranId'] = ran.randint(0,sys.maxint) … … 4311 4307 ''' 4312 4308 HKLFdata = {} 4313 HKLFdata.update(self. PatternTree.GetItemPyData(HKLFname)[0]) #wtFactor + ?4309 HKLFdata.update(self.GPXtree.GetItemPyData(HKLFname)[0]) #wtFactor + ? 4314 4310 # try: 4315 # HKLFdata.update(self. PatternTree.GetItemPyData(HKLFname)[0]) #wtFactor + ?4311 # HKLFdata.update(self.GPXtree.GetItemPyData(HKLFname)[0]) #wtFactor + ? 4316 4312 # except ValueError: 4317 4313 # 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')) 4320 4316 return HKLFdata 4321 4317 … … 4326 4322 ''' 4327 4323 phaseData = {} 4328 if Get PatternTreeItemId(self,self.root,'Phases'):4329 sub = Get PatternTreeItemId(self,self.root,'Phases')4324 if GetGPXtreeItemId(self,self.root,'Phases'): 4325 sub = GetGPXtreeItemId(self,self.root,'Phases') 4330 4326 else: 4331 4327 print 'no phases found in GetPhaseData' 4332 4328 sub = None 4333 4329 if sub: 4334 item, cookie = self. PatternTree.GetFirstChild(sub)4330 item, cookie = self.GPXtree.GetFirstChild(sub) 4335 4331 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) 4338 4334 if 'ranId' not in phaseData[phaseName]: 4339 4335 phaseData[phaseName]['ranId'] = ran.randint(0,sys.maxint) 4340 item, cookie = self. PatternTree.GetNextChild(sub, cookie)4336 item, cookie = self.GPXtree.GetNextChild(sub, cookie) 4341 4337 return phaseData 4342 4338 … … 4354 4350 phaseRIdList = [] 4355 4351 usedHistograms = {} 4356 sub = Get PatternTreeItemId(self,self.root,'Phases')4352 sub = GetGPXtreeItemId(self,self.root,'Phases') 4357 4353 if sub: 4358 item, cookie = self. PatternTree.GetFirstChild(sub)4354 item, cookie = self.GPXtree.GetFirstChild(sub) 4359 4355 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') 4362 4358 if ranId: phaseRIdList.append(ranId) 4363 data = self. PatternTree.GetItemPyData(item)4359 data = self.GPXtree.GetItemPyData(item) 4364 4360 UseList = data['Histograms'] 4365 4361 usedHistograms[phaseName] = UseList.keys() 4366 item, cookie = self. PatternTree.GetNextChild(sub, cookie)4362 item, cookie = self.GPXtree.GetNextChild(sub, cookie) 4367 4363 return phaseRIdList,usedHistograms 4368 4364 … … 4373 4369 ''' 4374 4370 phaseNames = [] 4375 if Get PatternTreeItemId(self,self.root,'Phases'):4376 sub = Get PatternTreeItemId(self,self.root,'Phases')4371 if GetGPXtreeItemId(self,self.root,'Phases'): 4372 sub = GetGPXtreeItemId(self,self.root,'Phases') 4377 4373 else: 4378 4374 print 'no phases found in GetPhaseNames' 4379 4375 sub = None 4380 4376 if sub: 4381 item, cookie = self. PatternTree.GetFirstChild(sub)4377 item, cookie = self.GPXtree.GetFirstChild(sub) 4382 4378 while item: 4383 phase = self. PatternTree.GetItemText(item)4379 phase = self.GPXtree.GetItemText(item) 4384 4380 phaseNames.append(phase) 4385 item, cookie = self. PatternTree.GetNextChild(sub, cookie)4381 item, cookie = self.GPXtree.GetNextChild(sub, cookie) 4386 4382 return phaseNames 4387 4383 … … 4396 4392 """ 4397 4393 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) 4400 4396 while item: 4401 name = self. PatternTree.GetItemText(item)4397 name = self.GPXtree.GetItemText(item) 4402 4398 if name[:4] in hType: 4403 4399 HistogramNames.append(name) 4404 item, cookie = self. PatternTree.GetNextChild(self.root, cookie)4400 item, cookie = self.GPXtree.GetNextChild(self.root, cookie) 4405 4401 4406 4402 return HistogramNames … … 4436 4432 Phase['Histograms'][hist]['Use'] = True 4437 4433 if hist not in Histograms and Phase['Histograms'][hist]['Use']: 4438 item = Get PatternTreeItemId(self,self.root,hist)4434 item = GetGPXtreeItemId(self,self.root,hist) 4439 4435 if item: 4440 4436 if 'PWDR' in hist[:4]: … … 4474 4470 self.ErrorDialog('View parameter error','You must run least squares at least once') 4475 4471 raise Exception,'No pId for phase '+phase 4476 rigidbodyDict = self. PatternTree.GetItemPyData(4477 Get PatternTreeItemId(self,self.root,'Rigid bodies'))4472 rigidbodyDict = self.GPXtree.GetItemPyData( 4473 GetGPXtreeItemId(self,self.root,'Rigid bodies')) 4478 4474 rbVary,rbDict = G2stIO.GetRigidBodyModels(rigidbodyDict,Print=False) 4479 4475 rbIds = rigidbodyDict.get('RBIds',{'Vector':[],'Residue':[]}) … … 4519 4515 try: 4520 4516 # process constraints 4521 sub = Get PatternTreeItemId(self,self.root,'Constraints')4522 Constraints = self. PatternTree.GetItemPyData(sub)4517 sub = GetGPXtreeItemId(self,self.root,'Constraints') 4518 Constraints = self.GPXtree.GetItemPyData(sub) 4523 4519 constList = [] 4524 4520 for item in Constraints: … … 4540 4536 Called from the Calculate/Refine menu. 4541 4537 ''' 4542 Id = Get PatternTreeItemId(self,self.root,'Sequential results')4538 Id = GetGPXtreeItemId(self,self.root,'Sequential results') 4543 4539 if Id: 4544 4540 dlg = wx.MessageDialog( … … 4547 4543 'Remove sequential results?',wx.OK|wx.CANCEL) 4548 4544 if dlg.ShowModal() == wx.ID_OK: 4549 self. PatternTree.Delete(Id)4545 self.GPXtree.Delete(Id) 4550 4546 dlg.Destroy() 4551 4547 else: … … 4574 4570 Rw = 100.00 4575 4571 self.SaveTreeSetting() 4576 self. PatternTree.SaveExposedItems()4572 self.GPXtree.SaveExposedItems() 4577 4573 try: 4578 4574 OK,Msg = G2stMn.Refine(self.GSASprojectfile,dlg) #Msg is Rvals dict if Ok=True … … 4593 4589 try: 4594 4590 if dlg2.ShowModal() == wx.ID_OK: 4595 self. PatternTree.DeleteChildren(self.root)4591 self.GPXtree.DeleteChildren(self.root) 4596 4592 self.HKL = [] 4597 4593 G2IO.ProjFileOpen(self,False) 4598 self. PatternTree.RestoreExposedItems()4594 self.GPXtree.RestoreExposedItems() 4599 4595 self.ResetPlots() 4600 4596 finally: … … 4605 4601 def SaveTreeSetting(self): 4606 4602 'Save the last tree setting' 4607 oldId = self. PatternTree.GetSelection() #retain current selection4603 oldId = self.GPXtree.GetSelection() #retain current selection 4608 4604 oldPath = self.GetTreeItemsList(oldId) 4609 4605 self.lastTreeSetting = oldPath … … 4611 4607 #parentName = '' 4612 4608 #tabId = None 4613 # parentId = self. PatternTree.GetItemParent(oldId)4609 # parentId = self.GPXtree.GetItemParent(oldId) 4614 4610 # if parentId: 4615 # parentName = self. PatternTree.GetItemText(parentId) #find the current data tree name4611 # parentName = self.GPXtree.GetItemText(parentId) #find the current data tree name 4616 4612 # if 'Phases' in parentName: 4617 4613 # tabId = self.dataDisplay.GetSelection() … … 4644 4640 Id = self.root 4645 4641 for txt in oldPath: 4646 Id = Get PatternTreeItemId(self, Id, txt)4642 Id = GetGPXtreeItemId(self, Id, txt) 4647 4643 self.PickIdText = None #force reload of page 4648 4644 if Id: 4649 4645 self.PickId = Id 4650 self. PatternTree.SelectItem(Id)4646 self.GPXtree.SelectItem(Id) 4651 4647 # update other self-updating plots 4652 4648 # for lbl,frame in zip(self.G2plotNB.plotList,self.G2plotNB.panelList): … … 4665 4661 Called from the Calculate/Sequential refine menu. 4666 4662 ''' 4667 Id = Get PatternTreeItemId(self,self.root,'Sequential results')4663 Id = GetGPXtreeItemId(self,self.root,'Sequential results') 4668 4664 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,{}) 4671 4667 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')) 4673 4669 if not Controls.get('Seq Data'): 4674 4670 print('Error: a sequential refinement has not been set up') … … 4688 4684 warnmsg+'\nRefinement not possible') 4689 4685 return 4690 self. PatternTree.SaveExposedItems()4686 self.GPXtree.SaveExposedItems() 4691 4687 dlg = wx.ProgressDialog('Residual for histogram 0','Powder profile Rwp =',101.0, 4692 4688 style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_CAN_ABORT, … … 4707 4703 if dlg.ShowModal() == wx.ID_OK: 4708 4704 self.PickIdText = None #force reload of PickId contents 4709 self. PatternTree.DeleteChildren(self.root)4705 self.GPXtree.DeleteChildren(self.root) 4710 4706 if len(self.HKL): self.HKL = [] 4711 4707 if self.G2plotNB.plotList: 4712 4708 self.G2plotNB.clear() 4713 4709 G2IO.ProjFileOpen(self,False) 4714 self. PatternTree.RestoreExposedItems()4710 self.GPXtree.RestoreExposedItems() 4715 4711 self.ResetPlots() 4716 Id = Get PatternTreeItemId(self,self.root,'Sequential results')4717 self. PatternTree.SelectItem(Id)4712 Id = GetGPXtreeItemId(self,self.root,'Sequential results') 4713 self.GPXtree.SelectItem(Id) 4718 4714 finally: 4719 4715 dlg.Destroy() … … 5786 5782 # '''Keep track of size changes for Phase windows 5787 5783 # ''' 5788 # id = self.G2frame. PatternTree.GetSelection()5784 # id = self.G2frame.GPXtree.GetSelection() 5789 5785 # try: 5790 # parent = self.G2frame. PatternTree.GetItemParent(id)5786 # parent = self.G2frame.GPXtree.GetItemParent(id) 5791 5787 # except: #avoid bad tree item on start via gpx file selection 5792 5788 # 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": 5794 5790 # newSize = event.EventObject.GetSize() 5795 5791 # if newSize[1] < 200: return #avois spurious small window after Refine … … 5826 5822 event.Skip() 5827 5823 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) 5829 5825 if 'nt' not in os.name: 5830 5826 text.AppendText('\n') … … 5917 5913 5918 5914 def OnSelectData(event): 5919 choices = Get PatternTreeDataNames(G2frame,['PWDR','HKLF',])5915 choices = GetGPXtreeDataNames(G2frame,['PWDR','HKLF',]) 5920 5916 sel = [] 5921 5917 try: … … 6125 6121 'FreePrm1':[],'FreePrm2':[],'FreePrm3':[],'Omega':[], 6126 6122 'Chi':[],'Phi':[],'Azimuth':[],} 6127 Controls = G2frame. PatternTree.GetItemPyData(6128 Get PatternTreeItemId(G2frame,G2frame.root, 'Controls'))6123 Controls = G2frame.GPXtree.GetItemPyData( 6124 GetGPXtreeItemId(G2frame,G2frame.root, 'Controls')) 6129 6125 sampleParm = {} 6130 6126 for name in histNames: … … 6137 6133 if 'PDF' in name: 6138 6134 name = 'PWDR' + name[4:] 6139 Id = Get PatternTreeItemId(G2frame,G2frame.root,name)6135 Id = GetGPXtreeItemId(G2frame,G2frame.root,name) 6140 6136 if Id: 6141 sampleData = G2frame. PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,Id,'Sample Parameters'))6137 sampleData = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,Id,'Sample Parameters')) 6142 6138 for item in sampleParmDict: 6143 6139 sampleParmDict[item].append(sampleData.get(item,0)) … … 6176 6172 if not name.startswith('PWDR'): return 6177 6173 pickId = G2frame.PickId 6178 G2frame.PickId = G2frame.PatternId = Get PatternTreeItemId(G2frame, G2frame.root, name)6174 G2frame.PickId = G2frame.PatternId = GetGPXtreeItemId(G2frame, G2frame.root, name) 6179 6175 G2plt.PlotPatterns(G2frame,newPlot=True,plotType='PWDR') 6180 6176 G2frame.PickId = pickId … … 6906 6902 data['variableLabels'] = variableLabels 6907 6903 Histograms,Phases = G2frame.GetUsedHistogramsAndPhasesfromTree() 6908 Controls = G2frame. PatternTree.GetItemPyData(GetPatternTreeItemId(G2frame,G2frame.root,'Controls'))6904 Controls = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId(G2frame,G2frame.root,'Controls')) 6909 6905 # create a place to store Pseudo Vars & Parametric Fit functions, if not present 6910 6906 if 'SeqPseudoVars' not in data: data['SeqPseudoVars'] = {} … … 7381 7377 Tmin = newdata[0] 7382 7378 Tmax = newdata[-1] 7383 G2frame. PatternTree.SetItemPyData(GetPatternTreeItemId(G2frame,item,'Limits'),7379 G2frame.GPXtree.SetItemPyData(GetGPXtreeItemId(G2frame,item,'Limits'), 7384 7380 [(Tmin,Tmax),[Tmin,Tmax]]) 7385 7381 UpdatePWHKPlot(G2frame,kind,item) # redisplay data screen … … 7398 7394 7399 7395 def OnPlotAll3DHKL(event): 7400 choices = Get PatternTreeDataNames(G2frame,['HKLF',])7396 choices = GetGPXtreeDataNames(G2frame,['HKLF',]) 7401 7397 dlg = G2G.G2MultiChoiceDialog(G2frame, 'Select reflection sets to plot', 7402 7398 'Use data',choices) … … 7410 7406 refList = np.zeros(0) 7411 7407 for name in refNames: 7412 Id = Get PatternTreeItemId(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] 7414 7410 if len(refList): 7415 7411 refList = np.concatenate((refList,reflData['RefList'])) … … 7428 7424 7429 7425 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, 7432 7428 G2frame.PatternId,'Instrument Parameters')) 7433 CId = Get PatternTreeItemId(G2frame,G2frame.PatternId,'Comments')7429 CId = GetGPXtreeItemId(G2frame,G2frame.PatternId,'Comments') 7434 7430 if CId: 7435 Comments = G2frame. PatternTree.GetItemPyData(CId)7431 Comments = G2frame.GPXtree.GetItemPyData(CId) 7436 7432 else: 7437 7433 Comments = [] … … 7500 7496 HKLFlist = [] 7501 7497 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) 7504 7500 while item: 7505 name = G2frame. PatternTree.GetItemText(item)7501 name = G2frame.GPXtree.GetItemText(item) 7506 7502 if name.startswith('HKLF ') and name not in HKLFlist: 7507 7503 HKLFlist.append(name) 7508 item, cookie = G2frame. PatternTree.GetNextChild(G2frame.root, cookie)7504 item, cookie = G2frame.GPXtree.GetNextChild(G2frame.root, cookie) 7509 7505 newName = G2obj.MakeUniqueLabel(newName,HKLFlist) 7510 7506 newData = copy.deepcopy(data) 7511 7507 newData[0]['ranId'] = ran.randint(0,sys.maxint) 7512 7508 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 use7509 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 7521 7517 7522 7518 def OnErrorAnalysis(event): … … 7538 7534 G2pdG.CopySelectedHistItems(G2frame) 7539 7535 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)) 7542 7538 #patches 7543 7539 if not data: … … 7554 7550 RefData['FF'].append(ref[14]) 7555 7551 data[1] = RefData 7556 G2frame. PatternTree.SetItemPyData(item,data)7552 G2frame.GPXtree.SetItemPyData(item,data) 7557 7553 #end patches 7558 7554 if kind in ['PWDR','SASD','REFD']: … … 7630 7626 G2frame.SetDataSize() 7631 7627 7632 G2frame. PatternTree.SetItemPyData(item,data)7628 G2frame.GPXtree.SetItemPyData(item,data) 7633 7629 G2frame.PatternId = item 7634 7630 if kind in ['PWDR','SASD','REFD',]: … … 7638 7634 G2plt.PlotPatterns(G2frame,plotType=kind,newPlot=NewPlot) 7639 7635 elif kind == 'HKLF': 7640 Name = G2frame. PatternTree.GetItemText(item)7636 Name = G2frame.GPXtree.GetItemText(item) 7641 7637 phaseName = G2pdG.IsHistogramInAnyPhase(G2frame,Name) 7642 7638 if phaseName: 7643 pId = Get PatternTreeItemId(G2frame,G2frame.root,'Phases')7644 phaseId = Get PatternTreeItemId(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'] 7646 7642 Super = General.get('Super',0) 7647 7643 SuperVec = General.get('SuperVec',[]) … … 7671 7667 ################################################################################ 7672 7668 7673 def Get PatternTreeDataNames(G2frame,dataTypes):7669 def GetGPXtreeDataNames(G2frame,dataTypes): 7674 7670 '''Finds all items in tree that match a 4 character prefix 7675 7671 … … 7680 7676 ''' 7681 7677 names = [] 7682 item, cookie = G2frame. PatternTree.GetFirstChild(G2frame.root)7678 item, cookie = G2frame.GPXtree.GetFirstChild(G2frame.root) 7683 7679 while item: 7684 name = G2frame. PatternTree.GetItemText(item)7680 name = G2frame.GPXtree.GetItemText(item) 7685 7681 if name[:4] in dataTypes: 7686 7682 names.append(name) 7687 item, cookie = G2frame. PatternTree.GetNextChild(G2frame.root, cookie)7683 item, cookie = G2frame.GPXtree.GetNextChild(G2frame.root, cookie) 7688 7684 return names 7689 7685 7690 def Get PatternTreeItemId(G2frame, parentId, itemText):7686 def GetGPXtreeItemId(G2frame, parentId, itemText): 7691 7687 '''Find the tree item that matches the text in itemText starting with parentId 7692 7688 … … 7695 7691 :param str itemText: text for tree item 7696 7692 ''' 7697 item, cookie = G2frame. PatternTree.GetFirstChild(parentId)7693 item, cookie = G2frame.GPXtree.GetFirstChild(parentId) 7698 7694 while item: 7699 if G2frame. PatternTree.GetItemText(item) == itemText:7695 if G2frame.GPXtree.GetItemText(item) == itemText: 7700 7696 return item 7701 item, cookie = G2frame. PatternTree.GetNextChild(parentId, cookie)7697 item, cookie = G2frame.GPXtree.GetNextChild(parentId, cookie) 7702 7698 return 0 7703 7699 7704 7700 def SelectDataTreeItem(G2frame,item,oldFocus=None): 7705 7701 '''Called from :meth:`GSASII.GSASII.OnDataTreeSelChanged` when a item is selected on the tree. 7706 Also called from GSASII.On PatternTreeEndDrag, OnAddPhase -- might be better to select item, triggering7702 Also called from GSASII.OnGPXtreeEndDrag, OnAddPhase -- might be better to select item, triggering 7707 7703 the the bind to SelectDataTreeItem 7708 7704 … … 7727 7723 data = [G2frame.dataDisplay.GetValue()] 7728 7724 G2frame.dataDisplay.Clear() 7729 Id = Get PatternTreeItemId(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) 7731 7727 except: #clumsy but avoids dead window problem when opening another project 7732 7728 pass … … 7735 7731 data = [G2frame.dataDisplay.GetValue()] 7736 7732 G2frame.dataDisplay.Clear() 7737 Id = Get PatternTreeItemId(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) 7739 7735 except: #clumsy but avoids dead window problem when opening another project 7740 7736 pass … … 7755 7751 else: 7756 7752 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) 7758 7754 # 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] 7761 7757 if prfx in ('IMG','PKS','PWDR','SASD','HKLF','PDF','refd',): 7762 7758 G2frame.dataFrame.helpKey = prfx 7763 7759 elif prfx1 in ('IMG','PKS','PWDR','SASD','HKLF','PDF','REFD',): 7764 suffix = G2frame. PatternTree.GetItemText(item)7760 suffix = G2frame.GPXtree.GetItemText(item) 7765 7761 suffix1 = suffix.split()[0] 7766 7762 if '(Q)' in suffix1 or '(R)' in suffix1: suffix = suffix1 7767 7763 G2frame.dataFrame.helpKey = prfx1 + '_' + suffix 7768 7764 else: 7769 G2frame.dataFrame.helpKey = G2frame. PatternTree.GetItemText(item) # save name of calling tree item for help7765 G2frame.dataFrame.helpKey = G2frame.GPXtree.GetItemText(item) # save name of calling tree item for help 7770 7766 except IndexError: 7771 7767 print 'bug: why here?' 7772 7768 return 7773 if G2frame. PatternTree.GetItemParent(item) == G2frame.root:7769 if G2frame.GPXtree.GetItemParent(item) == G2frame.root: 7774 7770 G2frame.PatternId = 0 7775 if G2frame. PatternTree.GetItemText(item) == 'Notebook':7771 if G2frame.GPXtree.GetItemText(item) == 'Notebook': 7776 7772 SetDataMenuBar(G2frame,G2frame.dataWindow.DataNotebookMenu) 7777 data = G2frame. PatternTree.GetItemPyData(item)7773 data = G2frame.GPXtree.GetItemPyData(item) 7778 7774 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) 7781 7777 if not data: #fill in defaults 7782 7778 data = copy.copy(G2obj.DefaultControls) #least squares controls 7783 G2frame. PatternTree.SetItemPyData(item,data)7779 G2frame.GPXtree.SetItemPyData(item,data) 7784 7780 for i in G2frame.Refine: i.Enable(True) 7785 7781 G2frame.EnableSeqRefineMenu() 7786 7782 UpdateControls(G2frame,data) 7787 elif G2frame. PatternTree.GetItemText(item).startswith('Sequential '):7783 elif G2frame.GPXtree.GetItemText(item).startswith('Sequential '): 7788 7784 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) 7790 7786 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) 7793 7789 text = '' 7794 7790 if 'Rvals' in data: … … 7804 7800 value='See plot window for covariance display'+text,style=wx.TE_MULTILINE) 7805 7801 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) 7808 7804 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) 7811 7807 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) 7814 7810 Phases = G2frame.GetPhaseData() 7815 7811 phaseName = '' … … 7817 7813 phaseName = Phases.keys()[0] 7818 7814 G2restG.UpdateRestraints(G2frame,data,Phases,phaseName) 7819 elif G2frame. PatternTree.GetItemText(item).startswith('IMG '):7815 elif G2frame.GPXtree.GetItemText(item).startswith('IMG '): 7820 7816 G2frame.Image = item 7821 7817 G2frame.SetTitle('Image Data') 7822 data = G2frame. PatternTree.GetItemPyData(GetPatternTreeItemId(7818 data = G2frame.GPXtree.GetItemPyData(GetGPXtreeItemId( 7823 7819 G2frame,item,'Image Controls')) 7824 7820 G2imG.UpdateImageData(G2frame,data) 7825 7821 G2plt.PlotImage(G2frame,newPlot=True) 7826 elif G2frame. PatternTree.GetItemText(item).startswith('PKS '):7822 elif G2frame.GPXtree.GetItemText(item).startswith('PKS '): 7827 7823 G2plt.PlotPowderLines(G2frame) 7828 elif G2frame. PatternTree.GetItemText(item).startswith('PWDR '):7824 elif G2frame.GPXtree.GetItemText(item).startswith('PWDR '): 7829 7825 G2frame.PatternId = item 7830 7826 #for i in G2frame.ExportPattern: i.Enable(True) 7831 7827 if G2frame.EnablePlot: 7832 7828 UpdatePWHKPlot(G2frame,'PWDR',item) 7833 elif G2frame. PatternTree.GetItemText(item).startswith('SASD '):7829 elif G2frame.GPXtree.GetItemText(item).startswith('SASD '): 7834 7830 G2frame.PatternId = item 7835 7831 #for i in G2frame.ExportPattern: i.Enable(True) 7836 7832 if G2frame.EnablePlot: 7837 7833 UpdatePWHKPlot(G2frame,'SASD',item) 7838 elif G2frame. PatternTree.GetItemText(item).startswith('REFD '):7834 elif G2frame.GPXtree.GetItemText(item).startswith('REFD '): 7839 7835 G2frame.PatternId = item 7840 7836 #for i in G2frame.ExportPattern: i.Enable(True) 7841 7837 if G2frame.EnablePlot: 7842 7838 UpdatePWHKPlot(G2frame,'REFD',item) 7843 elif G2frame. PatternTree.GetItemText(item).startswith('HKLF '):7839 elif G2frame.GPXtree.GetItemText(item).startswith('HKLF '): 7844 7840 G2frame.Sngl = True 7845 7841 UpdatePWHKPlot(G2frame,'HKLF',item) 7846 elif G2frame. PatternTree.GetItemText(item).startswith('PDF '):7842 elif G2frame.GPXtree.GetItemText(item).startswith('PDF '): 7847 7843 G2frame.PatternId = item 7848 7844 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')) 7850 7846 G2pdG.UpdatePDFGrid(G2frame,data) 7851 7847 if len(data['G(R)']): 7852 7848 G2plt.PlotISFG(G2frame,data,plotType='G(R)') 7853 elif G2frame. PatternTree.GetItemText(item) == 'Phases':7849 elif G2frame.GPXtree.GetItemText(item) == 'Phases': 7854 7850 wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(), 7855 7851 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')) 7860 7856 G2pdG.UpdatePDFPeaks(G2frame,peaks,data) 7861 7857 if len(data['G(R)']): 7862 7858 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': 7864 7860 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 Controls7866 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) 7868 7864 G2pdG.UpdatePDFGrid(G2frame,data) 7869 7865 if len(data['G(R)']): … … 7872 7868 if 'F(Q)' in data: G2plt.PlotISFG(G2frame,data,plotType='F(Q)') 7873 7869 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) 7876 7872 G2phG.UpdatePhaseData(G2frame,item,data,oldPage) 7877 elif G2frame. PatternTree.GetItemText(item) == 'Comments':7873 elif G2frame.GPXtree.GetItemText(item) == 'Comments': 7878 7874 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) 7881 7877 UpdateComments(G2frame,data) 7882 elif G2frame. PatternTree.GetItemText(item) == 'Image Controls':7878 elif G2frame.GPXtree.GetItemText(item) == 'Image Controls': 7883 7879 G2frame.SetTitle('Image Controls') 7884 G2frame.Image = G2frame. PatternTree.GetItemParent(item)7885 masks = G2frame. PatternTree.GetItemPyData(7886 Get PatternTreeItemId(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) 7888 7884 G2frame.ImageZ = G2imG.GetImageZ(G2frame,data) 7889 7885 G2imG.UpdateImageControls(G2frame,data,masks) 7890 7886 G2plt.PlotImage(G2frame,newPlot=False) 7891 elif G2frame. PatternTree.GetItemText(item) == 'Masks':7887 elif G2frame.GPXtree.GetItemText(item) == 'Masks': 7892 7888 G2frame.SetTitle('Masks') 7893 G2frame.Image = G2frame. PatternTree.GetItemParent(item)7894 masks = G2frame. PatternTree.GetItemPyData(item)7895 data = G2frame. PatternTree.GetItemPyData(7896 Get PatternTreeItemId(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')) 7897 7893 G2frame.ImageZ = G2imG.GetImageZ(G2frame,data) 7898 7894 G2imG.UpdateMasks(G2frame,masks) 7899 7895 G2plt.PlotImage(G2frame,newPlot=False) 7900 elif G2frame. PatternTree.GetItemText(item) == 'Stress/Strain':7896 elif G2frame.GPXtree.GetItemText(item) == 'Stress/Strain': 7901 7897 G2frame.SetTitle('Stress/Strain') 7902 G2frame.Image = G2frame. PatternTree.GetItemParent(item)7903 data = G2frame. PatternTree.GetItemPyData(7904 Get PatternTreeItemId(G2frame,G2frame.Image, 'Image Controls'))7898 G2frame.Image = G2frame.GPXtree.GetItemParent(item) 7899 data = G2frame.GPXtree.GetItemPyData( 7900 GetGPXtreeItemId(G2frame,G2frame.Image, 'Image Controls')) 7905 7901 G2frame.ImageZ = G2imG.GetImageZ(G2frame,data,newRange=False) 7906 strsta = G2frame. PatternTree.GetItemPyData(item)7902 strsta = G2frame.GPXtree.GetItemPyData(item) 7907 7903 G2plt.PlotStrain(G2frame,strsta,newPlot=True) 7908 7904 G2plt.PlotImage(G2frame,newPlot=False) 7909 7905 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) 7912 7908 for i in G2frame.ExportPeakList: i.Enable(True) 7913 data = G2frame. PatternTree.GetItemPyData(item)7909 data = G2frame.GPXtree.GetItemPyData(item) 7914 7910 #patch 7915 7911 if 'list' in str(type(data)): 7916 7912 data = {'peaks':data,'sigDict':{}} 7917 G2frame. PatternTree.SetItemPyData(item,data)7913 G2frame.GPXtree.SetItemPyData(item,data) 7918 7914 #end patch 7919 7915 G2pdG.UpdatePeakGrid(G2frame,data) 7920 7916 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) 7924 7920 G2pdG.UpdateBackground(G2frame,data) 7925 7921 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) 7930 7926 G2pdG.UpdateLimitsGrid(G2frame,data,datatype) 7931 7927 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] 7935 7931 G2pdG.UpdateInstrumentGrid(G2frame,data) 7936 7932 if 'P' in data['Type'][0]: #powder data only 7937 7933 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) 7941 7937 if prfx1 == 'SASD': 7942 7938 G2pdG.UpdateModelsGrid(G2frame,data) … … 7946 7942 if prfx1 == 'SASD' and len(data['Size']['Distribution']): 7947 7943 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) 7951 7947 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] 7956 7952 7957 7953 if 'Temperature' not in data: #temp fix for old gpx files … … 7960 7956 'FreePrm1':0.,'FreePrm2':0.,'FreePrm3':0., 7961 7957 'Gonio. radius':200.0} 7962 G2frame. PatternTree.SetItemPyData(item,data)7958 G2frame.GPXtree.SetItemPyData(item,data) 7963 7959 7964 7960 G2pdG.UpdateSampleGrid(G2frame,data) 7965 7961 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) 7968 7964 for i in G2frame.ExportPeakList: i.Enable(True) 7969 data = G2frame. PatternTree.GetItemPyData(item)7965 data = G2frame.GPXtree.GetItemPyData(item) 7970 7966 #patch 7971 7967 if len(data) != 2: 7972 7968 data = [data,[]] 7973 G2frame. PatternTree.SetItemPyData(item,data)7969 G2frame.GPXtree.SetItemPyData(item,data) 7974 7970 #end patch 7975 7971 G2pdG.UpdateIndexPeaksGrid(G2frame,data) 7976 if 'PKS' in G2frame. PatternTree.GetItemText(G2frame.PatternId):7972 if 'PKS' in G2frame.GPXtree.GetItemText(G2frame.PatternId): 7977 7973 G2plt.PlotPowderLines(G2frame) 7978 7974 else: 7979 7975 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) 7983 7979 if not data: 7984 7980 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 … … 7987 7983 data.append([]) #empty dmin 7988 7984 data.append({}) #empty superlattice stuff 7989 G2frame. PatternTree.SetItemPyData(item,data)7985 G2frame.GPXtree.SetItemPyData(item,data) 7990 7986 #patch 7991 7987 if len(data) < 5: 7992 7988 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) 7994 7990 #end patch 7995 7991 G2pdG.UpdateUnitCellsGrid(G2frame,data) 7996 if 'PKS' in G2frame. PatternTree.GetItemText(G2frame.PatternId):7992 if 'PKS' in G2frame.GPXtree.GetItemText(G2frame.PatternId): 7997 7993 G2plt.PlotPowderLines(G2frame) 7998 7994 else: 7999 7995 G2plt.PlotPatterns(G2frame) 8000 elif G2frame. PatternTree.GetItemText(item) == 'Reflection Lists': #powder reflections8001 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) 8003 7999 G2frame.RefList = '' 8004 8000 if len(data): … … 8006 8002 G2pdG.UpdateReflectionGrid(G2frame,data) 8007 8003 G2plt.PlotPatterns(G2frame) 8008 elif G2frame. PatternTree.GetItemText(item) == 'Reflection List': #HKLF reflections8009 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) 8012 8008 G2pdG.UpdateReflectionGrid(G2frame,data,HKLF=True,Name=name) 8013 8009 … … 8029 8025 else: 8030 8026 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 traceback8037 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.