Changeset 2524
- Timestamp:
- Nov 15, 2016 1:36:55 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIctrls.py
r2516 r2524 528 528 but (unlike _onLoseFocus) don't update the textbox contents. 529 529 ''' 530 if not self.IsModified(): #ignore mouse crusing 531 return 530 532 if self.evaluated and not self.invalid: # deal with computed expressions 531 533 self.evaluated = False # expression has been recast as value, reset flag -
trunk/GSASIIplot.py
r2521 r2524 235 235 Plot = Page.figure.gca() #get previous plot 236 236 limits = Plot.get_xlim(),Plot.get_ylim() # save previous limits 237 # print 'Plot limits:',limits 237 238 if newImage: 238 239 Page.figure.clf() -
trunk/GSASIIpwdGUI.py
r2521 r2524 1273 1273 '''respond to selection of PWDR Limits data tree item. 1274 1274 ''' 1275 if G2frame.dataDisplay: 1276 G2frame.dataFrame.Clear() 1277 G2frame.ifGetExclude = False 1278 1279 def KeyEditPeakGrid(event): 1280 '''for deleting excluded regions 1281 ''' 1282 if event.GetKeyCode() == wx.WXK_DELETE: 1283 row = G2frame.dataDisplay.GetSelectedRows()[0] 1284 if row > 1: #can't delete limits! 1285 del(data[row]) 1286 wx.CallAfter(UpdateLimitsGrid,G2frame,data,plottype) 1287 G2plt.PlotPatterns(G2frame,plotType=plottype) 1288 1289 def RefreshLimitsGrid(event): 1290 event.StopPropagation() 1291 data = G2frame.LimitsTable.GetData() 1292 old = data[0] 1293 new = data[1] 1294 new[0] = max(old[0],new[0]) 1295 new[1] = max(new[0],min(old[1],new[1])) 1296 excl = [] 1297 if len(data) > 2: 1298 excl = data[2:] 1299 for item in excl: 1300 item[0] = max(old[0],item[0]) 1301 item[1] = max(item[0],min(old[1],item[1])) 1302 data = [old,new]+excl 1303 G2frame.LimitsTable.SetData(data) 1304 G2plt.PlotPatterns(G2frame,plotType=plottype) 1305 1275 # if G2frame.dataDisplay: 1276 # G2frame.dataFrame.Clear() 1277 # G2frame.ifGetExclude = False 1278 # 1279 # def KeyEditPeakGrid(event): 1280 # '''for deleting excluded regions 1281 # ''' 1282 # if event.GetKeyCode() == wx.WXK_DELETE: 1283 # row = G2frame.dataDisplay.GetSelectedRows()[0] 1284 # if row > 1: #can't delete limits! 1285 # del(data[row]) 1286 # wx.CallAfter(UpdateLimitsGrid,G2frame,data,plottype) 1287 # G2plt.PlotPatterns(G2frame,plotType=plottype) 1288 # 1289 # def RefreshLimitsGrid(event): 1290 # event.StopPropagation() 1291 # data = G2frame.LimitsTable.GetData() 1292 # old = data[0] 1293 # new = data[1] 1294 # new[0] = max(old[0],new[0]) 1295 # new[1] = max(new[0],min(old[1],new[1])) 1296 # excl = [] 1297 # if len(data) > 2: 1298 # excl = data[2:] 1299 # for item in excl: 1300 # item[0] = max(old[0],item[0]) 1301 # item[1] = max(item[0],min(old[1],item[1])) 1302 # data = [old,new]+excl 1303 # G2frame.LimitsTable.SetData(data) 1304 # G2plt.PlotPatterns(G2frame,plotType=plottype) 1305 # 1306 # def OnLimitCopy(event): 1307 # hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1308 # histList = GetHistsLikeSelected(G2frame) 1309 # if not histList: 1310 # G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 1311 # return 1312 # copyList = [] 1313 # dlg = G2G.G2MultiChoiceDialog( 1314 # G2frame.dataFrame, 1315 # 'Copy limits from\n'+str(hst[5:])+' to...', 1316 # 'Copy limits', histList) 1317 # try: 1318 # if dlg.ShowModal() == wx.ID_OK: 1319 # for i in dlg.GetSelections(): 1320 # item = histList[i] 1321 # Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1322 # G2frame.PatternTree.SetItemPyData( 1323 # G2gd.GetPatternTreeItemId(G2frame,Id,'Limits'),copy.copy(data)) 1324 # finally: 1325 # dlg.Destroy() 1326 # 1327 # def OnAddExcl(event): 1328 # G2frame.ifGetExclude = True 1329 # print 'Add excluded region' 1330 # 1331 # G2frame.LimitsTable = [] 1332 # colLabels = ['Tmin','Tmax'] 1333 # rowLabels = ['original','changed'] 1334 # for i in range(len(data)-2): 1335 # rowLabels.append('exclude') 1336 # Types = 2*[wg.GRID_VALUE_FLOAT+':12,5',] 1337 # G2frame.LimitsTable = G2G.Table(data,rowLabels=rowLabels,colLabels=colLabels,types=Types) 1338 # G2frame.dataFrame.SetLabel('Limits') 1339 # G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.LimitMenu) 1340 # if not G2frame.dataFrame.GetStatusBar(): 1341 # Status = G2frame.dataFrame.CreateStatusBar() 1342 # if len(data)>2: 1343 # Status.SetStatusText('To delete excluded region: select & press Delete key') 1344 # G2frame.Bind(wx.EVT_MENU,OnLimitCopy,id=G2gd.wxID_LIMITCOPY) 1345 # G2frame.Bind(wx.EVT_MENU,OnAddExcl,id=G2gd.wxID_ADDEXCLREGION) 1346 # G2frame.dataDisplay = G2G.GSGrid(parent=G2frame.dataFrame) 1347 # G2frame.dataDisplay.SetTable(G2frame.LimitsTable, True) 1348 # G2frame.dataDisplay.SetCellStyle(0,0,VERY_LIGHT_GREY,True) 1349 # G2frame.dataDisplay.SetCellStyle(0,1,VERY_LIGHT_GREY,True) 1350 # G2frame.dataDisplay.Bind(wg.EVT_GRID_CELL_CHANGE, RefreshLimitsGrid) 1351 # G2frame.dataDisplay.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) 1352 # G2frame.dataDisplay.SetMargins(0,0) 1353 # G2frame.dataDisplay.AutoSizeColumns(False) 1354 # G2frame.dataFrame.setSizePosLeft([230,260]) 1355 # G2frame.dataFrame.SendSizeEvent() 1356 # 1357 # 1358 def LimitSizer(): 1359 limits = wx.FlexGridSizer(2,3,0,5) 1360 labels = ['Tmin','Tmax'] 1361 for i in [0,1]: 1362 limits.Add(wx.StaticText(G2frame.dataDisplay,label=' Original %s: %.4f'%(labels[0],data[0][i])),0,WACV) 1363 limits.Add(wx.StaticText(G2frame.dataDisplay,label=' New: '),0,WACV) 1364 limits.Add(G2G.ValidatedTxtCtrl(G2frame.dataDisplay,data[1],i, \ 1365 min=data[0][0],max=data[0][1],nDig=(10,4),typeHint=float,OnLeave=AfterChange)) 1366 return limits 1367 1368 def AfterChange(invalid,value,tc): 1369 if invalid: return 1370 plottype = G2frame.PatternTree.GetItemText(G2frame.PatternId)[:4] 1371 G2plt.PlotPatterns(G2frame,newPlot=False,plotType=plottype) #unfortunately this resets the plot width 1372 1373 def ExclSizer(): 1374 1375 def OnDelExcl(event): 1376 Obj = event.GetEventObject() 1377 item = Indx[Obj.GetId()] 1378 del(data[item+2]) 1379 G2plt.PlotPatterns(G2frame,newPlot=False,plotType=plottype) 1380 wx.CallAfter(UpdateLimitsGrid,G2frame,data,plottype) 1381 1382 Indx = {} 1383 excl = wx.FlexGridSizer(0,3,0,5) 1384 excl.Add(wx.StaticText(G2frame.dataDisplay,label=' From: '),0,WACV) 1385 excl.Add(wx.StaticText(G2frame.dataDisplay,label=' To: '),0,WACV) 1386 excl.Add(wx.StaticText(G2frame.dataDisplay,label=' Delete?: '),0,WACV) 1387 for id,item in enumerate(data[2:]): 1388 for i in [0,1]: 1389 excl.Add(G2G.ValidatedTxtCtrl(G2frame.dataDisplay,item,i, \ 1390 min=data[0][0],max=data[0][1],nDig=(10,4),typeHint=float,OnLeave=AfterChange)) 1391 delExcl = wx.CheckBox(G2frame.dataDisplay,label='') 1392 Indx[delExcl.GetId()] = id 1393 delExcl.Bind(wx.EVT_CHECKBOX,OnDelExcl) 1394 excl.Add(delExcl,0,WACV) 1395 return excl 1396 1306 1397 def OnLimitCopy(event): 1307 1398 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) … … 1329 1420 print 'Add excluded region' 1330 1421 1331 G2frame.LimitsTable = [] 1332 colLabels = ['Tmin','Tmax'] 1333 rowLabels = ['original','changed'] 1334 for i in range(len(data)-2): 1335 rowLabels.append('exclude') 1336 Types = 2*[wg.GRID_VALUE_FLOAT+':12,5',] 1337 G2frame.LimitsTable = G2G.Table(data,rowLabels=rowLabels,colLabels=colLabels,types=Types) 1422 def Draw(): 1423 mainSizer = wx.BoxSizer(wx.VERTICAL) 1424 mainSizer.Add(LimitSizer()) 1425 if len(data)>2: 1426 mainSizer.Add((0,5),0) 1427 mainSizer.Add(wx.StaticText(G2frame.dataFrame,label=' Excluded regions:'),0,WACV) 1428 mainSizer.Add(ExclSizer()) 1429 mainSizer.Layout() 1430 G2frame.dataDisplay.SetSizer(mainSizer) 1431 Size = mainSizer.Fit(G2frame.dataFrame) 1432 G2frame.dataDisplay.SetSize(Size) 1433 G2frame.dataFrame.setSizePosLeft(Size) 1434 1435 1436 if G2frame.dataDisplay: 1437 G2frame.dataFrame.DestroyChildren() 1438 G2frame.ifGetExclude = False 1439 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1440 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.LimitMenu) 1338 1441 G2frame.dataFrame.SetLabel('Limits') 1339 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.LimitMenu)1340 1442 if not G2frame.dataFrame.GetStatusBar(): 1341 1443 Status = G2frame.dataFrame.CreateStatusBar() 1342 if len(data)>2:1343 Status.SetStatusText('To delete excluded region: select & press Delete key')1344 1444 G2frame.Bind(wx.EVT_MENU,OnLimitCopy,id=G2gd.wxID_LIMITCOPY) 1345 G2frame.Bind(wx.EVT_MENU,OnAddExcl,id=G2gd.wxID_ADDEXCLREGION) 1346 G2frame.dataDisplay = G2G.GSGrid(parent=G2frame.dataFrame) 1347 G2frame.dataDisplay.SetTable(G2frame.LimitsTable, True) 1348 G2frame.dataDisplay.SetCellStyle(0,0,VERY_LIGHT_GREY,True) 1349 G2frame.dataDisplay.SetCellStyle(0,1,VERY_LIGHT_GREY,True) 1350 G2frame.dataDisplay.Bind(wg.EVT_GRID_CELL_CHANGE, RefreshLimitsGrid) 1351 G2frame.dataDisplay.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) 1352 G2frame.dataDisplay.SetMargins(0,0) 1353 G2frame.dataDisplay.AutoSizeColumns(False) 1354 G2frame.dataFrame.setSizePosLeft([230,260]) 1355 G2frame.dataFrame.SendSizeEvent() 1445 G2frame.Bind(wx.EVT_MENU,OnAddExcl,id=G2gd.wxID_ADDEXCLREGION) 1446 Draw() 1447 1448 1356 1449 1357 1450 ################################################################################
Note: See TracChangeset
for help on using the changeset viewer.