- Timestamp:
- Jul 1, 2017 6:22:10 AM (6 years ago)
- Location:
- branch/2frame
- Files:
-
- 11 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branch/2frame/GSASII.py
r2871 r2888 90 90 # GSASIIpath.IPyBreak() 91 91 92 __version__ = '0. 2.0'92 __version__ = '0.3.0' 93 93 94 94 # PATCH: for Mavericks (OS X 10.9.x), wx produces an annoying warning about LucidaGrandeUI. … … 121 121 'HStrain':[NDij*[0.0,],NDij*[False,]], 122 122 'Extinction':[0.0,False],'Babinet':{'BabA':[0.0,False],'BabU':[0.0,False]}} 123 124 class GSASIIsplit(wx.SplitterWindow): 125 def __init__(self,parent,ID): 126 wx.SplitterWindow.__init__(self, parent, ID,style = wx.SP_BORDER|wx.SP_LIVE_UPDATE) 127 self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGED, self.OnSashChanged) 128 self.Bind(wx.EVT_SPLITTER_SASH_POS_CHANGING, self.OnSashChanging) 129 130 def OnSashChanged(self, evt): 131 evt.Skip() 132 # print "sash changed to %s\n" % str(evt.GetSashPosition()) 133 134 def OnSashChanging(self, evt): 135 evt.Skip() 136 # print "sash changing to %s\n" % str(evt.GetSashPosition()) 123 137 124 138 class GSASII(wx.Frame): … … 1489 1503 if UseList: haveData = True 1490 1504 if haveData: 1491 self.data Frame.DataMenu.Enable(G2gd.wxID_DATADELETE,True)1505 self.dataWindow.DataMenu.Enable(G2gd.wxID_DATADELETE,True) 1492 1506 for item in self.Refine: item.Enable(True) 1493 1507 else: 1494 self.data Frame.DataMenu.Enable(G2gd.wxID_DATADELETE,False)1508 self.dataWindow.DataMenu.Enable(G2gd.wxID_DATADELETE,False) 1495 1509 for item in self.Refine: item.Enable(False) 1496 1510 … … 2446 2460 item.Enable(False) 2447 2461 self.Bind(wx.EVT_MENU, self.OnExportPDF, id=item.GetId()) 2448 2462 2449 2463 def FillMainMenu(self,menubar,addhelp=True): 2450 2464 '''Define contents of the main GSAS-II menu for the (main) data tree window. … … 2521 2535 def _init_ctrls(self, parent): 2522 2536 wx.Frame.__init__(self, name='GSASII', parent=parent, 2523 size=wx.Size( 400, 250),style=wx.DEFAULT_FRAME_STYLE, title='GSAS-II data tree')2537 size=wx.Size(700, 450),style=wx.DEFAULT_FRAME_STYLE, title='GSAS-II data tree') 2524 2538 clientSize = wx.ClientDisplayRect() 2525 2539 Size = self.GetSize() … … 2546 2560 self.Bind(wx.EVT_SIZE, self.OnSize) 2547 2561 self.Status = self.CreateStatusBar() 2548 self.mainPanel = wx.Panel(self,-1) 2562 #TODO - split window tree on left, data on right 2563 self.mainPanel = GSASIIsplit(self,-1) 2564 self.treePanel = wx.Panel(self.mainPanel, wx.ID_ANY, 2565 style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) 2566 self.treePanel.SetAutoLayout(True) 2567 self.dataPanel = wx.Panel(self.mainPanel, wx.ID_ANY, 2568 style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) 2569 self.dataPanel.SetAutoLayout(True) 2570 self.dataWindow = G2gd.DataWindow(self.dataPanel) 2571 self.dataWindow.SetupScrolling() 2572 self.mainPanel.SetMinimumPaneSize(100) 2573 self.mainPanel.SplitVertically(self.treePanel, self.dataPanel, 200) 2574 self.dataFrame = self.dataWindow #kluge!! 2549 2575 2550 2576 wxID_PATTERNTREE = wx.NewId() 2551 #self.PatternTree = wx.TreeCtrl(id=wxID_PATTERNTREE, # replaced for logging2577 treeSizer = wx.BoxSizer() 2552 2578 self.PatternTree = G2G.G2TreeCtrl(id=wxID_PATTERNTREE, 2553 parent=self.mainPanel, pos=wx.Point(0, 0),style=wx.TR_DEFAULT_STYLE ) 2579 parent=self.treePanel, size=self.treePanel.GetSize(),style=wx.TR_DEFAULT_STYLE ) 2580 treeSizer.Add(self.PatternTree,1,wx.EXPAND) 2581 self.treePanel.SetSizer(treeSizer) 2554 2582 self.PatternTree.Bind(wx.EVT_TREE_SEL_CHANGED,self.OnDataTreeSelChanged) 2555 2583 self.PatternTree.Bind(wx.EVT_TREE_ITEM_RIGHT_CLICK,self.OnDataTreeSelChanged) … … 2566 2594 self.PatternTree.Bind(wx.EVT_TREE_END_DRAG, 2567 2595 self.OnPatternTreeEndDrag, id=wxID_PATTERNTREE) 2568 #self.root = self.PatternTree.AddRoot('Loaded Data: ')2569 self.root = self.PatternTree.root2596 self.root = self.PatternTree.root 2597 2570 2598 plotFrame = wx.Frame(None,-1,'GSASII Plots',size=wx.Size(700,600), \ 2571 2599 style=wx.DEFAULT_FRAME_STYLE ^ wx.CLOSE_BOX) 2572 2600 self.G2plotNB = G2plt.G2PlotNoteBook(plotFrame,G2frame=self) 2573 2601 plotFrame.Show() 2574 2575 self.dataDisplay = None 2602 self.SetDataSize() 2576 2603 2577 2604 def __init__(self, parent): … … 2609 2636 self.Lines = [] 2610 2637 self.itemPicked = None 2611 self.dataFrame = None2612 2638 self.Interpolate = 'nearest' 2613 2639 self.ContourColor = GSASIIpath.GetConfigValue('Contour_color','Paired') … … 2687 2713 self.mainPanel.SetSize(wx.Size(w,h)) 2688 2714 self.PatternTree.SetSize(wx.Size(w,h)) 2689 2715 2716 def SetDataSize(self): 2717 Size = self.GetSize() 2718 self.SetSize(Size) 2719 Size[1] += 1 #kluge to ensure scrollbar settings & window properly displayed 2720 self.SetSize(Size) 2721 2690 2722 def OnDataTreeSelChanged(self, event): 2691 2723 '''Called when a data tree item is selected''' … … 3428 3460 if self.PatternTree.GetChildrenCount(self.root,False): 3429 3461 if self.dataFrame: 3430 self.dataFrame.Clear ()3462 self.dataFrame.ClearData() 3431 3463 dlg = wx.MessageDialog( 3432 3464 self, … … 3447 3479 3448 3480 if not filename: 3449 if self.dataDisplay: self.dataDisplay.Destroy()3450 3481 if self.LastGPXdir: 3451 3482 pth = self.LastGPXdir … … 3515 3546 the project. 3516 3547 ''' 3517 if self.dataFrame: 3518 self.dataFrame.Clear() 3519 self.dataFrame.SetLabel('GSAS-II data display') 3520 dlg = wx.MessageDialog(self, 'Save current project?', ' ', wx.YES | wx.NO | wx.CANCEL) 3548 # dlg = wx.MessageDialog(self, 'Save current project?', ' ', wx.YES | wx.NO | wx.CANCEL) 3521 3549 try: 3522 3550 result = dlg.ShowModal() … … 3625 3653 self.G2plotNB.Destroy() 3626 3654 if self.dataFrame: 3627 self.dataFrame.Clear()3628 3655 self.dataFrame.Destroy() 3629 3656 if self.undofile: … … 3636 3663 self.G2plotNB.Destroy() 3637 3664 if self.dataFrame: 3638 self.dataFrame.Clear()3639 3665 self.dataFrame.Destroy() 3640 3666 self.Close() -
branch/2frame/GSASIIconstrGUI.py
r2753 r2888 662 662 #varListlbl = ["("+i+") "+G2obj.fmtVarDescr(i) for i in varList] 663 663 legend = "Select variables to hold (Will not be varied, even if vary flag is set)" 664 dlg = G2G.G2MultiChoiceDialog( 665 G2frame.dataFrame, 664 dlg = G2G.G2MultiChoiceDialog(G2frame.dataFrame, 666 665 legend,title1,varListlbl,toggle=False,size=(625,400),monoFont=True) 667 666 dlg.CenterOnParent() … … 1062 1061 notebook tab. Called in :func:`OnPageChanged` 1063 1062 ''' 1064 if panel.GetSizer(): panel.GetSizer().Clear(True) # N.B. don't use panel.DestroyChildren()1063 # if panel.GetSizer(): panel.GetSizer().Clear(True) # N.B. don't use panel.DestroyChildren() 1065 1064 # because it deletes scrollbars on Mac 1066 1065 Siz = wx.BoxSizer(wx.VERTICAL) 1067 1066 Siz.Add((5,5),0) 1068 Siz.Add(MakeConstraintsSizer(typ,panel) )1067 Siz.Add(MakeConstraintsSizer(typ,panel),1,wx.EXPAND) 1069 1068 panel.SetSizer(Siz,True) 1070 1069 Size = Siz.GetMinSize() … … 1073 1072 panel.SetSize(Size) 1074 1073 panel.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1075 Size[1] = min(500,Size[1]) 1076 G2frame.dataFrame.setSizePosLeft(Size) 1074 panel.Show() 1077 1075 1078 1076 def OnPageChanged(event): … … 1083 1081 page = event.GetSelection() 1084 1082 else: # called directly, get current page 1085 page = G2frame. dataDisplay.GetSelection()1086 G2frame. dataDisplay.ChangeSelection(page)1087 text = G2frame. dataDisplay.GetPageText(page)1083 page = G2frame.constr.GetSelection() 1084 G2frame.constr.ChangeSelection(page) 1085 text = G2frame.constr.GetPageText(page) 1088 1086 G2frame.dataFrame.ConstraintEdit.Enable(G2gd.wxID_EQUIVALANCEATOMS,False) 1089 1087 # G2frame.dataFrame.ConstraintEdit.Enable(G2gd.wxID_ADDRIDING,False) … … 1114 1112 G2gd.wxID_CONSHIST, 1115 1113 G2gd.wxID_CONSGLOBAL).index(event.GetId()) 1116 G2frame. dataDisplay.SetSelection(i)1114 G2frame.constr.SetSelection(i) 1117 1115 wx.CallAfter(OnPageChanged,None) 1118 1116 except ValueError: … … 1120 1118 1121 1119 def SetStatusLine(text): 1122 Status.SetStatusText(text) 1123 1124 if G2frame.dataDisplay: 1125 G2frame.dataDisplay.Destroy() 1126 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ConstraintMenu) 1127 G2frame.dataFrame.SetLabel('Constraints') 1128 if not G2frame.dataFrame.GetStatusBar(): 1129 Status = G2frame.dataFrame.CreateStatusBar() 1120 G2frame.GetStatusBar().SetStatusText(text) 1121 1122 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.ConstraintMenu) 1123 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Constraints') 1130 1124 SetStatusLine('') 1131 1125 1132 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ConstraintMenu) 1133 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddConstraint, id=G2gd.wxID_CONSTRAINTADD) 1134 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddFunction, id=G2gd.wxID_FUNCTADD) 1135 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddEquivalence, id=G2gd.wxID_EQUIVADD) 1136 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddHold, id=G2gd.wxID_HOLDADD) 1137 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddAtomEquiv, id=G2gd.wxID_EQUIVALANCEATOMS) 1126 G2frame.Bind(wx.EVT_MENU, OnAddConstraint, id=G2gd.wxID_CONSTRAINTADD) 1127 G2frame.Bind(wx.EVT_MENU, OnAddFunction, id=G2gd.wxID_FUNCTADD) 1128 G2frame.Bind(wx.EVT_MENU, OnAddEquivalence, id=G2gd.wxID_EQUIVADD) 1129 G2frame.Bind(wx.EVT_MENU, OnAddHold, id=G2gd.wxID_HOLDADD) 1130 G2frame.Bind(wx.EVT_MENU, OnAddAtomEquiv, id=G2gd.wxID_EQUIVALANCEATOMS) 1138 1131 # G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddRiding, id=G2gd.wxID_ADDRIDING) 1139 1132 # tab commands … … 1144 1137 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=id) 1145 1138 1146 G2frame.dataDisplay = G2G.GSNoteBook(parent=G2frame.dataFrame) 1139 G2frame.dataWindow.ClearData() 1140 G2frame.constr = G2G.GSNoteBook(parent=G2frame.dataWindow) 1147 1141 # note that order of pages is hard-coded in RaisePage 1148 PhaseConstr = wx.ScrolledWindow(G2frame. dataDisplay)1149 G2frame. dataDisplay.AddPage(PhaseConstr,'Phase')1150 HAPConstr = wx.ScrolledWindow(G2frame. dataDisplay)1151 G2frame. dataDisplay.AddPage(HAPConstr,'Histogram/Phase')1152 HistConstr = wx.ScrolledWindow(G2frame. dataDisplay)1153 G2frame. dataDisplay.AddPage(HistConstr,'Histogram')1154 GlobalConstr = wx.ScrolledWindow(G2frame. dataDisplay)1155 G2frame. dataDisplay.AddPage(GlobalConstr,'Global')1142 PhaseConstr = wx.ScrolledWindow(G2frame.constr) 1143 G2frame.constr.AddPage(PhaseConstr,'Phase') 1144 HAPConstr = wx.ScrolledWindow(G2frame.constr) 1145 G2frame.constr.AddPage(HAPConstr,'Histogram/Phase') 1146 HistConstr = wx.ScrolledWindow(G2frame.constr) 1147 G2frame.constr.AddPage(HistConstr,'Histogram') 1148 GlobalConstr = wx.ScrolledWindow(G2frame.constr) 1149 G2frame.constr.AddPage(GlobalConstr,'Global') 1156 1150 wx.CallAfter(OnPageChanged,None) 1157 G2frame. dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged)1151 G2frame.constr.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) 1158 1152 # validate all the constrants -- should not see any errors here normally 1159 1153 allcons = [] … … 1321 1315 page = event.GetSelection() 1322 1316 else: 1323 page = G2frame. dataDisplay.GetSelection()1324 G2frame. dataDisplay.ChangeSelection(page)1325 text = G2frame. dataDisplay.GetPageText(page)1317 page = G2frame.rbBook.GetSelection() 1318 G2frame.rbBook.ChangeSelection(page) 1319 text = G2frame.rbBook.GetPageText(page) 1326 1320 if text == 'Vector rigid bodies': 1327 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.VectorBodyMenu)1321 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.VectorBodyMenu) 1328 1322 G2frame.dataFrame.Bind(wx.EVT_MENU, AddVectorRB, id=G2gd.wxID_VECTORBODYADD) 1329 1323 G2frame.Page = [page,'vrb'] 1330 1324 UpdateVectorRB() 1331 1325 elif text == 'Residue rigid bodies': 1332 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RigidBodyMenu)1326 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RigidBodyMenu) 1333 1327 G2frame.dataFrame.Bind(wx.EVT_MENU, AddResidueRB, id=G2gd.wxID_RIGIDBODYADD) 1334 1328 G2frame.dataFrame.Bind(wx.EVT_MENU, OnImportRigidBody, id=G2gd.wxID_RIGIDBODYIMPORT) … … 1595 1589 AtInfo = data['Vector']['AtInfo'] 1596 1590 refChoice = {} 1597 if 'DELETED' in str( Status): #seems to be no other way to do this (wx bug)1591 if 'DELETED' in str(G2frame.GetStatusBar()): #seems to be no other way to do this (wx bug) 1598 1592 if GSASIIpath.GetConfigValue('debug'): 1599 1593 print 'wx error: Rigid Body/Status not cleanly deleted after Refine' … … 1804 1798 VectorRB.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1805 1799 VectorRB.Scroll(0,Scroll) 1806 Size[1] = min(Size[1],500)1807 G2frame.dataFrame.setSizePosLeft(Size)1808 1800 1809 1801 def UpdateResidueRB(): … … 2058 2050 refChoice[rbId][i].sort() 2059 2051 2060 #ResidueRB.DestroyChildren() # bad, deletes scrollbars on Mac!2061 if ResidueRB.GetSizer():2062 # ResidueRB.DestroyChildren()2063 ResidueRB.GetSizer().Clear(True)2064 2065 2052 ResidueRBDisplay = wx.Panel(ResidueRB) 2066 2053 ResidueRBSizer = wx.BoxSizer(wx.VERTICAL) … … 2091 2078 ResidueRBDisplay.SetSize(Size) 2092 2079 ResidueRB.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 2093 Size[1] = min(500,Size[1])2094 G2frame.dataFrame.setSizePosLeft(Size)2095 2080 2096 2081 def SetStatusLine(text): 2097 Status.SetStatusText(text) 2098 2099 if G2frame.dataDisplay: 2100 G2frame.dataDisplay.Destroy() 2101 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.RigidBodyMenu) 2102 G2frame.dataFrame.SetLabel('Rigid bodies') 2103 if not G2frame.dataFrame.GetStatusBar(): 2104 Status = G2frame.dataFrame.CreateStatusBar() 2082 G2frame.GetStatusBar().SetStatusText(text) 2083 2084 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RigidBodyMenu) 2085 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Rigid bodies') 2105 2086 SetStatusLine('') 2106 2107 G2frame. dataDisplay= G2G.GSNoteBook(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize())2108 2109 VectorRB = wx.ScrolledWindow(G2frame. dataDisplay)2110 G2frame. dataDisplay.AddPage(VectorRB,'Vector rigid bodies')2111 ResidueRB = wx.ScrolledWindow(G2frame. dataDisplay)2112 G2frame. dataDisplay.AddPage(ResidueRB,'Residue rigid bodies')2087 G2frame.dataWindow.ClearData() 2088 G2frame.rbBook = G2G.GSNoteBook(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize()) 2089 2090 VectorRB = wx.ScrolledWindow(G2frame.rbBook) 2091 G2frame.rbBook.AddPage(VectorRB,'Vector rigid bodies') 2092 ResidueRB = wx.ScrolledWindow(G2frame.rbBook) 2093 G2frame.rbBook.AddPage(ResidueRB,'Residue rigid bodies') 2113 2094 UpdateVectorRB() 2114 G2frame. dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged)2095 G2frame.rbBook.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) 2115 2096 wx.CallAfter(OnPageChanged,None) -
branch/2frame/GSASIIctrls.py
r2872 r2888 57 57 def __init__(self,parent=None,*args,**kwargs): 58 58 super(self.__class__,self).__init__(parent=parent,*args,**kwargs) 59 self.G2frame = parent.GetParent() 59 self.G2frame = parent.GetParent().GetParent() 60 60 self.root = self.AddRoot('Loaded Data: ') 61 61 self.SelectionChanged = None … … 79 79 '''Log each press on a tree item here. 80 80 ''' 81 if not self.G2frame. dataFrame:81 if not self.G2frame.treePanel: 82 82 return 83 self.G2frame.dataFrame.userReSize = False84 83 if self.SelectionChanged: 85 84 textlist = self._getTreeItemsList(event.GetItem()) … … 93 92 self.textlist = textlist 94 93 self.SelectionChanged(event) 95 self.G2frame.dataFrame.userReSize = True96 94 97 95 def Bind(self,eventtype,handler,*args,**kwargs): … … 3039 3037 3040 3038 def PageChangeEvent(self,event): 3041 G2frame = self.parent.G2frame3039 # G2frame = self.parent.G2frame 3042 3040 page = event.GetSelection() 3043 if self.PageChangeHandler:3044 if log.LogInfo['Logging']:3045 log.MakeTabLog(3046 G2frame.dataFrame.GetTitle(),3047 G2frame.dataDisplay.GetPageText(page)3048 )3049 self.PageChangeHandler(event)3041 # if self.PageChangeHandler: 3042 # if log.LogInfo['Logging']: 3043 # log.MakeTabLog( 3044 # G2frame.dataFrame.GetTitle(), 3045 # G2frame.dataDisplay.GetPageText(page) 3046 # ) 3047 # self.PageChangeHandler(event) 3050 3048 3051 def Bind(self,eventtype,handler,*args,**kwargs):3052 '''Override the Bind() function so that page change events can be trapped3053 '''3054 if eventtype == wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED:3055 self.PageChangeHandler = handler3056 wx.aui.AuiNotebook.Bind(self,eventtype,self.PageChangeEvent)3057 return3058 wx.aui.AuiNotebook.Bind(self,eventtype,handler,*args,**kwargs)3049 # def Bind(self,eventtype,handler,*args,**kwargs): 3050 # '''Override the Bind() function so that page change events can be trapped 3051 # ''' 3052 # if eventtype == wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED: 3053 # self.PageChangeHandler = handler 3054 # wx.aui.AuiNotebook.Bind(self,eventtype,self.PageChangeEvent) 3055 # return 3056 # wx.aui.AuiNotebook.Bind(self,eventtype,handler,*args,**kwargs) 3059 3057 3060 3058 def Clear(self): -
branch/2frame/GSASIIddataGUI.py
r2873 r2888 855 855 useBox.Add(lebail,0,WACV) 856 856 if UseList[G2frame.hist]['LeBail']: 857 G2frame. dataFrame.SetStatusText('To reset LeBail, cycle LeBail check box.')857 G2frame.SetStatusText('To reset LeBail, cycle LeBail check box.') 858 858 bottomSizer.Add(useBox,0,WACV|wx.TOP|wx.BOTTOM|wx.LEFT,5) 859 859 … … 961 961 # Beginning of UpdateDData execution here 962 962 ###################################################################### 963 G2frame. dataFrame.SetStatusText('')963 G2frame.SetStatusText('') 964 964 keyList = G2frame.GetHistogramNames(['PWDR','HKLF']) 965 965 UseList = data['Histograms'] … … 985 985 if DData.GetSizer(): 986 986 DData.GetSizer().Clear(True) 987 if not G2frame.dataFrame.GetStatusBar():988 G2frame.dataFrame.CreateStatusBar()989 987 mainSizer = wx.BoxSizer(wx.VERTICAL) 990 988 mainSizer.Add(wx.StaticText(DData,wx.ID_ANY,' Histogram data for '+PhaseName+':'),0,WACV|wx.LEFT,5) -
branch/2frame/GSASIIgrid.py
r2870 r2888 53 53 # Define a short name for convenience 54 54 WACV = wx.ALIGN_CENTER_VERTICAL 55 56 55 [ wxID_FOURCALC, wxID_FOURSEARCH, wxID_FOURCLEAR, wxID_PEAKSMOVE, wxID_PEAKSCLEAR, 57 56 wxID_CHARGEFLIP, wxID_PEAKSUNIQUE, wxID_PEAKSDELETE, wxID_PEAKSDA, … … 158 157 [ wxID_MCRON,wxID_MCRLIST,wxID_MCRSAVE,wxID_MCRPLAY, 159 158 ] = [wx.NewId() for item in range(4)] 159 160 160 161 161 162 VERY_LIGHT_GREY = wx.Colour(235,235,235) … … 1587 1588 1588 1589 ################################################################################ 1589 class Data Frame(wx.Frame):1590 '''Create the data item window and all theentries in menus used in1591 that window. For Linux and windows, the menu entries are created for the1592 current data item window, but in the Mac the menu is accessed from all1590 class DataWindow(wxscroll.ScrolledPanel): 1591 '''Create the data item window entries in menus used in 1592 that window. The menu entries are created for all 1593 data item windows, but in the Mac the menu is accessed from all 1593 1594 windows. This means that a different menu is posted depending on which 1594 1595 data item is posted. On the Mac, all the menus contain the data tree menu … … 1599 1600 where the functions to be called are defined. 1600 1601 ''' 1601 def Bind(self,eventtype,handler,*args,**kwargs):1602 '''Override the Bind() function: on the Mac the binding is to1603 the main window, so that menus operate with any window on top.1604 For other platforms, either wrap calls that will be logged1605 or call the default wx.Frame Bind() to bind to the menu item directly.1606 1607 Note that bindings can be made to objects by Id or by direct reference to the1608 object. As a convention, when bindings are to objects, they are not logged1609 but when bindings are by Id, they are logged.1610 '''1611 if sys.platform == "darwin": # mac1612 self.G2frame.Bind(eventtype,handler,*args,**kwargs)1613 return1614 if eventtype == wx.EVT_MENU and 'id' in kwargs:1615 menulabels = log.SaveMenuCommand(kwargs['id'],self.G2frame,handler)1616 if menulabels:1617 #print 'intercepting bind for',handler,menulabels,kwargs['id']1618 wx.Frame.Bind(self,eventtype,self.G2frame.MenuBinding,*args,**kwargs)1619 return1620 wx.Frame.Bind(self,eventtype,handler,*args,**kwargs)1602 # def Bind(self,eventtype,handler,*args,**kwargs): 1603 # '''Override the Bind() function: on the Mac the binding is to 1604 # the main window, so that menus operate with any window on top. 1605 # For other platforms, either wrap calls that will be logged 1606 # or call the default wx.Frame Bind() to bind to the menu item directly. 1607 # 1608 # Note that bindings can be made to objects by Id or by direct reference to the 1609 # object. As a convention, when bindings are to objects, they are not logged 1610 # but when bindings are by Id, they are logged. 1611 # ''' 1612 # if sys.platform == "darwin": # mac 1613 # self.Bind(eventtype,handler,*args,**kwargs) 1614 # return 1615 # if eventtype == wx.EVT_MENU and 'id' in kwargs: 1616 ## menulabels = log.SaveMenuCommand(kwargs['id'],self,handler) 1617 ## if menulabels: 1618 ## #print 'intercepting bind for',handler,menulabels,kwargs['id'] 1619 ## wx.Window.Bind(self,eventtype,self.MenuBinding,*args,**kwargs) 1620 ## return 1621 # self.Bind(self,eventtype,handler,*args,**kwargs) 1621 1622 1622 1623 def PrefillDataMenu(self,menu,empty=False): 1623 '''Create the "standard" part of data frame menus . Note that on Linux and1624 Windows nothing happens here.On Mac, this menu duplicates the1624 '''Create the "standard" part of data frame menus & add the data menu. 1625 On Mac, this menu duplicates the 1625 1626 tree menu, but adds an extra help command for the data item and a separator. 1626 1627 ''' 1627 1628 self.datamenu = menu 1628 self.G2frame.dataMenuBars.append(menu) 1629 if sys.platform == "darwin": # mac 1630 self.G2frame.FillMainMenu(menu,addhelp=False) # add the data tree menu items 1631 if not empty: 1632 menu.Append(wx.Menu(title=''),title='|') # add a separator 1629 self.GetGrandParent().GetParent().FillMainMenu(menu,addhelp=False) # add the data tree menu items to the main menu 1630 if not empty: 1631 menu.Append(wx.Menu(title=''),title='|') # add a separator 1633 1632 1634 1633 def PostfillDataMenu(self,empty=False): … … 1649 1648 menu.Append(menu=G2G.MyHelp(self),title='&Help') 1650 1649 1651 def _init_menus(self): 1652 'define all GSAS-II data frame menus' 1650 1651 def _initMenus_(self): 1652 'define all GSAS-II data window menus' 1653 1653 1654 1654 # for use where no menu or data frame help is provided … … 1826 1826 ): 1827 1827 objlist = [] 1828 for obj in self. G2frame.exporterlist:1828 for obj in self.parent.GetParent().GetParent().exporterlist: 1829 1829 if lbl.lower() in obj.exporttype: 1830 1830 try: … … 2376 2376 # setup a cascade menu for the formats that have been defined 2377 2377 self.ReImportMenuId = {} # points to readers for each menu entry 2378 for reader in self. G2frame.ImportPhaseReaderlist:2378 for reader in self.parent.GetParent().GetParent().ImportPhaseReaderlist: 2379 2379 item = submenu.Append( 2380 2380 wx.ID_ANY,help=reader.longFormatName, … … 2587 2587 self.PostfillDataMenu() 2588 2588 # end of GSAS-II menu definitions 2589 2590 def _init_ctrls(self, parent,name=None,size=None,pos=None): 2591 wx.Frame.__init__( 2592 self,parent=parent, 2593 #style=wx.DEFAULT_FRAME_STYLE ^ wx.CLOSE_BOX | wx.FRAME_FLOAT_ON_PARENT , 2594 style=wx.DEFAULT_FRAME_STYLE ^ wx.CLOSE_BOX, 2595 size=size,pos=pos,title='GSAS-II data display') 2596 self._init_menus() 2597 if name: 2598 self.SetLabel(name) 2599 self.Show() 2600 2601 def __init__(self,parent,frame,data=None,name=None, size=None,pos=None): 2602 self.G2frame = frame 2603 self._init_ctrls(parent,name,size,pos) 2604 self.data = data 2605 clientSize = wx.ClientDisplayRect() 2606 Size = self.GetSize() 2607 xPos = clientSize[2]-Size[0] 2608 self.SetPosition(wx.Point(xPos,clientSize[1]+250)) 2609 self.AtomGrid = [] 2610 self.selectedRow = 0 2611 self.lastSize = Size 2612 self.manualPhaseSize = None 2613 self.userReSize = False 2614 wx.Frame.Bind(self,wx.EVT_SIZE,self.OnReSize) 2615 2616 def OnReSize(self,event): 2617 '''Keep track of size changes for Phase windows 2618 ''' 2619 id = self.G2frame.PatternTree.GetSelection() 2620 try: 2621 parent = self.G2frame.PatternTree.GetItemParent(id) 2622 except: #avoid bad tree item on start via gpx file selection 2623 parent = 0 2624 if self.userReSize and parent and self.G2frame.PatternTree.GetItemText(parent) == "Phases": 2625 newSize = event.EventObject.GetSize() 2626 if newSize[1] < 200: return #avois spurious small window after Refine 2627 if self.lastSize == newSize: 2628 # if GSASIIpath.GetConfigValue('debug'): 2629 # print 'no save size=',self.lastSize 2630 return 2631 self.manualPhaseSize = newSize 2632 self.lastSize = event.EventObject.GetSize() 2633 # if GSASIIpath.GetConfigValue('debug'): 2634 # print 'Saving Phase size=',self.manualPhaseSize 2635 #HowDidIgetHere() 2636 event.Skip() 2637 2638 def SendSizeEvent(self): 2639 '''Prevent SendSizeEvent from overriding the saved size 2640 ''' 2641 self.userReSize = False 2642 wx.Frame.SendSizeEvent(self) 2643 self.userReSize = True 2644 2645 def setSizePosLeft(self,Size): 2646 '''Place the dataFrame window so that the upper left-hand corner remains in the same place; 2647 The size is dictated by parameter Width, unless overridden by a previous Phase window resize 2648 ''' 2649 self.userReSize = False 2650 # if GSASIIpath.GetConfigValue('debug'): 2651 # print 'setSizePosLeft size',Size,self.lastSize 2652 Size = list(Size) 2653 id = self.G2frame.PatternTree.GetSelection() 2654 try: #avoid bad tree item on start via gpx file selection 2655 pid = self.G2frame.PatternTree.GetItemParent(id) 2656 except: 2657 pid = 0 2658 if pid: 2659 parent = self.G2frame.PatternTree.GetItemText(pid) 2660 # is this a phase window and has a previous window has been resized? 2661 if self.manualPhaseSize and parent == "Phases": 2662 Size = list(self.manualPhaseSize) 2663 Pos = self.GetPosition() 2664 clientSize = wx.ClientDisplayRect() #display window size (e.g. 1304x768) 2665 Size[1] = min(Size[1],clientSize[2]-300) 2666 Size[0] = max(Size[0],300) 2667 # print 'current position/width:',Pos,Width 2668 self.SetSize(Size) 2669 Size[1] += 1 #kluge to ensure scrollbar settings & window properly displayed 2670 self.SetSize(Size) 2671 Pos[0] += self.lastSize[0]-Size[0] 2672 offSet = 0 2673 if Pos[0] < clientSize[2]: 2674 offSet = Pos[0]+Size[0]-clientSize[2] 2675 if offSet > 0: 2676 Pos[0] -= offSet 2677 self.SetPosition(wx.Point(Pos[0],Pos[1])) 2678 self.lastSize = Size 2679 self.userReSize = True 2680 2681 def Clear(self): 2682 self.ClearBackground() 2589 2590 def __init__(self,parent): 2591 wxscroll.ScrolledPanel.__init__(self,parent,wx.ID_ANY,size=parent.GetSize()) 2592 self.parent = parent 2593 self._initMenus_() 2594 self.currentGrids = [] 2595 2596 def ClearData(self): 2597 # if self.GetSizer(): 2598 # self.GetSizer().Destroy() 2599 self.SetBackgroundColour(wx.WHITE) 2683 2600 self.DestroyChildren() 2601 # self.SetSize(self.GetParent().GetSize()) 2602 2603 #TODO - remove 2604 # def _init_ctrls(self, parent,name=None,size=None,pos=None): 2605 # wx.Frame.__init__( 2606 # self,parent=parent, 2607 # #style=wx.DEFAULT_FRAME_STYLE ^ wx.CLOSE_BOX | wx.FRAME_FLOAT_ON_PARENT , 2608 # style=wx.DEFAULT_FRAME_STYLE ^ wx.CLOSE_BOX, 2609 # size=size,pos=pos,title='GSAS-II data display') 2610 # self._init_menus() 2611 # if name: 2612 # self.SetLabel(name) 2613 # self.Show() 2614 # 2615 # def __init__(self,parent,frame,data=None,name=None, size=None,pos=None): 2616 # self.G2frame = frame 2617 # self._init_ctrls(parent,name,size,pos) 2618 # self.data = data 2619 # clientSize = wx.ClientDisplayRect() 2620 # Size = self.GetSize() 2621 # xPos = clientSize[2]-Size[0] 2622 # self.SetPosition(wx.Point(xPos,clientSize[1]+250)) 2623 # self.AtomGrid = [] 2624 # self.selectedRow = 0 2625 # self.lastSize = Size 2626 # self.manualPhaseSize = None 2627 # self.userReSize = False 2628 # wx.Frame.Bind(self,wx.EVT_SIZE,self.OnReSize) 2629 # 2630 # def OnReSize(self,event): 2631 # '''Keep track of size changes for Phase windows 2632 # ''' 2633 # id = self.G2frame.PatternTree.GetSelection() 2634 # try: 2635 # parent = self.G2frame.PatternTree.GetItemParent(id) 2636 # except: #avoid bad tree item on start via gpx file selection 2637 # parent = 0 2638 # if self.userReSize and parent and self.G2frame.PatternTree.GetItemText(parent) == "Phases": 2639 # newSize = event.EventObject.GetSize() 2640 # if newSize[1] < 200: return #avois spurious small window after Refine 2641 # if self.lastSize == newSize: 2642 ## if GSASIIpath.GetConfigValue('debug'): 2643 ## print 'no save size=',self.lastSize 2644 # return 2645 # self.manualPhaseSize = newSize 2646 # self.lastSize = event.EventObject.GetSize() 2647 ## if GSASIIpath.GetConfigValue('debug'): 2648 ## print 'Saving Phase size=',self.manualPhaseSize 2649 # #HowDidIgetHere() 2650 # event.Skip() 2651 # 2652 # def SendSizeEvent(self): 2653 # '''Prevent SendSizeEvent from overriding the saved size 2654 # ''' 2655 # self.userReSize = False 2656 # wx.Frame.SendSizeEvent(self) 2657 # self.userReSize = True 2658 # 2659 # def Clear(self): 2660 # self.ClearBackground() 2661 # self.DestroyChildren() 2684 2662 2685 2686 2663 ################################################################################ 2687 2664 ##### Notebook Tree Item editor … … 2693 2670 def OnNoteBook(event): 2694 2671 event.Skip() 2695 data = G2frame.dataDisplay.GetValue().split('\n')2672 data = text.GetValue().split('\n') 2696 2673 G2frame.PatternTree.SetItemPyData(GetPatternTreeItemId(G2frame,G2frame.root,'Notebook'),data) 2697 2674 if 'nt' not in os.name: 2698 G2frame.dataDisplay.AppendText('\n')2675 text.AppendText('\n') 2699 2676 2700 if G2frame.dataDisplay: 2701 G2frame.dataDisplay.Destroy() 2702 G2frame.dataFrame.SetLabel('Notebook') 2703 G2frame.dataDisplay = wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(), 2677 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Notebook') 2678 G2frame.dataWindow.ClearData() 2679 G2frame.dataWindow.SetupScrolling() 2680 mainSizer = wx.BoxSizer() 2681 text = wx.TextCtrl(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetSize(), 2704 2682 style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER | wx.TE_DONTWRAP) 2705 G2frame.dataDisplay.Bind(wx.EVT_TEXT_ENTER,OnNoteBook)2706 G2frame.dataDisplay.Bind(wx.EVT_KILL_FOCUS,OnNoteBook)2683 text.Bind(wx.EVT_TEXT_ENTER,OnNoteBook) 2684 text.Bind(wx.EVT_KILL_FOCUS,OnNoteBook) 2707 2685 for line in data: 2708 G2frame.dataDisplay.AppendText(line+"\n") 2709 G2frame.dataDisplay.AppendText('Notebook entry @ '+time.ctime()+"\n") 2710 G2frame.dataFrame.setSizePosLeft([400,250]) 2686 text.AppendText(line+"\n") 2687 text.AppendText('Notebook entry @ '+time.ctime()+"\n") 2688 mainSizer.Add(text,1,wx.EXPAND) 2689 G2frame.dataWindow.SetSizer(mainSizer) 2690 G2frame.SetDataSize() 2691 2692 ################################################################################ 2693 ##### Comments 2694 ################################################################################ 2695 2696 def UpdateComments(G2frame,data): 2697 2698 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Comments') 2699 G2frame.dataWindow.ClearData() 2700 G2frame.dataWindow.SetupScrolling() 2701 text = wx.TextCtrl(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetSize(), 2702 style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_DONTWRAP) 2703 for line in data: 2704 if '\n' not in line: 2705 text.AppendText(line+'\n') 2706 else: 2707 text.AppendText(line) 2708 mainSizer = wx.BoxSizer() 2709 mainSizer.Add(text,1,wx.EXPAND) 2710 G2frame.dataWindow.SetSizer(mainSizer) 2711 G2frame.SetDataSize() 2711 2712 2712 2713 ################################################################################ … … 2785 2786 seqSizer = wx.BoxSizer(wx.VERTICAL) 2786 2787 dataSizer = wx.BoxSizer(wx.HORIZONTAL) 2787 dataSizer.Add(wx.StaticText(G2frame.data Display,label=' Sequential Refinement: '),0,WACV)2788 selSeqData = wx.Button(G2frame.data Display,-1,label=' Select data')2788 dataSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Sequential Refinement: '),0,WACV) 2789 selSeqData = wx.Button(G2frame.dataWindow,-1,label=' Select data') 2789 2790 selSeqData.Bind(wx.EVT_BUTTON,OnSelectData) 2790 2791 dataSizer.Add(selSeqData,0,WACV) … … 2795 2796 lbl = ' ('+str(len(SeqData))+' dataset(s) selected)' 2796 2797 2797 dataSizer.Add(wx.StaticText(G2frame.data Display,label=lbl),0,WACV)2798 dataSizer.Add(wx.StaticText(G2frame.dataWindow,label=lbl),0,WACV) 2798 2799 seqSizer.Add(dataSizer,0) 2799 2800 if SeqData: 2800 2801 selSizer = wx.BoxSizer(wx.HORIZONTAL) 2801 reverseSel = wx.CheckBox(G2frame.data Display,-1,label=' Reverse order?')2802 reverseSel = wx.CheckBox(G2frame.dataWindow,-1,label=' Reverse order?') 2802 2803 reverseSel.Bind(wx.EVT_CHECKBOX,OnReverse) 2803 2804 reverseSel.SetValue(data['Reverse Seq']) 2804 2805 selSizer.Add(reverseSel,0,WACV) 2805 copySel = wx.CheckBox(G2frame.data Display,-1,label=' Copy results to next histogram?')2806 copySel = wx.CheckBox(G2frame.dataWindow,-1,label=' Copy results to next histogram?') 2806 2807 copySel.Bind(wx.EVT_CHECKBOX,OnCopySel) 2807 2808 copySel.SetValue(data['Copy2Next']) … … 2838 2839 2839 2840 LSSizer = wx.FlexGridSizer(cols=4,vgap=5,hgap=5) 2840 LSSizer.Add(wx.StaticText(G2frame.data Display,label=' Refinement derivatives: '),0,WACV)2841 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Refinement derivatives: '),0,WACV) 2841 2842 Choice=['analytic Jacobian','numeric','analytic Hessian','Hessian SVD'] #TODO +'SVD refine' - what flags will it need? 2842 derivSel = wx.ComboBox(parent=G2frame.data Display,value=data['deriv type'],choices=Choice,2843 derivSel = wx.ComboBox(parent=G2frame.dataWindow,value=data['deriv type'],choices=Choice, 2843 2844 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2844 2845 derivSel.SetValue(data['deriv type']) … … 2846 2847 2847 2848 LSSizer.Add(derivSel,0,WACV) 2848 LSSizer.Add(wx.StaticText(G2frame.data Display,label=' Min delta-M/M: '),0,WACV)2849 LSSizer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data,'min dM/M',nDig=(10,2,'g'),min=1.e-9,max=1.),0,WACV)2849 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Min delta-M/M: '),0,WACV) 2850 LSSizer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'min dM/M',nDig=(10,2,'g'),min=1.e-9,max=1.),0,WACV) 2850 2851 if 'Hessian' in data['deriv type']: 2851 LSSizer.Add(wx.StaticText(G2frame.data Display,label=' Max cycles: '),0,WACV)2852 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Max cycles: '),0,WACV) 2852 2853 Choice = ['0','1','2','3','5','10','15','20'] 2853 maxCyc = wx.ComboBox(parent=G2frame.data Display,value=str(data['max cyc']),choices=Choice,2854 maxCyc = wx.ComboBox(parent=G2frame.dataWindow,value=str(data['max cyc']),choices=Choice, 2854 2855 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2855 2856 maxCyc.Bind(wx.EVT_COMBOBOX, OnMaxCycles) 2856 2857 LSSizer.Add(maxCyc,0,WACV) 2857 2858 if 'SVD' not in data['deriv type']: 2858 LSSizer.Add(wx.StaticText(G2frame.data Display,label=' Initial lambda = 10**'),0,WACV)2859 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Initial lambda = 10**'),0,WACV) 2859 2860 MarqChoice = ['-3','-2','-1','0','1','2','3','4'] 2860 marqLam = wx.ComboBox(parent=G2frame.data Display,value=str(data['Marquardt']),choices=MarqChoice,2861 marqLam = wx.ComboBox(parent=G2frame.dataWindow,value=str(data['Marquardt']),choices=MarqChoice, 2861 2862 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2862 2863 marqLam.Bind(wx.EVT_COMBOBOX,OnMarqLam) 2863 2864 LSSizer.Add(marqLam,0,WACV) 2864 LSSizer.Add(wx.StaticText(G2frame.data Display,label=' SVD zero tolerance:'),0,WACV)2865 LSSizer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data,'SVDtol',nDig=(10,1,'g'),min=1.e-9,max=.01),0,WACV)2865 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' SVD zero tolerance:'),0,WACV) 2866 LSSizer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'SVDtol',nDig=(10,1,'g'),min=1.e-9,max=.01),0,WACV) 2866 2867 else: #TODO what for SVD refine? 2867 LSSizer.Add(wx.StaticText(G2frame.data Display,label=' Initial shift factor: '),0,WACV)2868 Factr = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'shift factor',nDig=(10,5),min=1.e-5,max=100.)2868 LSSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Initial shift factor: '),0,WACV) 2869 Factr = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'shift factor',nDig=(10,5),min=1.e-5,max=100.) 2869 2870 LSSizer.Add(Factr,0,WACV) 2870 2871 if G2frame.Sngl: … … 2874 2875 'MinD':[' Min d-spacing (0.1-2.0): ',[0.1,2.0],]} 2875 2876 2876 fsqRef = wx.CheckBox(G2frame.data Display,-1,label='Refine HKLF as F^2? ')2877 fsqRef = wx.CheckBox(G2frame.dataWindow,-1,label='Refine HKLF as F^2? ') 2877 2878 fsqRef.SetValue(data['F**2']) 2878 2879 fsqRef.Bind(wx.EVT_CHECKBOX,OnFsqRef) … … 2880 2881 LSSizer.Add((1,0),) 2881 2882 for item in usrRej: 2882 LSSizer.Add(wx.StaticText(G2frame.data Display,-1,label=usrRej[item][0]),0,WACV)2883 usrrej = G2G.ValidatedTxtCtrl(G2frame.data Display,userReject,item,nDig=(10,2),2883 LSSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=usrRej[item][0]),0,WACV) 2884 usrrej = G2G.ValidatedTxtCtrl(G2frame.dataWindow,userReject,item,nDig=(10,2), 2884 2885 min=usrRej[item][1][0],max=usrRej[item][1][1]) 2885 2886 LSSizer.Add(usrrej,0,WACV) … … 2894 2895 Author = data['Author'] 2895 2896 authSizer = wx.BoxSizer(wx.HORIZONTAL) 2896 authSizer.Add(wx.StaticText(G2frame.data Display,label=' CIF Author (last, first):'),0,WACV)2897 auth = wx.TextCtrl(G2frame.data Display,-1,value=Author,style=wx.TE_PROCESS_ENTER)2897 authSizer.Add(wx.StaticText(G2frame.dataWindow,label=' CIF Author (last, first):'),0,WACV) 2898 auth = wx.TextCtrl(G2frame.dataWindow,-1,value=Author,style=wx.TE_PROCESS_ENTER) 2898 2899 auth.Bind(wx.EVT_TEXT_ENTER,OnAuthor) 2899 2900 auth.Bind(wx.EVT_KILL_FOCUS,OnAuthor) … … 2901 2902 return authSizer 2902 2903 2903 2904 if G2frame.dataDisplay: 2905 G2frame.dataDisplay.Destroy() 2906 if not G2frame.dataFrame.GetStatusBar(): 2907 Status = G2frame.dataFrame.CreateStatusBar() 2904 if 'SVD' in data['deriv type']: 2905 G2frame.GetStatusBar().SetStatusText('Hessian SVD not recommended for initial refinements; use analytic Hessian or Jacobian') 2908 2906 else: 2909 Status = G2frame.dataFrame.GetStatusBar() 2910 if 'SVD' in data['deriv type']: 2911 Status.SetStatusText('Hessian SVD not recommended for initial refinements; use analytic Hessian or Jacobian') 2912 else: 2913 Status.SetStatusText('') 2914 G2frame.dataFrame.SetLabel('Controls') 2915 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 2916 SetDataMenuBar(G2frame,G2frame.dataFrame.ControlsMenu) 2907 G2frame.GetStatusBar().SetStatusText('') 2908 G2frame.dataWindow.ClearData() 2909 G2frame.dataWindow.SetupScrolling() 2910 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Controls') 2911 SetDataMenuBar(G2frame,G2frame.dataWindow.ControlsMenu) 2917 2912 mainSizer = wx.BoxSizer(wx.VERTICAL) 2918 2913 mainSizer.Add((5,5),0) 2919 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Refinement Controls:'),0,WACV)2914 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Refinement Controls:'),0,WACV) 2920 2915 mainSizer.Add(LSSizer()) 2921 2916 mainSizer.Add((5,5),0) … … 2925 2920 mainSizer.Add((5,5),0) 2926 2921 2927 mainSizer.Layout() 2928 G2frame.dataDisplay.SetSizer(mainSizer) 2929 G2frame.dataFrame.setSizePosLeft(mainSizer.Fit(G2frame.dataFrame)) 2922 mainSizer.Layout() 2923 mainSizer.FitInside(G2frame.dataWindow) 2924 G2frame.dataWindow.SetSizer(mainSizer) 2925 G2frame.dataWindow.SetAutoLayout(1) 2926 G2frame.SetDataSize() 2930 2927 2931 ################################################################################2932 ##### Comments2933 ################################################################################2934 2935 def UpdateComments(G2frame,data):2936 2937 if G2frame.dataDisplay:2938 G2frame.dataDisplay.Destroy()2939 G2frame.dataFrame.SetLabel('Comments')2940 G2frame.dataDisplay = wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(),2941 style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_DONTWRAP)2942 for line in data:2943 if '\n' not in line:2944 G2frame.dataDisplay.AppendText(line+'\n')2945 else:2946 G2frame.dataDisplay.AppendText(line)2947 G2frame.dataFrame.setSizePosLeft([400,250])2948 2949 2928 ################################################################################ 2950 2929 ##### Display of Sequential Results … … 3234 3213 else: 3235 3214 val = False 3236 G2frame.data Frame.SequentialPvars.Enable(wxDELSEQVAR,val)3237 G2frame.data Frame.SequentialPvars.Enable(wxEDITSEQVAR,val)3215 G2frame.dataWindow.SequentialPvars.Enable(wxDELSEQVAR,val) 3216 G2frame.dataWindow.SequentialPvars.Enable(wxEDITSEQVAR,val) 3238 3217 3239 3218 def DelPseudoVar(event): … … 3752 3731 if G2frame.dataDisplay: 3753 3732 G2frame.dataDisplay.Destroy() 3754 if not G2frame.dataFrame.GetStatusBar(): 3755 Status = G2frame.dataFrame.CreateStatusBar() 3756 Status.SetStatusText("Select column to export; Double click on column to plot data; on row for Covariance") 3733 G2frame.GetStatusBar().SetStatusText("Select column to export; Double click on column to plot data; on row for Covariance") 3757 3734 sampleParms = GetSampleParms() 3758 3735 … … 3809 3786 initialCell[str(pId)+'::A'+str(i)] = RecpCellTerms[pId][i] 3810 3787 3811 SetDataMenuBar(G2frame,G2frame.dataFrame.SequentialMenu) 3812 G2frame.dataFrame.SetLabel('Sequential refinement results') 3813 if not G2frame.dataFrame.GetStatusBar(): 3814 Status = G2frame.dataFrame.CreateStatusBar() 3815 Status.SetStatusText('') 3788 SetDataMenuBar(G2frame,G2frame.dataWindow.SequentialMenu) 3789 G2frame.dataFrame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Sequential refinement results') 3790 G2frame.GetStatusBar().SetStatusText('') 3816 3791 G2frame.dataFrame.Bind(wx.EVT_MENU, OnRenameSelSeq, id=wxID_RENAMESEQSEL) 3817 3792 G2frame.dataFrame.Bind(wx.EVT_MENU, OnSaveSelSeq, id=wxID_SAVESEQSEL) … … 4147 4122 del G2frame.colSigs[l] 4148 4123 4124 G2frame.dataWindow.ClearData() 4149 4125 G2frame.dataFrame.currentGrids = [] 4150 G2frame.dataDisplay = G2G.GSGrid(parent=G2frame.dataFrame) 4126 G2frame.dataDisplay = G2G.GSGrid(parent=G2frame.dataWindow) 4127 G2frame.dataDisplay.SetSize(G2frame.dataWindow.GetSize()) 4151 4128 G2frame.SeqTable = G2G.Table([list(cl) for cl in zip(*G2frame.colList)], # convert from columns to rows 4152 4129 colLabels=colLabels,rowLabels=histNames,types=Types) … … 4162 4139 G2frame.dataDisplay.SetMargins(0,0) 4163 4140 G2frame.dataDisplay.AutoSizeColumns(False) 4164 if prevSize:4165 G2frame.dataFrame.setSizePosLeft(prevSize)4166 else:4167 G2frame.dataFrame.setSizePosLeft([700,350])4168 4141 # highlight unconverged shifts 4169 4142 if histNames[0][:4] not in ['SASD','IMG ','REFD',]: … … 4378 4351 4379 4352 data = G2frame.PatternTree.GetItemPyData(item) 4353 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+G2frame.PatternTree.GetItemText(item)) 4380 4354 #patches 4381 4355 if not data: … … 4394 4368 G2frame.PatternTree.SetItemPyData(item,data) 4395 4369 #end patches 4396 if G2frame.dataDisplay:4397 G2frame.dataDisplay.Destroy()4398 4370 if kind in ['PWDR','SASD','REFD']: 4399 SetDataMenuBar(G2frame,G2frame.data Frame.PWDRMenu)4400 G2frame. dataFrame.Bind(wx.EVT_MENU, OnErrorAnalysis, id=wxID_PWDANALYSIS)4401 G2frame. dataFrame.Bind(wx.EVT_MENU, onCopySelectedItems, id=wxID_PWDCOPY)4402 G2frame. dataFrame.Bind(wx.EVT_MENU, onCopyPlotCtrls, id=wxID_PLOTCTRLCOPY)4371 SetDataMenuBar(G2frame,G2frame.dataWindow.PWDRMenu) 4372 G2frame.Bind(wx.EVT_MENU, OnErrorAnalysis, id=wxID_PWDANALYSIS) 4373 G2frame.Bind(wx.EVT_MENU, onCopySelectedItems, id=wxID_PWDCOPY) 4374 G2frame.Bind(wx.EVT_MENU, onCopyPlotCtrls, id=wxID_PLOTCTRLCOPY) 4403 4375 elif kind in ['HKLF',]: 4404 SetDataMenuBar(G2frame,G2frame.dataFrame.HKLFMenu) 4405 G2frame.dataFrame.Bind(wx.EVT_MENU, OnErrorAnalysis, id=wxID_PWDANALYSIS) 4406 G2frame.dataFrame.Bind(wx.EVT_MENU, OnMergeHKL, id=wxID_MERGEHKL) 4407 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPlot3DHKL, id=wxID_PWD3DHKLPLOT) 4408 G2frame.dataFrame.Bind(wx.EVT_MENU, OnPlotAll3DHKL, id=wxID_3DALLHKLPLOT) 4409 # G2frame.dataFrame.Bind(wx.EVT_MENU, onCopySelectedItems, id=wxID_PWDCOPY) 4410 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 4376 SetDataMenuBar(G2frame,G2frame.dataWindow.HKLFMenu) 4377 G2frame.Bind(wx.EVT_MENU, OnErrorAnalysis, id=wxID_PWDANALYSIS) 4378 G2frame.Bind(wx.EVT_MENU, OnMergeHKL, id=wxID_MERGEHKL) 4379 G2frame.Bind(wx.EVT_MENU, OnPlot3DHKL, id=wxID_PWD3DHKLPLOT) 4380 G2frame.Bind(wx.EVT_MENU, OnPlotAll3DHKL, id=wxID_3DALLHKLPLOT) 4411 4381 4382 G2frame.dataWindow.ClearData() 4412 4383 mainSizer = wx.BoxSizer(wx.VERTICAL) 4413 4384 mainSizer.Add((5,5),) 4414 4385 wtSizer = wx.BoxSizer(wx.HORIZONTAL) 4415 wtSizer.Add(wx.StaticText(G2frame.data Display,-1,' Weight factor: '),0,WACV)4416 wtval = G2G.ValidatedTxtCtrl(G2frame.data Display,data[0],'wtFactor',nDig=(10,3),min=1.e-9)4386 wtSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Weight factor: '),0,WACV) 4387 wtval = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data[0],'wtFactor',nDig=(10,3),min=1.e-9) 4417 4388 wtSizer.Add(wtval,0,WACV) 4418 4389 # if kind == 'PWDR': #possible future compression feature; NB above patch as well 4419 # wtSizer.Add(wx.StaticText(G2frame.data Display,-1,' Compression factor: '),0,WACV)4390 # wtSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Compression factor: '),0,WACV) 4420 4391 # choice = ['1','2','3','4','5','6'] 4421 # comp = wx.ComboBox(parent=G2frame.data Display,choices=choice,4392 # comp = wx.ComboBox(parent=G2frame.dataWindow,choices=choice, 4422 4393 # style=wx.CB_READONLY|wx.CB_DROPDOWN) 4423 4394 # comp.SetValue(str(data[0]['Compression'])) … … 4435 4406 lbl += u'\n(Edit range resets observed intensities).' 4436 4407 lbl = lbl.format(Tmin,Tmax,t,step,num) 4437 simSizer.Add(wx.StaticText(G2frame.data Display,wx.ID_ANY,lbl),4408 simSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,lbl), 4438 4409 0,WACV) 4439 but = wx.Button(G2frame.data Display,wx.ID_ANY,"Edit range")4410 but = wx.Button(G2frame.dataWindow,wx.ID_ANY,"Edit range") 4440 4411 but.Bind(wx.EVT_BUTTON,onEditSimRange) 4441 4412 simSizer.Add(but,0,WACV) 4442 4413 mainSizer.Add(simSizer) 4443 4414 if 'Nobs' in data[0]: 4444 mainSizer.Add(wx.StaticText(G2frame.data Display,-1,4415 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1, 4445 4416 ' Data residual wR: %.3f%% on %d observations'%(data[0]['wR'],data[0]['Nobs']))) 4446 4417 if kind == 'PWDR': 4447 mainSizer.Add(wx.StaticText(G2frame.data Display,-1,4418 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1, 4448 4419 ' Durbin-Watson statistic: %.3f'%(data[0].get('Durbin-Watson',0.)))) 4449 4420 for value in data[0]: … … 4453 4424 if 'SS' in value: 4454 4425 mainSizer.Add((5,5),) 4455 mainSizer.Add(wx.StaticText(G2frame.data Display,-1,' For incommensurate phase '+name+':'))4426 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' For incommensurate phase '+name+':')) 4456 4427 for m,(Rf2,Rf,Nobs) in enumerate(zip(data[0][pfx+'Rf^2'],data[0][pfx+'Rf'],data[0][value])): 4457 mainSizer.Add(wx.StaticText(G2frame.data Display,-1,4428 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1, 4458 4429 u' m = +/- %d: RF\u00b2: %.3f%%, RF: %.3f%% on %d reflections '% \ 4459 4430 (m,Rf2,Rf,Nobs))) 4460 4431 else: 4461 4432 mainSizer.Add((5,5),) 4462 mainSizer.Add(wx.StaticText(G2frame.data Display,-1,' For phase '+name+':'))4463 mainSizer.Add(wx.StaticText(G2frame.data Display,-1,4433 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' For phase '+name+':')) 4434 mainSizer.Add(wx.StaticText(G2frame.dataWindow,-1, 4464 4435 u' Unweighted phase residuals RF\u00b2: %.3f%%, RF: %.3f%% on %d reflections '% \ 4465 4436 (data[0][pfx+'Rf^2'],data[0][pfx+'Rf'],data[0][value]))) … … 4467 4438 mainSizer.Add((5,5),) 4468 4439 mainSizer.Layout() 4469 G2frame.data Display.SetSizer(mainSizer)4470 Size = mainSizer.Fit(G2frame.dataFrame)4471 Size[1] += 104472 G2frame.dataFrame.setSizePosLeft(Size)4440 G2frame.dataWindow.SetSizer(mainSizer) 4441 mainSizer.Fit(G2frame.dataWindow) 4442 G2frame.SetDataSize() 4443 4473 4444 G2frame.PatternTree.SetItemPyData(item,data) 4474 4445 G2frame.PatternId = item … … 4583 4554 if G2frame.dataDisplay: 4584 4555 oldPage = G2frame.dataDisplay.GetSelection() 4585 G2frame.dataFrame.Clear() 4586 G2frame.dataFrame.SetLabel('') 4587 else: 4588 #create the frame for the data item window 4589 G2frame.dataFrame = DataFrame(parent=G2frame.mainPanel,frame=G2frame) 4590 G2frame.dataFrame.PhaseUserSize = None 4556 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'') 4591 4557 4592 4558 SetDataMenuBar(G2frame) 4593 G2frame.dataFrame.currentGrids = [] # this will contain pointers to a grid placed in the frame4594 4559 G2frame.PickId = item 4595 4560 G2frame.PickIdText = None 4596 4561 parentID = G2frame.root 4597 #for i in G2frame.ExportPattern: i.Enable(False)4598 defWid = [250,150]4599 4562 if item == G2frame.root: 4600 G2frame.dataFrame.helpKey = "Data tree" 4601 G2frame.dataFrame.setSizePosLeft(defWid) 4602 wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(), 4563 G2frame.helpKey = "Data tree" 4564 wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.GetClientSize(), 4603 4565 value='Select an item from the tree to see/edit parameters') 4604 G2frame.dataFrame.Raise()4605 4566 return 4606 4567 else: 4607 parentID = G2frame.PatternTree.GetItemParent(item) 4608 # save name of calling tree item for help. N.B. may want to override this later 4609 prfx = G2frame.PatternTree.GetItemText(item).split()[0] 4610 prfx1 = G2frame.PatternTree.GetItemText(parentID).split()[0] 4611 if prfx in ('IMG','PKS','PWDR','SASD','HKLF','PDF','refd',): 4612 G2frame.dataFrame.helpKey = prfx 4613 elif prfx1 in ('IMG','PKS','PWDR','SASD','HKLF','PDF','REFD',): 4614 suffix = G2frame.PatternTree.GetItemText(item) 4615 suffix1 = suffix.split()[0] 4616 if '(Q)' in suffix1 or '(R)' in suffix1: suffix = suffix1 4617 G2frame.dataFrame.helpKey = prfx1 + '_' + suffix 4618 else: 4619 G2frame.dataFrame.helpKey = G2frame.PatternTree.GetItemText(item) # save name of calling tree item for help 4568 try: #don't know why here when opening new project from inside phase data! 4569 parentID = G2frame.PatternTree.GetItemParent(item) 4570 # save name of calling tree item for help. N.B. may want to override this later 4571 prfx = G2frame.PatternTree.GetItemText(item).split()[0] 4572 prfx1 = G2frame.PatternTree.GetItemText(parentID).split()[0] 4573 if prfx in ('IMG','PKS','PWDR','SASD','HKLF','PDF','refd',): 4574 G2frame.dataFrame.helpKey = prfx 4575 elif prfx1 in ('IMG','PKS','PWDR','SASD','HKLF','PDF','REFD',): 4576 suffix = G2frame.PatternTree.GetItemText(item) 4577 suffix1 = suffix.split()[0] 4578 if '(Q)' in suffix1 or '(R)' in suffix1: suffix = suffix1 4579 G2frame.dataFrame.helpKey = prfx1 + '_' + suffix 4580 else: 4581 G2frame.dataFrame.helpKey = G2frame.PatternTree.GetItemText(item) # save name of calling tree item for help 4582 except IndexError: 4583 print 'bug: why here?' 4584 return 4620 4585 if G2frame.PatternTree.GetItemParent(item) == G2frame.root: 4621 4586 G2frame.PatternId = 0 4622 4587 if G2frame.PatternTree.GetItemText(item) == 'Notebook': 4623 SetDataMenuBar(G2frame,G2frame.dataFrame.DataNotebookMenu) 4624 #for i in G2frame.ExportPattern: i.Enable(False) 4588 SetDataMenuBar(G2frame,G2frame.dataWindow.DataNotebookMenu) 4625 4589 data = G2frame.PatternTree.GetItemPyData(item) 4626 4590 UpdateNotebook(G2frame,data) 4627 4591 elif G2frame.PatternTree.GetItemText(item) == 'Controls': 4628 #for i in G2frame.ExportPattern: i.Enable(False)4629 4592 data = G2frame.PatternTree.GetItemPyData(item) 4630 4593 if not data: #fill in defaults … … 4640 4603 elif G2frame.PatternTree.GetItemText(item) == 'Covariance': 4641 4604 data = G2frame.PatternTree.GetItemPyData(item) 4642 G2frame.dataFrame.setSizePosLeft(defWid)4643 4605 text = '' 4644 4606 if 'Rvals' in data: … … 4650 4612 if 'lamMax' in Rvals: 4651 4613 text += '\nlog10 MaxLambda = %.1f'%(np.log10(Rvals['lamMax'])) 4652 wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(), 4614 G2frame.dataWindow.ClearData() 4615 wx.TextCtrl(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetSize(), 4653 4616 value='See plot window for covariance display'+text,style=wx.TE_MULTILINE) 4654 4617 G2plt.PlotCovariance(G2frame,data) … … 4665 4628 if Phases: 4666 4629 phaseName = Phases.keys()[0] 4667 G2frame.dataFrame.setSizePosLeft(defWid)4668 4630 G2restG.UpdateRestraints(G2frame,data,Phases,phaseName) 4669 4631 elif G2frame.PatternTree.GetItemText(item).startswith('IMG '): 4670 4632 G2frame.Image = item 4671 G2frame. dataFrame.SetTitle('Image Data')4633 G2frame.SetTitle('Image Data') 4672 4634 data = G2frame.PatternTree.GetItemPyData(GetPatternTreeItemId( 4673 4635 G2frame,item,'Image Controls')) … … 4702 4664 G2plt.PlotISFG(G2frame,data,plotType='G(R)') 4703 4665 elif G2frame.PatternTree.GetItemText(item) == 'Phases': 4704 G2frame.dataFrame.setSizePosLeft(defWid)4705 4666 wx.TextCtrl(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(), 4706 4667 value='Select one phase to see its parameters') … … 4727 4688 G2phG.UpdatePhaseData(G2frame,item,data,oldPage) 4728 4689 elif G2frame.PatternTree.GetItemText(item) == 'Comments': 4729 SetDataMenuBar(G2frame,G2frame.data Frame.DataCommentsMenu)4690 SetDataMenuBar(G2frame,G2frame.dataWindow.DataCommentsMenu) 4730 4691 G2frame.PatternId = G2frame.PatternTree.GetItemParent(item) 4731 4692 data = G2frame.PatternTree.GetItemPyData(item) 4732 4693 UpdateComments(G2frame,data) 4733 4694 elif G2frame.PatternTree.GetItemText(item) == 'Image Controls': 4734 G2frame. dataFrame.SetTitle('Image Controls')4695 G2frame.SetTitle('Image Controls') 4735 4696 G2frame.Image = G2frame.PatternTree.GetItemParent(item) 4736 4697 masks = G2frame.PatternTree.GetItemPyData( … … 4741 4702 G2plt.PlotImage(G2frame,newPlot=False) 4742 4703 elif G2frame.PatternTree.GetItemText(item) == 'Masks': 4743 G2frame. dataFrame.SetTitle('Masks')4704 G2frame.SetTitle('Masks') 4744 4705 G2frame.Image = G2frame.PatternTree.GetItemParent(item) 4745 4706 masks = G2frame.PatternTree.GetItemPyData(item) … … 4750 4711 G2plt.PlotImage(G2frame,newPlot=False) 4751 4712 elif G2frame.PatternTree.GetItemText(item) == 'Stress/Strain': 4752 G2frame. dataFrame.SetTitle('Stress/Strain')4713 G2frame.SetTitle('Stress/Strain') 4753 4714 G2frame.Image = G2frame.PatternTree.GetItemParent(item) 4754 4715 data = G2frame.PatternTree.GetItemPyData( … … 4865 4826 if G2frame.PickId: 4866 4827 G2frame.PickIdText = G2frame.GetTreeItemsList(G2frame.PickId) 4867 G2frame. dataFrame.Raise()4828 G2frame.Raise() 4868 4829 if oldFocus: 4869 4830 oldFocus.GetTopLevelParent().Raise() … … 4871 4832 4872 4833 def SetDataMenuBar(G2frame,menu=None): 4873 '''Set the menu for the data frame. On the Mac put this 4874 menu for the data tree window instead. 4834 '''Set the menu for the data frame. 4875 4835 4876 4836 Note that data frame items do not have menus, for these (menu=None) 4877 display a blank menu or on the Mac display the standard menu for 4878 the data tree window. 4837 display the standard main menu for the data tree window. 4879 4838 ''' 4880 if sys.platform == "darwin": 4881 if menu is None: 4882 G2frame.SetMenuBar(G2frame.GSASIIMenu) 4883 else: 4884 G2frame.SetMenuBar(menu) 4839 if menu is None: 4840 G2frame.SetMenuBar(G2frame.GSASIIMenu) 4885 4841 else: 4886 if menu is None: 4887 G2frame.dataFrame.SetMenuBar(G2frame.dataFrame.BlankMenu) 4888 else: 4889 G2frame.dataFrame.SetMenuBar(menu) 4842 G2frame.SetMenuBar(menu) 4890 4843 4891 4844 def HowDidIgetHere(): -
branch/2frame/GSASIIimgGUI.py
r2863 r2888 22 22 import sys 23 23 import wx 24 import wx.lib.scrolledpanel as wxscroll25 24 import wx.lib.mixins.listctrl as listmix 26 25 import matplotlib as mpl … … 106 105 G2plt.PlotExposedImage(G2frame,newPlot=True,event=tc.event) 107 106 108 if G2frame.dataDisplay: 109 G2frame.dataDisplay.Destroy() 110 if not G2frame.dataFrame.GetStatusBar(): 111 G2frame.dataFrame.CreateStatusBar() 112 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 107 # G2frame.dataWindow = wx.Panel(G2frame.dataFrame) 113 108 G2frame.ImageZ = GetImageZ(G2frame,data) 114 109 mainSizer = wx.BoxSizer(wx.VERTICAL) 115 mainSizer.Add(wx.StaticText(G2frame.data Display,110 mainSizer.Add(wx.StaticText(G2frame.dataWindow, 116 111 label='Do not change anything here unless you are absolutely sure!'),0,WACV) 117 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Image size: %d by %d'%(data['size'][0],data['size'][1])),0,WACV)112 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Image size: %d by %d'%(data['size'][0],data['size'][1])),0,WACV) 118 113 pixSize = wx.FlexGridSizer(0,4,5,5) 119 114 pixLabels = [u' Pixel X-dimension (\xb5m)',u' Pixel Y-dimension (\xb5m)'] 120 115 for i,[pixLabel,pix] in enumerate(zip(pixLabels,data['pixelSize'])): 121 pixSize.Add(wx.StaticText(G2frame.data Display,label=pixLabel),0,WACV)122 pixVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data['pixelSize'],i,nDig=(10,3),116 pixSize.Add(wx.StaticText(G2frame.dataWindow,label=pixLabel),0,WACV) 117 pixVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['pixelSize'],i,nDig=(10,3), 123 118 typeHint=float,OnLeave=OnPixVal) 124 119 pixSize.Add(pixVal,0,WACV) 125 120 mainSizer.Add(pixSize,0) 126 121 distSizer = wx.BoxSizer(wx.HORIZONTAL) 127 distSizer.Add(wx.StaticText(G2frame.data Display,label=' Set detector distance: '),0,WACV)122 distSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Set detector distance: '),0,WACV) 128 123 if 'setdist' not in data: 129 124 data['setdist'] = data['distance'] 130 distSizer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data,'setdist',nDig=(10,4),125 distSizer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'setdist',nDig=(10,4), 131 126 typeHint=float),0,WACV) 132 distSizer.Add(wx.StaticText(G2frame.data Display,label=' Polarization: '),0,WACV)127 distSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Polarization: '),0,WACV) 133 128 if 'PolaVal' not in data: #patch 134 129 data['PolaVal'] = [0.99,False] 135 distSizer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['PolaVal'],0,nDig=(10,4),130 distSizer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['PolaVal'],0,nDig=(10,4), 136 131 min=0.,max=1.,typeHint=float),0,WACV) 137 132 mainSizer.Add(distSizer,0) 138 133 mainSizer.Layout() 139 G2frame.data Display.SetSizer(mainSizer)140 fitSize =mainSizer.Fit(G2frame.dataFrame)141 G2frame. dataFrame.setSizePosLeft(fitSize)134 G2frame.dataWindow.SetSizer(mainSizer) 135 mainSizer.Fit(G2frame.dataFrame) 136 G2frame.SetDataSize() 142 137 143 138 ################################################################################ … … 583 578 584 579 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 585 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Type of image data: '),0,WACV)586 typeSel = wx.ComboBox(parent=G2frame.data Display,value=typeDict[data['type']],choices=typeList,580 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Type of image data: '),0,WACV) 581 typeSel = wx.ComboBox(parent=G2frame.dataWindow,value=typeDict[data['type']],choices=typeList, 587 582 style=wx.CB_READONLY|wx.CB_DROPDOWN) 588 583 typeSel.SetValue(data['type']) 589 584 typeSel.Bind(wx.EVT_COMBOBOX, OnDataType) 590 585 comboSizer.Add(typeSel,0,WACV) 591 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Color bar '),0,WACV)592 colSel = wx.ComboBox(parent=G2frame.data Display,value=data['color'],choices=colorList,586 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Color bar '),0,WACV) 587 colSel = wx.ComboBox(parent=G2frame.dataWindow,value=data['color'],choices=colorList, 593 588 style=wx.CB_READONLY|wx.CB_DROPDOWN) 594 589 colSel.Bind(wx.EVT_COMBOBOX, OnNewColorBar) 595 590 comboSizer.Add(colSel,0,WACV) 596 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Azimuth offset '),0,WACV)597 azmthOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'azmthOff',nDig=(10,2),591 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Azimuth offset '),0,WACV) 592 azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'azmthOff',nDig=(10,2), 598 593 typeHint=float,OnLeave=OnAzmthOff) 599 594 comboSizer.Add(azmthOff,0,WACV) … … 712 707 maxSizer = wx.GridBagSizer(0,0) 713 708 r = c = 0 714 maxSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Max intensity'),(r,c))709 maxSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Max intensity'),(r,c)) 715 710 c += 1 716 711 # maxSel is a slider with 101 steps scaled from Imin+1 to Imax0 with sqrt scaling … … 720 715 sqrtDeltOne = math.sqrt(max(1.0,Range[1][1]-max(0.0,Range[1][0])-1)) # sqrt(Imax-Imin-1) 721 716 sv1 = min(100,max(0,int(0.5+100.*sqrtDeltOne/sqrtDeltZero))) 722 maxSel = wx.Slider(parent=G2frame.data Display,style=wx.SL_HORIZONTAL,value=sv1,size=(300,-1))717 maxSel = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL,value=sv1,size=(300,-1)) 723 718 maxSizer.Add(maxSel,(r,c),flag=wx.EXPAND) 724 719 maxSizer.AddGrowableCol(c) 725 720 c += 1 726 721 maxSel.Bind(wx.EVT_SLIDER, OnMaxSlider) 727 maxVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Range[1],1,min=Range[0][0]+1,722 maxVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Range[1],1,min=Range[0][0]+1, 728 723 max=Range[0][1],typeHint=int,OnLeave=OnNewVal) 729 724 maxSizer.Add(maxVal,(r,c)) 730 725 c += 1 731 726 scaleChoices = ("100%","99%","95%","90%","80%","?") 732 scaleSel = wx.Choice(G2frame.data Display,choices=scaleChoices,size=(-1,-1))727 scaleSel = wx.Choice(G2frame.dataWindow,choices=scaleChoices,size=(-1,-1)) 733 728 if (Range[1][0] == Range[0][0] and 734 729 Range[1][1] == Range[0][1]): … … 740 735 c = 0 741 736 r = 1 742 maxSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Min intensity'),(r,c))737 maxSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Min intensity'),(r,c)) 743 738 c += 1 744 739 # minSel is a slider with 101 steps scaled from Imin0 to Imax-1 with linear scaling … … 747 742 DeltOne = max(1.0,Range[1][1]-max(0.0,Range[0][0])-1) # Imax-Imin0-1 748 743 sv0 = min(100,max(0,int(0.5+100.*(Range[1][0]-Range[0][0])/DeltOne))) 749 minSel = wx.Slider(parent=G2frame.data Display,style=wx.SL_HORIZONTAL,value=sv0,size=(300,-1))744 minSel = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL,value=sv0,size=(300,-1)) 750 745 maxSizer.Add(minSel,(r,c),flag=wx.EXPAND|wx.ALL) 751 746 c += 1 752 747 minSel.Bind(wx.EVT_SLIDER, OnMinSlider) 753 minVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Range[1],0,748 minVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Range[1],0, 754 749 max=Range[0][1],typeHint=int,OnLeave=OnNewVal) 755 750 maxSizer.Add(minVal,(r,c)) … … 765 760 calibSizer = wx.FlexGridSizer(0,2,5,5) 766 761 calibSizer.SetFlexibleDirection(wx.HORIZONTAL) 767 calibSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Calibration coefficients'),0,WACV)762 calibSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Calibration coefficients'),0,WACV) 768 763 calibSizer.Add((5,0),0) 769 764 Names = ['det-X','det-Y','wave','dist','tilt','phi'] … … 775 770 'wave':['Wavelength',(10,6),data,'wavelength']} 776 771 for name in Names: 777 calSel = wx.CheckBox(parent=G2frame.data Display,label=Parms[name][0])772 calSel = wx.CheckBox(parent=G2frame.dataWindow,label=Parms[name][0]) 778 773 calibSizer.Add(calSel,0,WACV) 779 774 calSel.Bind(wx.EVT_CHECKBOX, OnCalRef) … … 781 776 Indx[calSel] = name 782 777 if name == 'wave': 783 calVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Parms[name][2],778 calVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Parms[name][2], 784 779 Parms[name][3],min=0.01,max=10.,nDig=Parms[name][1],typeHint=float) 785 780 elif name == 'dep': 786 calVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Parms[name][2],781 calVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Parms[name][2], 787 782 Parms[name][3],min=0.0,max=0.2,nDig=Parms[name][1],typeHint=float) 788 783 else: 789 calVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Parms[name][2],784 calVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Parms[name][2], 790 785 Parms[name][3],nDig=Parms[name][1],typeHint=float) 791 786 calibSizer.Add(calVal,0,WACV) … … 871 866 872 867 dataSizer = wx.FlexGridSizer(0,2,5,3) 873 dataSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Integration coefficients'),0,WACV)868 dataSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Integration coefficients'),0,WACV) 874 869 dataSizer.Add((5,0),0) 875 870 if 'PWDR' in data['type']: … … 877 872 elif 'SASD' in data['type']: 878 873 binChoice = ['2-theta','Q','log(q)'] 879 dataSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Bin style: Constant step bins in'),0,WACV)880 binSel = wx.ComboBox(parent=G2frame.data Display,value=data['binType'],choices=binChoice,874 dataSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Bin style: Constant step bins in'),0,WACV) 875 binSel = wx.ComboBox(parent=G2frame.dataWindow,value=data['binType'],choices=binChoice, 881 876 style=wx.CB_READONLY|wx.CB_DROPDOWN) 882 877 binSel.Bind(wx.EVT_COMBOBOX, OnNewBinType) … … 885 880 if 'q' in data['binType'].lower(): 886 881 binType = 'Q' 887 dataSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Inner/Outer '+binType),0,WACV)882 dataSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Inner/Outer '+binType),0,WACV) 888 883 IOtth = data['IOtth'][:] 889 884 if 'q' in data['binType'].lower(): … … 891 886 IOtth = [4.*math.pi*sind(IOtth[0]/2.)/wave,4.*math.pi*sind(IOtth[1]/2.)/wave] 892 887 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 893 G2frame.InnerTth = G2G.ValidatedTxtCtrl(G2frame.data Display,IOtth,0,nDig=(8,3,'f'),min=0.001,typeHint=float,OnLeave=OnIOtth)888 G2frame.InnerTth = G2G.ValidatedTxtCtrl(G2frame.dataWindow,IOtth,0,nDig=(8,3,'f'),min=0.001,typeHint=float,OnLeave=OnIOtth) 894 889 littleSizer.Add(G2frame.InnerTth,0,WACV) 895 G2frame.OuterTth = G2G.ValidatedTxtCtrl(G2frame.data Display,IOtth,1,nDig=(8,3,'f'),min=0.001,typeHint=float,OnLeave=OnIOtth)890 G2frame.OuterTth = G2G.ValidatedTxtCtrl(G2frame.dataWindow,IOtth,1,nDig=(8,3,'f'),min=0.001,typeHint=float,OnLeave=OnIOtth) 896 891 littleSizer.Add(G2frame.OuterTth,0,WACV) 897 892 dataSizer.Add(littleSizer,0,) 898 dataSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Start/End azimuth'),0,WACV)893 dataSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Start/End azimuth'),0,WACV) 899 894 LRazim = data['LRazimuth'] 900 895 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 901 G2frame.Lazim = G2G.ValidatedTxtCtrl(G2frame.data Display,LRazim,0,nDig=(6,1,'f'),typeHint=float,OnLeave=OnLRazim)896 G2frame.Lazim = G2G.ValidatedTxtCtrl(G2frame.dataWindow,LRazim,0,nDig=(6,1,'f'),typeHint=float,OnLeave=OnLRazim) 902 897 littleSizer.Add(G2frame.Lazim,0,WACV) 903 G2frame.Razim = G2G.ValidatedTxtCtrl(G2frame.data Display,LRazim,1,nDig=(6,1,'f'),typeHint=float,OnLeave=OnLRazim)898 G2frame.Razim = G2G.ValidatedTxtCtrl(G2frame.dataWindow,LRazim,1,nDig=(6,1,'f'),typeHint=float,OnLeave=OnLRazim) 904 899 if data['fullIntegrate']: 905 900 G2frame.Razim.Enable(False) … … 908 903 littleSizer.Add(G2frame.Razim,0,WACV) 909 904 dataSizer.Add(littleSizer,0,) 910 dataSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' No. 2-theta/azimuth bins'),0,WACV)905 dataSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' No. 2-theta/azimuth bins'),0,WACV) 911 906 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 912 outChan = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'outChannels',typeHint=int,min=10)907 outChan = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'outChannels',typeHint=int,min=10) 913 908 littleSizer.Add(outChan,0,WACV) 914 outAzim = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'outAzimuths',nDig=(10,4),min=1,typeHint=int,OnLeave=OnNumOutAzms)909 outAzim = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'outAzimuths',nDig=(10,4),min=1,typeHint=int,OnLeave=OnNumOutAzms) 915 910 littleSizer.Add(outAzim,0,WACV) 916 911 dataSizer.Add(littleSizer,0,) 917 912 samplechoice = ['Cylinder','Fixed flat plate',] 918 dataSizer.Add(wx.StaticText(G2frame.data Display,label='Select sample shape'),0,WACV)919 samShape = wx.ComboBox(G2frame.data Display,value=data['SampleShape'],choices=samplechoice,913 dataSizer.Add(wx.StaticText(G2frame.dataWindow,label='Select sample shape'),0,WACV) 914 samShape = wx.ComboBox(G2frame.dataWindow,value=data['SampleShape'],choices=samplechoice, 920 915 style=wx.CB_READONLY|wx.CB_DROPDOWN) 921 916 samShape.Bind(wx.EVT_COMBOBOX,OnSampleShape) … … 923 918 #SampleShape - cylinder or flat plate choice? 924 919 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 925 samabs = wx.CheckBox(parent=G2frame.data Display,label='Apply sample absorption?')920 samabs = wx.CheckBox(parent=G2frame.dataWindow,label='Apply sample absorption?') 926 921 dataSizer.Add(samabs,0,WACV) 927 922 samabs.Bind(wx.EVT_CHECKBOX, OnSamAbs) … … 929 924 minmax = [0.,2.] 930 925 if 'Cylind' in data['SampleShape']: #cylinder mu*R; flat plate transmission 931 littleSizer.Add(wx.StaticText(G2frame.data Display,label='mu*R (0.00-2.0) '),0,WACV)926 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label='mu*R (0.00-2.0) '),0,WACV) 932 927 elif 'Fixed' in data['SampleShape']: 933 littleSizer.Add(wx.StaticText(G2frame.data Display,label='transmission '),0,WACV) #for flat plate928 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label='transmission '),0,WACV) #for flat plate 934 929 minmax = [.05,1.0] 935 samabsVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data['SampleAbs'],0,nDig=(10,3),930 samabsVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['SampleAbs'],0,nDig=(10,3), 936 931 typeHint=float,min=minmax[0],max=minmax[1]) 937 932 littleSizer.Add(samabsVal,0,WACV) … … 939 934 if 'PWDR' in data['type']: 940 935 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 941 oblique = wx.CheckBox(parent=G2frame.data Display,label='Apply detector absorption?')936 oblique = wx.CheckBox(parent=G2frame.dataWindow,label='Apply detector absorption?') 942 937 dataSizer.Add(oblique,0,WACV) 943 938 oblique.Bind(wx.EVT_CHECKBOX, OnOblique) 944 939 oblique.SetValue(data['Oblique'][1]) 945 littleSizer.Add(wx.StaticText(G2frame.data Display,label='Value (0.01-0.99) '),0,WACV)946 obliqVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Oblique'],0,nDig=(10,3),typeHint=float,min=0.01,max=0.99)940 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label='Value (0.01-0.99) '),0,WACV) 941 obliqVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Oblique'],0,nDig=(10,3),typeHint=float,min=0.01,max=0.99) 947 942 littleSizer.Add(obliqVal,0,WACV) 948 943 dataSizer.Add(littleSizer,0,) 949 944 if 'SASD' in data['type']: 950 945 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 951 setPolariz = wx.CheckBox(parent=G2frame.data Display,label='Apply polarization?')946 setPolariz = wx.CheckBox(parent=G2frame.dataWindow,label='Apply polarization?') 952 947 dataSizer.Add(setPolariz,0,WACV) 953 948 setPolariz.Bind(wx.EVT_CHECKBOX, OnApplyPola) 954 949 setPolariz.SetValue(data['PolaVal'][1]) 955 littleSizer.Add(wx.StaticText(G2frame.data Display,label='Value (0.001-0.999) '),0,WACV)956 polaVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data['PolaVal'],0,nDig=(10,3),typeHint=float,min=0.001,max=0.999)950 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label='Value (0.001-0.999) '),0,WACV) 951 polaVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['PolaVal'],0,nDig=(10,3),typeHint=float,min=0.001,max=0.999) 957 952 littleSizer.Add(polaVal,0,WACV) 958 953 dataSizer.Add(littleSizer,0,) 959 954 960 showLines = wx.CheckBox(parent=G2frame.data Display,label='Show integration limits?')955 showLines = wx.CheckBox(parent=G2frame.dataWindow,label='Show integration limits?') 961 956 dataSizer.Add(showLines,0,WACV) 962 957 showLines.Bind(wx.EVT_CHECKBOX, OnShowLines) 963 958 showLines.SetValue(data['showLines']) 964 fullIntegrate = wx.CheckBox(parent=G2frame.data Display,label='Do full integration?')959 fullIntegrate = wx.CheckBox(parent=G2frame.dataWindow,label='Do full integration?') 965 960 dataSizer.Add(fullIntegrate,0,WACV) 966 961 fullIntegrate.Bind(wx.EVT_CHECKBOX, OnFullIntegrate) 967 962 fullIntegrate.SetValue(data['fullIntegrate']) 968 setDefault = wx.CheckBox(parent=G2frame.data Display,label='Use for all new images?')963 setDefault = wx.CheckBox(parent=G2frame.dataWindow,label='Use for all new images?') 969 964 dataSizer.Add(setDefault,0,WACV) 970 965 setDefault.Bind(wx.EVT_CHECKBOX, OnSetDefault) 971 966 setDefault.SetValue(data['setDefault']) 972 centerAzm = wx.CheckBox(parent=G2frame.data Display,label='Azimuth at bin center?')967 centerAzm = wx.CheckBox(parent=G2frame.dataWindow,label='Azimuth at bin center?') 973 968 dataSizer.Add(centerAzm,0,WACV) 974 969 centerAzm.Bind(wx.EVT_CHECKBOX, OnCenterAzm) … … 1006 1001 oldFlat = data.get('Flat Bkg',0.) 1007 1002 1008 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' Dark image'),0,WACV)1003 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Dark image'),0,WACV) 1009 1004 Choices = ['',]+G2gd.GetPatternTreeDataNames(G2frame,['IMG ',]) 1010 1005 Source = G2frame.PatternTree.GetItemText(G2frame.Image) 1011 1006 Choices.pop(Choices.index(Source)) 1012 darkImage = wx.ComboBox(parent=G2frame.data Display,value=data['dark image'][0],choices=Choices,1007 darkImage = wx.ComboBox(parent=G2frame.dataWindow,value=data['dark image'][0],choices=Choices, 1013 1008 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1014 1009 darkImage.Bind(wx.EVT_COMBOBOX,OnDarkImage) 1015 1010 backSizer.Add(darkImage) 1016 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' multiplier'),0,WACV)1017 darkMult = G2G.ValidatedTxtCtrl(G2frame.data Display,data['dark image'],1,nDig=(10,3),1011 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' multiplier'),0,WACV) 1012 darkMult = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['dark image'],1,nDig=(10,3), 1018 1013 typeHint=float,OnLeave=OnMult) 1019 1014 backSizer.Add(darkMult,0,WACV) 1020 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' Flat Bkg: '),0,WACV)1021 flatbkg = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Flat Bkg',nDig=(10,0),1015 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Flat Bkg: '),0,WACV) 1016 flatbkg = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Flat Bkg',nDig=(10,0), 1022 1017 typeHint=float,OnLeave=OnFlatBkg) 1023 1018 backSizer.Add(flatbkg,0,WACV) 1024 1019 1025 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' Background image'),0,WACV)1026 backImage = wx.ComboBox(parent=G2frame.data Display,value=data['background image'][0],choices=Choices,1020 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Background image'),0,WACV) 1021 backImage = wx.ComboBox(parent=G2frame.dataWindow,value=data['background image'][0],choices=Choices, 1027 1022 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1028 1023 backImage.Bind(wx.EVT_COMBOBOX,OnBackImage) 1029 1024 backSizer.Add(backImage) 1030 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' multiplier'),0,WACV)1031 backMult = G2G.ValidatedTxtCtrl(G2frame.data Display,data['background image'],1,nDig=(10,3),1025 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' multiplier'),0,WACV) 1026 backMult = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['background image'],1,nDig=(10,3), 1032 1027 typeHint=float,OnLeave=OnMult) 1033 1028 backSizer.Add(backMult,0,WACV) … … 1066 1061 calibSizer = wx.FlexGridSizer(0,3,5,5) 1067 1062 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 1068 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Calibrant '),0,WACV)1069 calSel = wx.ComboBox(parent=G2frame.data Display,value=data['calibrant'],choices=calList,1063 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Calibrant '),0,WACV) 1064 calSel = wx.ComboBox(parent=G2frame.dataWindow,value=data['calibrant'],choices=calList, 1070 1065 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1071 1066 calSel.Bind(wx.EVT_COMBOBOX, OnNewCalibrant) … … 1074 1069 1075 1070 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 1076 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Calib lines to skip '),0,WACV)1077 calibSkip = wx.ComboBox(parent=G2frame.data Display,value=str(data['calibskip']),choices=[str(i) for i in range(25)],1071 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Calib lines to skip '),0,WACV) 1072 calibSkip = wx.ComboBox(parent=G2frame.dataWindow,value=str(data['calibskip']),choices=[str(i) for i in range(25)], 1078 1073 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1079 1074 calibSkip.Bind(wx.EVT_COMBOBOX, OnCalibSkip) … … 1082 1077 1083 1078 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 1084 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Min calib d-spacing '),0,WACV)1085 G2frame.calibDmin = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'calibdmin',nDig=(10,2),typeHint=float,min=0.25)1079 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Min calib d-spacing '),0,WACV) 1080 G2frame.calibDmin = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'calibdmin',nDig=(10,2),typeHint=float,min=0.25) 1086 1081 comboSizer.Add(G2frame.calibDmin,0,WACV) 1087 1082 calibSizer.Add(comboSizer,0) 1088 1083 1089 1084 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 1090 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Min ring I/Ib '),0,WACV)1091 cutOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'cutoff',nDig=(10,2),min=0.1)1085 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Min ring I/Ib '),0,WACV) 1086 cutOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'cutoff',nDig=(10,2),min=0.1) 1092 1087 comboSizer.Add(cutOff,0,WACV) 1093 1088 calibSizer.Add(comboSizer,0) 1094 1089 1095 1090 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 1096 comboSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Pixel search range '),0,WACV)1097 pixLimit = wx.ComboBox(parent=G2frame.data Display,value=str(data['pixLimit']),choices=['1','2','5','10','15','20'],1091 comboSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Pixel search range '),0,WACV) 1092 pixLimit = wx.ComboBox(parent=G2frame.dataWindow,value=str(data['pixLimit']),choices=['1','2','5','10','15','20'], 1098 1093 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1099 1094 pixLimit.Bind(wx.EVT_COMBOBOX, OnPixLimit) … … 1102 1097 1103 1098 comboSizer = wx.BoxSizer(wx.HORIZONTAL) 1104 setRings = wx.CheckBox(parent=G2frame.data Display,label='Show ring picks?')1099 setRings = wx.CheckBox(parent=G2frame.dataWindow,label='Show ring picks?') 1105 1100 comboSizer.Add(setRings,0) 1106 1101 setRings.Bind(wx.EVT_CHECKBOX, OnSetRings) … … 1144 1139 gonioSizer = wx.BoxSizer(wx.HORIZONTAL) 1145 1140 names = ['Omega','Chi','Phi'] 1146 gonioSizer.Add(wx.StaticText(G2frame.data Display,-1,'Sample goniometer angles: '),0,WACV)1141 gonioSizer.Add(wx.StaticText(G2frame.dataWindow,-1,'Sample goniometer angles: '),0,WACV) 1147 1142 for i,name in enumerate(names): 1148 gonioSizer.Add(wx.StaticText(G2frame.data Display,-1,name),0,WACV)1149 angle = G2G.ValidatedTxtCtrl(G2frame.data Display,data['GonioAngles'],i,nDig=(8,2),typeHint=float)1143 gonioSizer.Add(wx.StaticText(G2frame.dataWindow,-1,name),0,WACV) 1144 angle = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['GonioAngles'],i,nDig=(8,2),typeHint=float) 1150 1145 gonioSizer.Add(angle,0,WACV) 1151 globEdit = wx.Button(G2frame.data Display,-1,'Global edit')1146 globEdit = wx.Button(G2frame.dataWindow,-1,'Global edit') 1152 1147 globEdit.Bind(wx.EVT_BUTTON,OnGlobalEdit) 1153 1148 gonioSizer.Add(globEdit,0,WACV) … … 1181 1176 data['type'] = 'PWDR' 1182 1177 typeDict = {'PWDR':typeList[0],'SASD':typeList[1],} 1183 if G2frame.dataDisplay: 1184 G2frame.dataDisplay.Destroy() 1185 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ImageMenu) 1186 if not G2frame.dataFrame.GetStatusBar(): 1187 G2frame.dataFrame.CreateStatusBar() 1188 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCalibrate, id=G2gd.wxID_IMCALIBRATE) 1189 G2frame.dataFrame.Bind(wx.EVT_MENU, OnRecalibrate, id=G2gd.wxID_IMRECALIBRATE) 1190 G2frame.dataFrame.Bind(wx.EVT_MENU, OnRecalibAll, id=G2gd.wxID_IMRECALIBALL) 1191 G2frame.dataFrame.Bind(wx.EVT_MENU, OnClearCalib, id=G2gd.wxID_IMCLEARCALIB) 1178 G2frame.dataWindow.ClearData() 1179 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.ImageMenu) 1180 G2frame.Bind(wx.EVT_MENU, OnCalibrate, id=G2gd.wxID_IMCALIBRATE) 1181 G2frame.Bind(wx.EVT_MENU, OnRecalibrate, id=G2gd.wxID_IMRECALIBRATE) 1182 G2frame.Bind(wx.EVT_MENU, OnRecalibAll, id=G2gd.wxID_IMRECALIBALL) 1183 G2frame.Bind(wx.EVT_MENU, OnClearCalib, id=G2gd.wxID_IMCLEARCALIB) 1192 1184 if data.get('calibrant'): 1193 1185 mode = True 1194 1186 else: 1195 1187 mode = False 1196 G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBRATE,enable=mode)1197 G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMCALIBRATE,enable=mode)1198 G2frame.dataFrame.ImageEdit.Enable(id=G2gd.wxID_IMRECALIBALL,enable=mode)1199 G2frame. dataFrame.Bind(wx.EVT_MENU, OnIntegrate, id=G2gd.wxID_IMINTEGRATE)1200 G2frame. dataFrame.Bind(wx.EVT_MENU, OnIntegrateAll, id=G2gd.wxID_INTEGRATEALL)1201 G2frame. dataFrame.Bind(wx.EVT_MENU, OnCopyControls, id=G2gd.wxID_IMCOPYCONTROLS)1202 G2frame. dataFrame.Bind(wx.EVT_MENU, OnCopySelected, id=G2gd.wxID_IMCOPYSELECTED)1203 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSaveControls, id=G2gd.wxID_IMSAVECONTROLS)1204 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSaveMultiControls, id=G2gd.wxID_SAVESELECTEDCONTROLS)1205 G2frame. dataFrame.Bind(wx.EVT_MENU, OnLoadControls, id=G2gd.wxID_IMLOADCONTROLS)1206 G2frame. dataFrame.Bind(wx.EVT_MENU, OnTransferAngles, id=G2gd.wxID_IMXFERCONTROLS)1207 G2frame. dataFrame.Bind(wx.EVT_MENU, OnResetDist, id=G2gd.wxID_IMRESETDIST)1188 # G2frame.Enable(id=G2gd.wxID_IMRECALIBRATE,enable=mode) 1189 # G2frame.Enable(id=G2gd.wxID_IMCALIBRATE,enable=mode) 1190 # G2frame.Enable(id=G2gd.wxID_IMRECALIBALL,enable=mode) 1191 G2frame.Bind(wx.EVT_MENU, OnIntegrate, id=G2gd.wxID_IMINTEGRATE) 1192 G2frame.Bind(wx.EVT_MENU, OnIntegrateAll, id=G2gd.wxID_INTEGRATEALL) 1193 G2frame.Bind(wx.EVT_MENU, OnCopyControls, id=G2gd.wxID_IMCOPYCONTROLS) 1194 G2frame.Bind(wx.EVT_MENU, OnCopySelected, id=G2gd.wxID_IMCOPYSELECTED) 1195 G2frame.Bind(wx.EVT_MENU, OnSaveControls, id=G2gd.wxID_IMSAVECONTROLS) 1196 G2frame.Bind(wx.EVT_MENU, OnSaveMultiControls, id=G2gd.wxID_SAVESELECTEDCONTROLS) 1197 G2frame.Bind(wx.EVT_MENU, OnLoadControls, id=G2gd.wxID_IMLOADCONTROLS) 1198 G2frame.Bind(wx.EVT_MENU, OnTransferAngles, id=G2gd.wxID_IMXFERCONTROLS) 1199 G2frame.Bind(wx.EVT_MENU, OnResetDist, id=G2gd.wxID_IMRESETDIST) 1208 1200 def OnDestroy(event): 1209 1201 G2frame.autoIntFrame = None … … 1216 1208 G2frame.autoIntFrame.Bind(wx.EVT_WINDOW_DESTROY,OnDestroy) # clean up name on window close 1217 1209 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAutoInt, id=G2gd.wxID_IMAUTOINTEG) 1218 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame)1219 1210 1220 1211 mainSizer = wx.BoxSizer(wx.VERTICAL) … … 1233 1224 mainSizer.Add((5,5),0) 1234 1225 mainSizer.Add(BackSizer(),0) 1235 mainSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Calibration controls:'),0,WACV)1226 mainSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Calibration controls:'),0,WACV) 1236 1227 mainSizer.Add((5,5),0) 1237 1228 mainSizer.Add(CalibSizer(),0,WACV) … … 1240 1231 1241 1232 mainSizer.Layout() 1242 G2frame.dataDisplay.SetSizer(mainSizer) 1243 fitSize = mainSizer.Fit(G2frame.dataFrame) 1244 G2frame.dataFrame.setSizePosLeft(fitSize) 1245 G2frame.dataFrame.SendSizeEvent() 1233 G2frame.dataWindow.SetSizer(mainSizer) 1234 mainSizer.Fit(G2frame.dataFrame) 1235 G2frame.SetDataSize() 1246 1236 1247 1237 ################################################################################ … … 1370 1360 def OnAutoSpotMask(event): 1371 1361 'Do auto search for spot masks' 1372 if wx.MessageDialog(G2frame.data Display,'NB: This will clear any old spot masks',1362 if wx.MessageDialog(G2frame.dataWindow,'NB: This will clear any old spot masks', 1373 1363 'Auto Spot Masks', wx.OK|wx.CANCEL).ShowModal() == wx.ID_OK: 1374 1364 Controls = copy.deepcopy(G2frame.PatternTree.GetItemPyData( … … 1520 1510 maxSizer = wx.GridBagSizer(0,0) 1521 1511 r = c = 0 1522 maxSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Max intensity'),(r,c))1512 maxSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Max intensity'),(r,c)) 1523 1513 c += 1 1524 1514 # maxSel is a slider with 101 steps scaled from Imin+1 to Imax0 with sqrt scaling … … 1528 1518 sqrtDeltOne = math.sqrt(max(1.0,Range[1][1]-max(0.0,Range[1][0])-1)) # sqrt(Imax-Imin-1) 1529 1519 sv1 = min(100,max(0,int(0.5+100.*sqrtDeltOne/sqrtDeltZero))) 1530 maxSel = wx.Slider(parent=G2frame.data Display,style=wx.SL_HORIZONTAL,value=sv1,size=(300,-1))1520 maxSel = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL,value=sv1,size=(300,-1)) 1531 1521 maxSizer.Add(maxSel,(r,c),flag=wx.EXPAND) 1532 1522 maxSizer.AddGrowableCol(c) 1533 1523 c += 1 1534 1524 maxSel.Bind(wx.EVT_SLIDER, OnMaxSlider) 1535 maxVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Range[1],1,min=Range[0][0]+1,1525 maxVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Range[1],1,min=Range[0][0]+1, 1536 1526 max=Range[0][1],typeHint=int,OnLeave=OnNewVal) 1537 1527 maxSizer.Add(maxVal,(r,c)) 1538 1528 c += 1 1539 1529 scaleChoices = ("100%","99%","95%","90%","80%","?") 1540 scaleSel = wx.Choice(G2frame.data Display,choices=scaleChoices,size=(-1,-1))1530 scaleSel = wx.Choice(G2frame.dataWindow,choices=scaleChoices,size=(-1,-1)) 1541 1531 if (Range[1][0] == Range[0][0] and 1542 1532 Range[1][1] == Range[0][1]): … … 1548 1538 c = 0 1549 1539 r = 1 1550 maxSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Min intensity'),(r,c))1540 maxSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Min intensity'),(r,c)) 1551 1541 c += 1 1552 1542 # minSel is a slider with 101 steps scaled from Imin0 to Imax-1 with linear scaling … … 1555 1545 DeltOne = max(1.0,Range[1][1]-max(0.0,Range[0][0])-1) # Imax-Imin0-1 1556 1546 sv0 = min(100,max(0,int(0.5+100.*(Range[1][0]-Range[0][0])/DeltOne))) 1557 minSel = wx.Slider(parent=G2frame.data Display,style=wx.SL_HORIZONTAL,value=sv0,size=(300,-1))1547 minSel = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL,value=sv0,size=(300,-1)) 1558 1548 maxSizer.Add(minSel,(r,c),flag=wx.EXPAND|wx.ALL) 1559 1549 c += 1 1560 1550 minSel.Bind(wx.EVT_SLIDER, OnMinSlider) 1561 minVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Range[1],0,1551 minVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Range[1],0, 1562 1552 max=Range[0][1],typeHint=int,OnLeave=OnNewVal) 1563 1553 maxSizer.Add(minVal,(r,c)) 1564 1554 return maxSizer 1565 1555 1556 G2frame.dataWindow.ClearData() 1566 1557 startScroll = None 1567 if G2frame.dataDisplay: 1568 startScroll = G2frame.dataDisplay.GetScrollPos(wx.VERTICAL) # save scroll position 1569 G2frame.dataDisplay.Destroy() 1558 if G2frame.dataWindow: 1559 startScroll = G2frame.dataWindow.GetScrollPos(wx.VERTICAL) # save scroll position 1570 1560 else: 1571 1561 CleanupMasks(data) # posting page for 1st time; clean out anything unfinished 1572 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.MaskMenu)1562 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.MaskMenu) 1573 1563 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyMask, id=G2gd.wxID_MASKCOPY) 1574 1564 G2frame.dataFrame.Bind(wx.EVT_MENU, OnLoadMask, id=G2gd.wxID_MASKLOAD) … … 1582 1572 G2frame.dataFrame.Bind(wx.EVT_MENU, OnNewPolyMask, id=G2gd.wxID_NEWMASKPOLY) 1583 1573 G2frame.dataFrame.Bind(wx.EVT_MENU, OnNewFrameMask, id=G2gd.wxID_NEWMASKFRAME) 1584 if not G2frame.dataFrame.GetStatusBar():1585 G2frame.dataFrame.CreateStatusBar()1586 1574 if G2frame.MaskKey == 'f': 1587 G2frame. dataFrame.GetStatusBar().SetStatusText('Frame mask active - LB pick next point, RB close polygon')1575 G2frame.GetStatusBar().SetStatusText('Frame mask active - LB pick next point, RB close polygon') 1588 1576 elif G2frame.MaskKey == 'p': 1589 G2frame. dataFrame.GetStatusBar().SetStatusText('Polygon mask active - LB pick next point, RB close polygon')1577 G2frame.GetStatusBar().SetStatusText('Polygon mask active - LB pick next point, RB close polygon') 1590 1578 elif G2frame.MaskKey == 'a': 1591 G2frame. dataFrame.GetStatusBar().SetStatusText('Arc mask active - LB pick arc location')1579 G2frame.GetStatusBar().SetStatusText('Arc mask active - LB pick arc location') 1592 1580 elif G2frame.MaskKey == 'r': 1593 G2frame. dataFrame.GetStatusBar().SetStatusText('Ring mask active - LB pick ring location')1581 G2frame.GetStatusBar().SetStatusText('Ring mask active - LB pick ring location') 1594 1582 else: 1595 G2frame.dataFrame.GetStatusBar().SetStatusText("To add mask: press a,r,s,p or f on 2D image for arc/ring/spot/polygon/frame") 1596 G2frame.dataDisplay = wxscroll.ScrolledPanel(G2frame.dataFrame) 1583 G2frame.GetStatusBar().SetStatusText("To add mask: press a,r,s,p or f on 2D image for arc/ring/spot/polygon/frame") 1597 1584 mainSizer = wx.BoxSizer(wx.VERTICAL) 1598 1585 mainSizer.Add((5,10),0) … … 1615 1602 1616 1603 littleSizer = wx.FlexGridSizer(0,3,0,5) 1617 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Lower/Upper limits '),0,WACV)1618 Text = wx.TextCtrl(G2frame.data Display,value=str(thresh[0][0]),style=wx.TE_READONLY)1604 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Lower/Upper limits '),0,WACV) 1605 Text = wx.TextCtrl(G2frame.dataWindow,value=str(thresh[0][0]),style=wx.TE_READONLY) 1619 1606 littleSizer.Add(Text,0,WACV) 1620 1607 Text.SetBackgroundColour(VERY_LIGHT_GREY) 1621 Text = wx.TextCtrl(G2frame.data Display,value=str(thresh[0][1]),style=wx.TE_READONLY)1608 Text = wx.TextCtrl(G2frame.dataWindow,value=str(thresh[0][1]),style=wx.TE_READONLY) 1622 1609 littleSizer.Add(Text,0,WACV) 1623 1610 Text.SetBackgroundColour(VERY_LIGHT_GREY) 1624 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Lower/Upper thresholds '),0,WACV)1625 lowerThreshold = G2G.ValidatedTxtCtrl(G2frame.data Display,loc=thresh[1],key=0,1611 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Lower/Upper thresholds '),0,WACV) 1612 lowerThreshold = G2G.ValidatedTxtCtrl(G2frame.dataWindow,loc=thresh[1],key=0, 1626 1613 min=thresh[0][0],OnLeave=newReplot,typeHint=int) 1627 1614 littleSizer.Add(lowerThreshold,0,WACV) 1628 upperThreshold = G2G.ValidatedTxtCtrl(G2frame.data Display,loc=thresh[1],key=1,1615 upperThreshold = G2G.ValidatedTxtCtrl(G2frame.dataWindow,loc=thresh[1],key=1, 1629 1616 max=thresh[0][1],OnLeave=newReplot,typeHint=int) 1630 1617 littleSizer.Add(upperThreshold,0,WACV) 1631 1618 mainSizer.Add(littleSizer,0,) 1632 1619 if len(Spots): 1633 lbl = wx.StaticText(parent=G2frame.data Display,label=' Spot masks')1620 lbl = wx.StaticText(parent=G2frame.dataWindow,label=' Spot masks') 1634 1621 lbl.SetBackgroundColour(wx.Colour(200,200,210)) 1635 1622 mainSizer.Add(lbl,0,wx.EXPAND|wx.ALIGN_CENTER,0) 1636 1623 littleSizer = wx.FlexGridSizer(0,3,0,5) 1637 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' position, mm'),0,WACV)1638 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' diameter, mm'),0,WACV)1624 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' position, mm'),0,WACV) 1625 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' diameter, mm'),0,WACV) 1639 1626 littleSizer.Add((5,0),0) 1640 1627 for i in range(len(Spots)): 1641 1628 if len(Spots[i]): 1642 1629 x,y,d = Spots[i] 1643 spotText = wx.TextCtrl(parent=G2frame.data Display,value=("%.2f,%.2f" % (x,y)),1630 spotText = wx.TextCtrl(parent=G2frame.dataWindow,value=("%.2f,%.2f" % (x,y)), 1644 1631 style=wx.TE_READONLY) 1645 1632 spotText.SetBackgroundColour(VERY_LIGHT_GREY) 1646 1633 littleSizer.Add(spotText,0,WACV) 1647 1634 spotText.Bind(wx.EVT_ENTER_WINDOW,OnTextMsg) 1648 spotDiameter = G2G.ValidatedTxtCtrl(G2frame.data Display,loc=Spots[i],key=2,1635 spotDiameter = G2G.ValidatedTxtCtrl(G2frame.dataWindow,loc=Spots[i],key=2, 1649 1636 max=100.,OnLeave=Replot,nDig=[8,2]) 1650 1637 littleSizer.Add(spotDiameter,0,WACV) 1651 spotDelete = G2G.G2LoggedButton(G2frame.data Display,label='delete?',1638 spotDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1652 1639 locationcode='Delete+Points+'+str(i),handler=onDeleteMask) 1653 1640 littleSizer.Add(spotDelete,0,WACV) 1654 1641 mainSizer.Add(littleSizer,0,) 1655 1642 if Rings: 1656 lbl = wx.StaticText(parent=G2frame.data Display,label=' Ring masks')1643 lbl = wx.StaticText(parent=G2frame.dataWindow,label=' Ring masks') 1657 1644 lbl.SetBackgroundColour(wx.Colour(200,200,210)) 1658 1645 mainSizer.Add(lbl,0,wx.EXPAND|wx.ALIGN_CENTER,0) 1659 1646 littleSizer = wx.FlexGridSizer(0,3,0,5) 1660 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' 2-theta,deg'),0,WACV)1661 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' thickness, deg'),0,WACV)1647 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' 2-theta,deg'),0,WACV) 1648 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' thickness, deg'),0,WACV) 1662 1649 littleSizer.Add((5,0),0) 1663 1650 for i in range(len(Rings)): 1664 1651 if Rings[i]: 1665 ringText = wx.TextCtrl(parent=G2frame.data Display,value=("%.3f" % (Rings[i][0])),1652 ringText = wx.TextCtrl(parent=G2frame.dataWindow,value=("%.3f" % (Rings[i][0])), 1666 1653 style=wx.TE_READONLY) 1667 1654 ringText.SetBackgroundColour(VERY_LIGHT_GREY) 1668 1655 ringText.Bind(wx.EVT_ENTER_WINDOW,OnTextMsg) 1669 1656 littleSizer.Add(ringText,0,WACV) 1670 ringThick = G2G.ValidatedTxtCtrl(G2frame.data Display,loc=Rings[i],key=1,1657 ringThick = G2G.ValidatedTxtCtrl(G2frame.dataWindow,loc=Rings[i],key=1, 1671 1658 min=0.001,max=1.,OnLeave=Replot,nDig=[8,3]) 1672 1659 littleSizer.Add(ringThick,0,WACV) 1673 ringDelete = G2G.G2LoggedButton(G2frame.data Display,label='delete?',1660 ringDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1674 1661 locationcode='Delete+Rings+'+str(i),handler=onDeleteMask) 1675 1662 littleSizer.Add(ringDelete,0,WACV) 1676 1663 mainSizer.Add(littleSizer,0,) 1677 1664 if Arcs: 1678 lbl = wx.StaticText(parent=G2frame.data Display,label=' Arc masks')1665 lbl = wx.StaticText(parent=G2frame.dataWindow,label=' Arc masks') 1679 1666 lbl.SetBackgroundColour(wx.Colour(200,200,210)) 1680 1667 mainSizer.Add(lbl,0,wx.EXPAND|wx.ALIGN_CENTER,0) 1681 1668 littleSizer = wx.FlexGridSizer(0,4,0,5) 1682 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' 2-theta,deg'),0,WACV)1683 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' azimuth, deg'),0,WACV)1684 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' thickness, deg'),0,WACV)1669 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' 2-theta,deg'),0,WACV) 1670 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' azimuth, deg'),0,WACV) 1671 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' thickness, deg'),0,WACV) 1685 1672 littleSizer.Add((5,0),0) 1686 1673 for i in range(len(Arcs)): 1687 1674 if Arcs[i]: 1688 1675 tth,azimuth,thick = Arcs[i] 1689 arcText = wx.TextCtrl(parent=G2frame.data Display,value=("%.3f" % (tth)),1676 arcText = wx.TextCtrl(parent=G2frame.dataWindow,value=("%.3f" % (tth)), 1690 1677 style=wx.TE_READONLY) 1691 1678 arcText.SetBackgroundColour(VERY_LIGHT_GREY) 1692 1679 arcText.Bind(wx.EVT_ENTER_WINDOW,OnTextMsg) 1693 1680 littleSizer.Add(arcText,0,WACV) 1694 azmText = wx.TextCtrl(parent=G2frame.data Display,value=("%d,%d" % (azimuth[0],azimuth[1])),1681 azmText = wx.TextCtrl(parent=G2frame.dataWindow,value=("%d,%d" % (azimuth[0],azimuth[1])), 1695 1682 style=wx.TE_READONLY) 1696 1683 azmText.SetBackgroundColour(VERY_LIGHT_GREY) 1697 1684 azmText.Bind(wx.EVT_ENTER_WINDOW,OnTextMsg) 1698 1685 littleSizer.Add(azmText,0,WACV) 1699 arcThick = G2G.ValidatedTxtCtrl(G2frame.data Display,loc=Arcs[i],key=2,1686 arcThick = G2G.ValidatedTxtCtrl(G2frame.dataWindow,loc=Arcs[i],key=2, 1700 1687 min=0.001,max=20.,OnLeave=Replot,nDig=[8,3]) 1701 1688 littleSizer.Add(arcThick,0,WACV) 1702 arcDelete = G2G.G2LoggedButton(G2frame.data Display,label='delete?',1689 arcDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1703 1690 locationcode='Delete+Arcs+'+str(i),handler=onDeleteMask) 1704 1691 littleSizer.Add(arcDelete,0,WACV) 1705 1692 mainSizer.Add(littleSizer,0,) 1706 1693 if Polygons: 1707 lbl = wx.StaticText(parent=G2frame.data Display,1694 lbl = wx.StaticText(parent=G2frame.dataWindow, 1708 1695 label=' Polygon masks (on plot RB vertex drag to move, LB vertex drag to insert)') 1709 1696 lbl.SetBackgroundColour(wx.Colour(200,200,210)) … … 1715 1702 for x,y in Polygons[i]: 1716 1703 polyList.append("%.2f, %.2f"%(x,y)) 1717 polyText = wx.ComboBox(G2frame.data Display,value=polyList[0],choices=polyList,style=wx.CB_READONLY)1704 polyText = wx.ComboBox(G2frame.dataWindow,value=polyList[0],choices=polyList,style=wx.CB_READONLY) 1718 1705 littleSizer.Add(polyText,0,WACV) 1719 polyDelete = G2G.G2LoggedButton(G2frame.data Display,label='delete?',1706 polyDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1720 1707 locationcode='Delete+Polygons+'+str(i),handler=onDeleteMask) 1721 1708 littleSizer.Add(polyDelete,0,WACV) 1722 1709 mainSizer.Add(littleSizer,0,) 1723 1710 if frame: 1724 lbl = wx.StaticText(parent=G2frame.data Display,1711 lbl = wx.StaticText(parent=G2frame.dataWindow, 1725 1712 label=' Frame mask (on plot RB vertex drag to move, LB vertex drag to insert)') 1726 1713 lbl.SetBackgroundColour(wx.Colour(200,200,210)) … … 1730 1717 for x,y in frame: 1731 1718 frameList.append("%.2f, %.2f"%(x,y)) 1732 frameText = wx.ComboBox(G2frame.data Display,value=frameList[0],choices=frameList,style=wx.CB_READONLY)1719 frameText = wx.ComboBox(G2frame.dataWindow,value=frameList[0],choices=frameList,style=wx.CB_READONLY) 1733 1720 littleSizer.Add(frameText,0,WACV) 1734 frameDelete = G2G.G2LoggedButton(G2frame.data Display,label='delete?',1721 frameDelete = G2G.G2LoggedButton(G2frame.dataWindow,label='delete?', 1735 1722 locationcode='Delete+Frame',handler=onDeleteFrame) 1736 1723 littleSizer.Add(frameDelete,0,WACV) 1737 1724 mainSizer.Add(littleSizer,0,) 1738 1725 mainSizer.Layout() 1739 G2frame.dataDisplay.SetSizer(mainSizer) 1740 G2frame.dataDisplay.SetupScrolling() 1741 Size = mainSizer.Fit(G2frame.dataFrame) 1742 Size[0] += 50 # room for scrollbar & status msg 1743 Size[1] = min(Size[1],500) 1744 G2frame.dataFrame.setSizePosLeft(Size) 1726 G2frame.dataWindow.SetSizer(mainSizer) 1727 mainSizer.Fit(G2frame.dataFrame) 1728 G2frame.SetDataSize() 1745 1729 if startScroll: # reset scroll to saved position 1746 G2frame.data Display.Scroll(0,startScroll) # set to saved scroll position1730 G2frame.dataWindow.Scroll(0,startScroll) # set to saved scroll position 1747 1731 wx.Yield() 1748 1732 … … 2051 2035 2052 2036 samSizer = wx.BoxSizer(wx.HORIZONTAL) 2053 samSizer.Add(wx.StaticText(G2frame.data Display,-1,label=' Strain type: '),0,WACV)2054 strType = wx.ComboBox(G2frame.data Display,value=data['Type'],choices=['True','Conventional'],2037 samSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=' Strain type: '),0,WACV) 2038 strType = wx.ComboBox(G2frame.dataWindow,value=data['Type'],choices=['True','Conventional'], 2055 2039 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2056 2040 strType.SetValue(data['Type']) … … 2058 2042 samSizer.Add(strType,0,WACV) 2059 2043 2060 samSizer.Add(wx.StaticText(G2frame.data Display,-1,label=' Sample phi: '),0,WACV)2061 samPhi = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Sample phi',nDig=(10,3),typeHint=float,min=-360.,max=360.)2044 samSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=' Sample phi: '),0,WACV) 2045 samPhi = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Sample phi',nDig=(10,3),typeHint=float,min=-360.,max=360.) 2062 2046 samSizer.Add(samPhi,0,WACV) 2063 samSizer.Add(wx.StaticText(G2frame.data Display,-1,label=' Sample delta-z(mm): '),0,WACV)2064 samZ = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Sample z',nDig=(10,3),typeHint=float)2047 samSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=' Sample delta-z(mm): '),0,WACV) 2048 samZ = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Sample z',nDig=(10,3),typeHint=float) 2065 2049 samSizer.Add(samZ,0,WACV) 2066 samSizer.Add(wx.StaticText(G2frame.data Display,-1,label=' Sample load(MPa): '),0,WACV)2067 samLoad = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Sample load',2050 samSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=' Sample load(MPa): '),0,WACV) 2051 samLoad = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Sample load', 2068 2052 nDig=[8,3],typeHint=float,) 2069 2053 samSizer.Add(samLoad,0,WACV) … … 2112 2096 dzeroSizer = wx.FlexGridSizer(0,8,5,5) 2113 2097 for id,dzero in enumerate(data['d-zero']): 2114 dzeroSizer.Add(wx.StaticText(G2frame.data Display,-1,label=(' d-zero #%d: '%(id))),0,WACV)2115 dZero = G2G.ValidatedTxtCtrl(G2frame.data Display,data['d-zero'][id],'Dset',2098 dzeroSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=(' d-zero #%d: '%(id))),0,WACV) 2099 dZero = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['d-zero'][id],'Dset', 2116 2100 min=0.25,max=20.,nDig=(10,5),typeHint=float,OnLeave=OnDzero) 2117 2101 dzeroSizer.Add(dZero,0,WACV) 2118 2102 Indx[dZero.GetId()] = id 2119 dfix = wx.CheckBox(G2frame.data Display,label='Use Poisson mean?')2103 dfix = wx.CheckBox(G2frame.dataWindow,label='Use Poisson mean?') 2120 2104 dfix.SetValue(dzero.get('fixDset',False)) 2121 2105 dfix.Bind(wx.EVT_CHECKBOX,OnFixDset) 2122 2106 Indx[dfix.GetId()] = id 2123 2107 dzeroSizer.Add(dfix,0,WACV) 2124 dzeroSizer.Add(wx.StaticText(G2frame.data Display,-1,label=(' d-zero ave: %.5f'%(dzero['Dcalc']))),0,WACV)2108 dzeroSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=(' d-zero ave: %.5f'%(dzero['Dcalc']))),0,WACV) 2125 2109 2126 dzeroSizer.Add(wx.StaticText(G2frame.data Display,label=' Min ring I/Ib '),0,WACV)2127 cutOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data['d-zero'][id],'cutoff',2110 dzeroSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Min ring I/Ib '),0,WACV) 2111 cutOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['d-zero'][id],'cutoff', 2128 2112 min=0.5,max=20.,nDig=(10,1),typeHint=float,OnLeave=OnCutOff) 2129 2113 Indx[cutOff.GetId()] = id 2130 2114 dzeroSizer.Add(cutOff,0,WACV) 2131 2115 2132 dzeroSizer.Add(wx.StaticText(G2frame.data Display,label=' Pixel search range '),0,WACV)2133 pixLimit = wx.ComboBox(parent=G2frame.data Display,value=str(dzero['pixLimit']),choices=['1','2','5','10','15','20'],2116 dzeroSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Pixel search range '),0,WACV) 2117 pixLimit = wx.ComboBox(parent=G2frame.dataWindow,value=str(dzero['pixLimit']),choices=['1','2','5','10','15','20'], 2134 2118 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2135 2119 pixLimit.Bind(wx.EVT_COMBOBOX, OnPixLimit) … … 2137 2121 dzeroSizer.Add(pixLimit,0,WACV) 2138 2122 2139 dzeroSizer.Add(wx.StaticText(G2frame.data Display,-1,label=(' Strain tensor:')),WACV)2123 dzeroSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=(' Strain tensor:')),WACV) 2140 2124 names = ['e11','e12','e22'] 2141 2125 for i in range(3): 2142 dzeroSizer.Add(wx.StaticText(G2frame.data Display,-1,label=names[i]),0,WACV)2143 tensorElem = wx.TextCtrl(G2frame.data Display,-1,value='%.2f'%(dzero['Emat'][i]),style=wx.TE_READONLY)2126 dzeroSizer.Add(wx.StaticText(G2frame.dataWindow,-1,label=names[i]),0,WACV) 2127 tensorElem = wx.TextCtrl(G2frame.dataWindow,-1,value='%.2f'%(dzero['Emat'][i]),style=wx.TE_READONLY) 2144 2128 tensorElem.SetBackgroundColour(VERY_LIGHT_GREY) 2145 2129 dzeroSizer.Add(tensorElem,0,WACV) 2146 dzeroDelete = wx.CheckBox(parent=G2frame.data Display,label='delete?')2130 dzeroDelete = wx.CheckBox(parent=G2frame.dataWindow,label='delete?') 2147 2131 dzeroDelete.Bind(wx.EVT_CHECKBOX,OnDeleteDzero) 2148 2132 delIndx.append(dzeroDelete) … … 2156 2140 # end patches 2157 2141 2158 if G2frame.dataDisplay: 2159 G2frame.dataDisplay.Destroy() 2142 G2frame.dataWindow.ClearData() 2160 2143 Controls = G2frame.PatternTree.GetItemPyData( 2161 2144 G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Image Controls')) 2162 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.StrStaMenu)2145 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.StrStaMenu) 2163 2146 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAppendDzero, id=G2gd.wxID_APPENDDZERO) 2164 2147 G2frame.dataFrame.Bind(wx.EVT_MENU, OnUpdateDzero, id=G2gd.wxID_UPDATEDZERO) … … 2171 2154 G2frame.dataFrame.Bind(wx.EVT_MENU, OnSaveStrSta, id=G2gd.wxID_STRSTASAVE) 2172 2155 G2frame.dataFrame.Bind(wx.EVT_MENU, OnStrStaSample, id=G2gd.wxID_STRSTSAMPLE) 2173 if not G2frame.dataFrame.GetStatusBar():2174 G2frame.dataFrame.CreateStatusBar()2175 2156 if G2frame.StrainKey == 'a': #probably doesn't happen 2176 G2frame. dataFrame.GetStatusBar().SetStatusText('Add strain ring active - LB pick d-zero value')2157 G2frame.GetStatusBar().SetStatusText('Add strain ring active - LB pick d-zero value') 2177 2158 else: 2178 G2frame.dataFrame.GetStatusBar().SetStatusText("To add strain data: On 2D Powder Image, key a:add ring") 2179 2180 G2frame.dataDisplay = wxscroll.ScrolledPanel(G2frame.dataFrame) 2159 G2frame.GetStatusBar().SetStatusText("To add strain data: On 2D Powder Image, key a:add ring") 2160 2181 2161 mainSizer = wx.BoxSizer(wx.VERTICAL) 2182 2162 mainSizer.Add((5,10),0) … … 2186 2166 2187 2167 mainSizer.Layout() 2188 G2frame.dataDisplay.SetSizer(mainSizer) 2189 G2frame.dataDisplay.SetAutoLayout(1) 2190 G2frame.dataDisplay.SetupScrolling() 2191 Size = mainSizer.Fit(G2frame.dataFrame) 2192 Size[0] += 25 2193 G2frame.dataFrame.setSizePosLeft(Size) 2168 G2frame.dataWindow.SetSizer(mainSizer) 2169 G2frame.dataWindow.SetAutoLayout(1) 2170 mainSizer.Fit(G2frame.dataFrame) 2171 G2frame.SetDataSize() 2194 2172 2195 2173 ########################################################################### -
branch/2frame/GSASIIphsGUI.py
r2873 r2888 76 76 phasePage.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 77 77 phasePage.Scroll(0,Scroll) 78 if size is None:79 Size[1] = min(Size[1]+ 150,500)80 # Size[1] = min(500,Size[1])81 mainFrame.setSizePosLeft(Size)82 else:83 size[1] = min(500,size[1])84 mainFrame.setSizePosLeft(size)85 78 86 79 def FindBondsDraw(data): … … 371 364 generalData['Name'] = newName 372 365 G2frame.G2plotNB.Rename(oldName,generalData['Name']) 373 G2frame. dataFrame.SetLabel('Phase Data for '+generalData['Name'])366 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Phase Data for '+generalData['Name']) 374 367 G2frame.PatternTree.SetItemText(Item,generalData['Name']) 375 368 # change phase name key in Reflection Lists for each histogram … … 390 383 if not len(generalData['AtomTypes']): #can change only if no atoms! 391 384 generalData['Type'] = TypeTxt.GetValue() 392 pages = [G2frame. dataDisplay.GetPageText(PageNum) for PageNum in range(G2frame.dataDisplay.GetPageCount())]385 pages = [G2frame.phaseDisplay.GetPageText(PageNum) for PageNum in range(G2frame.phaseDisplay.GetPageCount())] 393 386 if generalData['Type'] == 'faulted': 394 387 G2frame.dataFrame.Bind(wx.EVT_MENU, OnLoadDIFFaX, id=G2gd.wxID_LOADDIFFAX) … … 398 391 if 'Wave Data' in pages: 399 392 pass 400 # G2frame. dataDisplay.DeletePage(pages.index('Wave Data'))393 # G2frame.phaseDisplay.DeletePage(pages.index('Wave Data')) 401 394 if 'MC/SA' in pages: 402 395 pass 403 # G2frame. dataDisplay.DeletePage(pages.index('MC/SA'))396 # G2frame.phaseDisplay.DeletePage(pages.index('MC/SA')) 404 397 if 'RB Models' in pages: 405 398 pass 406 # G2frame. dataDisplay.DeletePage(pages.index('RB Models'))399 # G2frame.phaseDisplay.DeletePage(pages.index('RB Models')) 407 400 if 'Layers' not in pages: 408 401 if 'Layers' not in data: … … 410 403 'Width':[[1.,1.],[False,False]],'Toler':0.01,'AtInfo':{}, 411 404 'Layers':[],'Stacking':[],'Transitions':[]} 412 G2frame.layerData = wx.ScrolledWindow(G2frame. dataDisplay)413 G2frame. dataDisplay.InsertPage(3,G2frame.layerData,'Layers')405 G2frame.layerData = wx.ScrolledWindow(G2frame.phaseDisplay) 406 G2frame.phaseDisplay.InsertPage(3,G2frame.layerData,'Layers') 414 407 Id = wx.NewId() 415 408 TabSelectionIdDict[Id] = 'Layers' … … 423 416 else: 424 417 if 'Wave Data' in pages: 425 G2frame. dataDisplay.DeletePage(pages.index('Wave Data'))418 G2frame.phaseDisplay.DeletePage(pages.index('Wave Data')) 426 419 if 'MC/SA' not in pages: 427 G2frame.MCSA = wx.ScrolledWindow(G2frame. dataDisplay)428 G2frame. dataDisplay.InsertPage(7,G2frame.MCSA,'MC/SA')420 G2frame.MCSA = wx.ScrolledWindow(G2frame.phaseDisplay) 421 G2frame.phaseDisplay.InsertPage(7,G2frame.MCSA,'MC/SA') 429 422 Id = wx.NewId() 430 423 TabSelectionIdDict[Id] = 'MC/SA' … … 513 506 def OnModulated(event): 514 507 if not len(generalData['AtomTypes']): #can change only if no atoms! 515 pages = [G2frame. dataDisplay.GetPageText(PageNum) for PageNum in range(G2frame.dataDisplay.GetPageCount())]508 pages = [G2frame.phaseDisplay.GetPageText(PageNum) for PageNum in range(G2frame.phaseDisplay.GetPageCount())] 516 509 if generalData['Type'] in ['nuclear','magnetic']: 517 510 generalData['Modulated'] = modulated.GetValue() … … 529 522 if 'MC/SA' in pages: 530 523 pass 531 # G2frame. dataDisplay.DeletePage(pages.index('MC/SA')) #this crashes!!524 # G2frame.phaseDisplay.DeletePage(pages.index('MC/SA')) #this crashes!! 532 525 if 'Layers' in pages: 533 526 pass 534 # G2frame. dataDisplay.DeletePage(pages.index('Layers'))527 # G2frame.phaseDisplay.DeletePage(pages.index('Layers')) 535 528 if 'Wave Data' not in pages: 536 G2frame.waveData = wx.ScrolledWindow(G2frame. dataDisplay)537 G2frame. dataDisplay.InsertPage(3,G2frame.waveData,'Wave Data')529 G2frame.waveData = wx.ScrolledWindow(G2frame.phaseDisplay) 530 G2frame.phaseDisplay.InsertPage(3,G2frame.waveData,'Wave Data') 538 531 Id = wx.NewId() 539 532 TabSelectionIdDict[Id] = 'Wave Data' 540 533 else: 541 534 if 'Wave Data' in pages: 542 G2frame. dataDisplay.DeletePage(pages.index('Wave Data'))535 G2frame.phaseDisplay.DeletePage(pages.index('Wave Data')) 543 536 wx.CallAfter(UpdateGeneral) 544 537 else: … … 685 678 cellSizer.Add(wx.StaticText(General,label=txt),0,WACV) 686 679 if ifEdit: #a,b,c,etc. 687 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)680 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 688 681 cellVal = wx.TextCtrl(General,value=(fmt%(cell[Id+1])), 689 682 style=wx.TE_PROCESS_ENTER) … … 848 841 dminSizer = wx.BoxSizer(wx.HORIZONTAL) 849 842 dminSizer.Add(wx.StaticText(General,label=' Magnetic reflection d-min: '),0,WACV) 850 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)843 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 851 844 dminVal = wx.TextCtrl(General,value='%.4f'%(generalData['MagDmin']),style=wx.TE_PROCESS_ENTER) 852 845 dminVal.Bind(wx.EVT_TEXT_ENTER,OnDminVal) … … 947 940 for i,[val,show] in enumerate(zip(generalData['SuperVec'][0],ifShow)): 948 941 if show: 949 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)942 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 950 943 modVal = wx.TextCtrl(General,value=('%.4f'%(val)), 951 944 size=wx.Size(50,20),style=wx.TE_PROCESS_ENTER) … … 1037 1030 line2Sizer = wx.BoxSizer(wx.HORIZONTAL) 1038 1031 line2Sizer.Add(wx.StaticText(General,label=' Resolution: '),0,WACV) 1039 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1032 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1040 1033 mapRes = wx.TextCtrl(General,value='%.2f'%(Map['Resolution']),style=wx.TE_PROCESS_ENTER) 1041 1034 mapRes.Bind(wx.EVT_TEXT_ENTER,OnResVal) … … 1043 1036 line2Sizer.Add(mapRes,0,WACV) 1044 1037 line2Sizer.Add(wx.StaticText(General,label=' Peak cutoff %: '),0,WACV) 1045 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1038 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1046 1039 cutOff = wx.TextCtrl(General,value='%.1f'%(Map['cutOff']),style=wx.TE_PROCESS_ENTER) 1047 1040 cutOff.Bind(wx.EVT_TEXT_ENTER,OnCutOff) … … 1138 1131 line2Sizer = wx.BoxSizer(wx.HORIZONTAL) 1139 1132 line2Sizer.Add(wx.StaticText(General,label=' Resolution: '),0,WACV) 1140 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1133 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1141 1134 flipRes = wx.TextCtrl(General,value='%.2f'%(Flip['Resolution']),style=wx.TE_PROCESS_ENTER) 1142 1135 flipRes.Bind(wx.EVT_TEXT_ENTER,OnResVal) … … 1144 1137 line2Sizer.Add(flipRes,0,WACV) 1145 1138 line2Sizer.Add(wx.StaticText(General,label=' k-Factor (0.1-1.2): '),0,WACV) 1146 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1139 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1147 1140 kFactor = wx.TextCtrl(General,value='%.3f'%(Flip['k-factor']),style=wx.TE_PROCESS_ENTER) 1148 1141 kFactor.Bind(wx.EVT_TEXT_ENTER,OnkFactor) … … 1150 1143 line2Sizer.Add(kFactor,0,WACV) 1151 1144 line2Sizer.Add(wx.StaticText(General,label=' k-Max (>=10.0): '),0,WACV) 1152 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1145 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1153 1146 kMax = wx.TextCtrl(General,value='%.1f'%(Flip['k-Max']),style=wx.TE_PROCESS_ENTER) 1154 1147 kMax.Bind(wx.EVT_TEXT_ENTER,OnkMax) … … 1266 1259 lineSizer.Add(refList,0,WACV) 1267 1260 lineSizer.Add(wx.StaticText(General,label=' d-min: '),0,WACV) 1268 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1261 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1269 1262 dmin = wx.TextCtrl(General,-1,value='%.3f'%(MCSAdata['dmin']),style=wx.TE_PROCESS_ENTER) 1270 1263 dmin.Bind(wx.EVT_TEXT_ENTER,OnDmin) … … 1285 1278 ranStart.SetValue(MCSAdata.get('ranStart',False)) 1286 1279 line2Sizer.Add(ranStart,0,WACV) 1287 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1280 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1288 1281 ranRange = wx.TextCtrl(General,-1,value='%.1f'%(MCSAdata.get('ranRange',0.10)*100),style=wx.TE_PROCESS_ENTER) 1289 1282 ranRange.Bind(wx.EVT_TEXT_ENTER,OnRanRange) … … 1315 1308 for i,name in enumerate(Names): 1316 1309 line3Sizer.Add(wx.StaticText(General,label=name),0,WACV) 1317 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1310 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1318 1311 Ajump = wx.TextCtrl(General,-1,value='%.3f'%(MCSAdata[parms][i]),style=wx.TE_PROCESS_ENTER) 1319 1312 Ajump.Bind(wx.EVT_TEXT_ENTER,OnAjump) … … 1323 1316 elif 'log' in MCSAdata['Algorithm']: 1324 1317 line3Sizer.Add(wx.StaticText(General,label=' slope: '),0,WACV) 1325 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)1318 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 1326 1319 slope = wx.TextCtrl(General,-1,value='%.3f'%(MCSAdata['log slope']),style=wx.TE_PROCESS_ENTER) 1327 1320 slope.Bind(wx.EVT_TEXT_ENTER,OnSlope) … … 1395 1388 G2G.HorizontalLine(mainSizer,General) 1396 1389 mainSizer.Add(MCSASizer()) 1397 G2frame. dataFrame.SetStatusText('')1390 G2frame.GetStatusBar().SetStatusText('') 1398 1391 SetPhaseWindow(G2frame.dataFrame,General,mainSizer,Scroll=Scroll) 1399 1392 … … 1695 1688 if not (event.AltDown() or (event.ShiftDown() and event.ControlDown())): 1696 1689 Atoms.frm = -1 1697 G2frame. dataFrame.SetStatusText('')1690 G2frame.GetStatusBar().SetStatusText('') 1698 1691 if r < 0 and c < 0: 1699 1692 if Atoms.IsSelection(): … … 1724 1717 Atoms.SelectRow(r,True) 1725 1718 n = colLabels.index('Name') 1726 G2frame. dataFrame.SetStatusText('Atom '+atomData[r][n]+' is to be moved')1719 G2frame.GetStatusBar().SetStatusText('Atom '+atomData[r][n]+' is to be moved') 1727 1720 else: #move it 1728 1721 item = atomData.pop(Atoms.frm) 1729 1722 atomData.insert(r,item) 1730 1723 Atoms.frm = -1 1731 G2frame. dataFrame.SetStatusText('')1724 G2frame.GetStatusBar().SetStatusText('') 1732 1725 wx.CallAfter(Paint) 1733 1726 else: … … 1891 1884 Types = Types[:7]+3*[wg.GRID_VALUE_FLOAT+':10,4',]+Types[7:] 1892 1885 SGData = data['General']['SGData'] 1893 G2frame. dataFrame.SetStatusText('')1886 G2frame.GetStatusBar().SetStatusText('') 1894 1887 if SGData['SGPolax']: 1895 G2frame. dataFrame.SetStatusText('Warning: The location of the origin is arbitrary in '+SGData['SGPolax'])1888 G2frame.GetStatusBar().SetStatusText('Warning: The location of the origin is arbitrary in '+SGData['SGPolax']) 1896 1889 Atoms.Bind(wg.EVT_GRID_CELL_CHANGE, ChangeAtomCell) 1897 1890 Atoms.Bind(wg.EVT_GRID_CELL_LEFT_DCLICK, AtomTypeSelect) … … 2204 2197 atom = atomData[ind] 2205 2198 if atom[ci+8] in rbAtmDict: 2206 G2frame. dataFrame.SetStatusText('**** ERROR - atom is in a rigid body and can not be deleted ****')2199 G2frame.GetStatusBar().SetStatusText('**** ERROR - atom is in a rigid body and can not be deleted ****') 2207 2200 else: 2208 2201 if atom[ci+8] in HydIds: #remove Hs from Hatom update dict … … 2931 2924 for txt,fmt,ifEdit,Id in useGUI[2]: 2932 2925 cellSizer.Add(wx.StaticText(layerData,label=txt),0,WACV) 2933 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)2926 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 2934 2927 cellVal = wx.TextCtrl(layerData,value=(fmt%(cell[Id+1])), 2935 2928 style=wx.TE_PROCESS_ENTER) … … 2964 2957 for i in range(2): 2965 2958 widthSizer.Add(wx.StaticText(layerData,label=u' layer width(%s) (<= 1\xb5m): '%(Labels[i])),0,WACV) 2966 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)2959 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 2967 2960 widthVal = wx.TextCtrl(layerData,value='%.3f'%(widths[i]),style=wx.TE_PROCESS_ENTER) 2968 2961 widthVal.Bind(wx.EVT_TEXT_ENTER,OnWidthChange) … … 3350 3343 if Layers['Stacking'][0] == 'recursive': 3351 3344 topLine.Add(wx.StaticText(layerData,label=' number of layers (<1022 or "infinite"): '),0,WACV) 3352 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)3345 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 3353 3346 numLayers = wx.TextCtrl(layerData,value=data['Layers']['Stacking'][1],style=wx.TE_PROCESS_ENTER) 3354 3347 numLayers.Bind(wx.EVT_TEXT_ENTER,OnNumLayers) … … 3390 3383 if len(Layers['Layers']): 3391 3384 layerNames = [layer['Name'] for layer in Layers['Layers']] 3392 G2frame. dataFrame.SetStatusText('')3385 G2frame.GetStatusBar().SetStatusText('') 3393 3386 layerData = G2frame.layerData 3394 3387 if layerData.GetSizer(): … … 3416 3409 if Layers['Laue'] == 'unknown': 3417 3410 laueSizer.Add(wx.StaticText(layerData,label=' Diffraction symmetry tolerance: '),0,WACV) 3418 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)3411 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 3419 3412 toler = wx.TextCtrl(layerData,value='%.3f'%(Layers['Toler']),style=wx.TE_PROCESS_ENTER) 3420 3413 toler.Bind(wx.EVT_TEXT_ENTER,OnToler) … … 3693 3686 Indx = {} 3694 3687 waveData = G2frame.waveData 3695 G2frame. dataFrame.SetStatusText('')3688 G2frame.GetStatusBar().SetStatusText('') 3696 3689 generalData = data['General'] 3697 3690 SGData = generalData['SGData'] … … 3838 3831 for ival,val in enumerate(wave[0]): 3839 3832 if np.any(CSI[Stype][0][ival]): 3840 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)3833 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 3841 3834 waveVal = wx.TextCtrl(waveData,value='%.5f'%(val),style=wx.TE_PROCESS_ENTER) 3842 3835 waveVal.Bind(wx.EVT_TEXT_ENTER,OnWaveVal) … … 4059 4052 'atNames':atNames,'rbRef':[0,1,2,False],'rbSeq':[],'SelSeq':[0,0],'useCount':0} 4060 4053 RBData['RBIds']['Residue'].append(rbId) 4061 G2frame. dataFrame.SetStatusText('New rigid body UNKRB added to set of Residue rigid bodies')4054 G2frame.GetStatusBar().SetStatusText('New rigid body UNKRB added to set of Residue rigid bodies') 4062 4055 4063 4056 ################################################################################ … … 4198 4191 4199 4192 # UpdateDrawAtoms executable code starts here 4200 G2frame. dataFrame.SetStatusText('')4193 G2frame.GetStatusBar().SetStatusText('') 4201 4194 generalData = data['General'] 4202 4195 SetupDrawingData() … … 4309 4302 if indx: 4310 4303 if len(indx) > 1: 4311 G2frame. dataFrame.SetStatusText('Select Custom Color, change color, Add to Custom Colors, then OK')4304 G2frame.GetStatusBar().SetStatusText('Select Custom Color, change color, Add to Custom Colors, then OK') 4312 4305 else: 4313 G2frame. dataFrame.SetStatusText('Change color, Add to Custom Colors, then OK')4306 G2frame.GetStatusBar().SetStatusText('Change color, Add to Custom Colors, then OK') 4314 4307 atomData = data['Drawing']['Atoms'] 4315 4308 cx,ct,cs,ci = data['Drawing']['atomPtrs'] … … 4338 4331 drawAtoms.ClearSelection() 4339 4332 dlg.Destroy() 4340 G2frame. dataFrame.SetStatusText('')4333 G2frame.GetStatusBar().SetStatusText('') 4341 4334 G2plt.PlotStructure(G2frame,data) 4342 4335 … … 4847 4840 cameraPosTxt = wx.StaticText(drawOptions,-1, 4848 4841 ' Camera Distance: '+'%.2f'%(drawingData['cameraPos']),name='cameraPos') 4849 G2frame. dataDisplay.cameraPosTxt = cameraPosTxt4842 G2frame.phaseDisplay.cameraPosTxt = cameraPosTxt 4850 4843 slideSizer.Add(cameraPosTxt,0,WACV) 4851 4844 cameraPos = wx.Slider(drawOptions,style=wx.SL_HORIZONTAL,value=drawingData['cameraPos'],name='cameraSlider') 4852 4845 cameraPos.SetRange(10,500) 4853 4846 cameraPos.Bind(wx.EVT_SLIDER, OnCameraPos) 4854 G2frame. dataDisplay.cameraSlider = cameraPos4847 G2frame.phaseDisplay.cameraSlider = cameraPos 4855 4848 slideSizer.Add(cameraPos,1,wx.EXPAND|wx.RIGHT) 4856 4849 … … 4864 4857 ZstepSizer = wx.BoxSizer(wx.HORIZONTAL) 4865 4858 ZstepSizer.Add(wx.StaticText(drawOptions,-1,' Z step:'),0,WACV) 4866 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)4859 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 4867 4860 Zstep = wx.TextCtrl(drawOptions,value='%.2f'%(drawingData['Zstep']), 4868 4861 style=wx.TE_PROCESS_ENTER) … … 4996 4989 viewDir.Bind(wx.EVT_TEXT_ENTER,OnViewDir) 4997 4990 viewDir.Bind(wx.EVT_KILL_FOCUS,OnViewDir) 4998 G2frame. dataDisplay.viewDir = viewDir4991 G2frame.phaseDisplay.viewDir = viewDir 4999 4992 lineSizer.Add(viewDir,0,WACV) 5000 4993 showSizer.Add(lineSizer) … … 5010 5003 viewPoint = wx.TextCtrl(drawOptions,value='%.3f %.3f %.3f'%(VP[0],VP[1],VP[2]), 5011 5004 style=wx.TE_PROCESS_ENTER,size=wx.Size(140,20),name='viewPoint') 5012 G2frame. dataDisplay.viewPoint = viewPoint5005 G2frame.phaseDisplay.viewPoint = viewPoint 5013 5006 viewPoint.Bind(wx.EVT_TEXT_ENTER,OnViewPoint) 5014 5007 viewPoint.Bind(wx.EVT_KILL_FOCUS,OnViewPoint) … … 5062 5055 radSizer = wx.BoxSizer(wx.HORIZONTAL) 5063 5056 radSizer.Add(wx.StaticText(drawOptions,-1,' Hydrogen radius, A: '),0,WACV) 5064 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5057 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5065 5058 sizeH = wx.TextCtrl(drawOptions,-1,value='%.2f'%(drawingData['sizeH']),size=wx.Size(60,20),style=wx.TE_PROCESS_ENTER) 5066 5059 sizeH.Bind(wx.EVT_TEXT_ENTER,OnSizeHatoms) … … 5069 5062 5070 5063 radSizer.Add(wx.StaticText(drawOptions,-1,' Bond search factor: '),0,WACV) 5071 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5064 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5072 5065 radFactor = wx.TextCtrl(drawOptions,value='%.2f'%(drawingData['radiusFactor']),size=wx.Size(60,20),style=wx.TE_PROCESS_ENTER) 5073 5066 radFactor.Bind(wx.EVT_TEXT_ENTER,OnRadFactor) … … 5132 5125 planeSizer2 = wx.BoxSizer(wx.HORIZONTAL) 5133 5126 planeSizer2.Add(wx.StaticText(drawOptions,label=' Phase shift (deg): '),0,WACV) 5134 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5127 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5135 5128 phase = wx.TextCtrl(drawOptions,value='%.2f'%(drawingData['Plane'][3]), 5136 5129 style=wx.TE_PROCESS_ENTER) … … 5153 5146 drawingData = data['Drawing'] 5154 5147 5155 G2frame. dataFrame.SetStatusText('')5148 G2frame.GetStatusBar().SetStatusText('') 5156 5149 if drawOptions.GetSizer(): 5157 5150 drawOptions.GetSizer().Clear(True) … … 5411 5404 shPenalty.Add(hklList,0,WACV) 5412 5405 shPenalty.Add(wx.StaticText(Texture,wx.ID_ANY,' Zero MRD tolerance: '),0,WACV) 5413 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5406 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5414 5407 shToler = wx.TextCtrl(Texture,wx.ID_ANY,'%.2f'%(Penalty[1]),style=wx.TE_PROCESS_ENTER) 5415 5408 shToler.Bind(wx.EVT_TEXT_ENTER,OnshToler) … … 5422 5415 if Texture.GetSizer(): 5423 5416 Texture.GetSizer().Clear(True) 5424 G2frame. dataFrame.SetStatusText('')5417 G2frame.GetStatusBar().SetStatusText('') 5425 5418 generalData = data['General'] 5426 5419 SGData = generalData['SGData'] … … 5492 5485 PTSizer.Add(wx.StaticText(Texture,-1,' Inverse pole figure XYZ: '),0,WACV) 5493 5486 PX = textureData['PFxyz'] 5494 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5487 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5495 5488 pfVal = wx.TextCtrl(Texture,-1,'%3.1f %3.1f %3.1f'%(PX[0],PX[1],PX[2]),style=wx.TE_PROCESS_ENTER) 5496 5489 pfVal.Bind(wx.EVT_TEXT_ENTER,OnPFValue) … … 5520 5513 for item in ODFkeys: 5521 5514 ODFSizer.Add(wx.StaticText(Texture,-1,item),0,WACV) 5522 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5515 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5523 5516 ODFval = wx.TextCtrl(Texture,wx.ID_ANY,'%8.3f'%(textureData['SH Coeff'][1][item]),style=wx.TE_PROCESS_ENTER) 5524 5517 ODFIndx[ODFval.GetId()] = item … … 5540 5533 angRef.Bind(wx.EVT_CHECKBOX, OnAngRef) 5541 5534 angSizer.Add(angRef,0,WACV) 5542 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5535 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5543 5536 angVal = wx.TextCtrl(Texture,wx.ID_ANY,'%8.2f'%(textureData[item][1]),style=wx.TE_PROCESS_ENTER) 5544 5537 valIndx[angVal.GetId()] = item … … 5930 5923 for i,name in enumerate(names): 5931 5924 thermSizer.Add(wx.StaticText(RigidBodies,-1,name+': '),0,WACV) 5932 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5925 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 5933 5926 thermVal = wx.TextCtrl(RigidBodies,-1,value='%8.4f'%(model[1][i]), 5934 5927 style=wx.TE_PROCESS_ENTER) … … 6003 5996 topSizer.Add(wx.StaticText(RigidBodies,-1,'Origin x,y,z:'),0,WACV) 6004 5997 for ix,x in enumerate(Orig): 6005 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)5998 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6006 5999 origX = wx.TextCtrl(RigidBodies,-1,value='%8.5f'%(x),style=wx.TE_PROCESS_ENTER) 6007 6000 origX.Bind(wx.EVT_TEXT_ENTER,OnOrigX) … … 6016 6009 topSizer.Add(wx.StaticText(RigidBodies,-1,'Rotation angle, vector:'),0,WACV) 6017 6010 for ix,x in enumerate(Orien): 6018 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6011 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6019 6012 orien = wx.TextCtrl(RigidBodies,-1,value='%8.4f'%(x),style=wx.TE_PROCESS_ENTER) 6020 6013 orien.Bind(wx.EVT_TEXT_ENTER,OnOrien) … … 6081 6074 for itors,tors in enumerate(RBObj['Torsions']): 6082 6075 torSizer.Add(wx.StaticText(RigidBodies,-1,'Torsion '+'%d'%(itors)),0,WACV) 6083 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6076 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6084 6077 torsTxt = wx.TextCtrl(RigidBodies,-1,value='%.3f'%(tors[0]),style=wx.TE_PROCESS_ENTER) 6085 6078 torsTxt.Bind(wx.EVT_TEXT_ENTER,OnTorsion) … … 6108 6101 6109 6102 def VecrbSizer(RBObj): 6110 G2frame. dataFrame.SetStatusText('NB: Rotation vector is in crystallographic space')6103 G2frame.GetStatusBar().SetStatusText('NB: Rotation vector is in crystallographic space') 6111 6104 6112 6105 def OnDelVecRB(event): … … 6186 6179 if 'macro' in general['Type']: 6187 6180 atomStyle = 'sticks' 6188 G2frame. dataFrame.SetStatusText('')6181 G2frame.GetStatusBar().SetStatusText('') 6189 6182 mainSizer = wx.BoxSizer(wx.VERTICAL) 6190 6183 if not data['RBModels']: … … 6211 6204 G2frame.bottomSizer.Add(ResrbSizer(rbObj)) 6212 6205 mainSizer.Add(G2frame.bottomSizer) 6213 G2frame. dataFrame.SetStatusText('NB: Rotation vector is in crystallographic space')6206 G2frame.GetStatusBar().SetStatusText('NB: Rotation vector is in crystallographic space') 6214 6207 G2plt.PlotStructure(G2frame,data) 6215 6208 if 'Vector' in data['RBModels'] and len(data['RBModels']['Vector']): … … 6254 6247 def OnRBAssign(event): 6255 6248 6256 G2frame. dataFrame.SetStatusText('')6249 G2frame.GetStatusBar().SetStatusText('') 6257 6250 RBData = G2frame.PatternTree.GetItemPyData( 6258 6251 G2gd.GetPatternTreeItemId(G2frame,G2frame.root,'Rigid bodies')) … … 6788 6781 Indx[posRef.GetId()] = [model,'Pos',ix] 6789 6782 atomsizer.Add(posRef,0,WACV) 6790 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6783 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6791 6784 posVal = wx.TextCtrl(G2frame.MCSA,-1,'%.4f'%(model['Pos'][0][ix]),style=wx.TE_PROCESS_ENTER) 6792 6785 posVal.Bind(wx.EVT_TEXT_ENTER,OnPosVal) … … 6862 6855 Indx[posRef.GetId()] = [model,'Pos',ix] 6863 6856 rbsizer1.Add(posRef,0,WACV) 6864 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6857 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6865 6858 posVal = wx.TextCtrl(G2frame.MCSA,-1,'%.4f'%(model['Pos'][0][ix]),style=wx.TE_PROCESS_ENTER) 6866 6859 posVal.Bind(wx.EVT_TEXT_ENTER,OnPosVal) … … 6885 6878 Ori = model['Ori'][0] 6886 6879 rbsizer2.Add(wx.StaticText(G2frame.MCSA,-1,'Oa: '),0,WACV) 6887 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6880 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6888 6881 angVal = wx.TextCtrl(G2frame.MCSA,-1,'%.5f'%(Ori[0]),style=wx.TE_PROCESS_ENTER) 6889 6882 angVal.Bind(wx.EVT_TEXT_ENTER,OnOriVal) … … 6933 6926 Indx[torRef.GetId()] = [model,'Tor',it] 6934 6927 rbsizer3.Add(torRef,0,WACV) 6935 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6928 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 6936 6929 torVal = wx.TextCtrl(G2frame.MCSA,-1,'%.4f'%(tor),style=wx.TE_PROCESS_ENTER) 6937 6930 torVal.Bind(wx.EVT_TEXT_ENTER,OnPosVal) … … 6997 6990 poRef.Bind(wx.EVT_CHECKBOX,OnPORef) 6998 6991 poSizer.Add(poRef,0,WACV) 6999 # azmthOff = G2G.ValidatedTxtCtrl(G2frame. dataDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)6992 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.phaseDisplay,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 7000 6993 poVal = wx.TextCtrl(G2frame.MCSA,-1,'%.3f'%(POData['Coef'][0]),style=wx.TE_PROCESS_ENTER) 7001 6994 poVal.Bind(wx.EVT_TEXT_ENTER,OnPOVal) … … 7082 7075 # if 'macro' in general['Type']: 7083 7076 # atomStyle = 'sticks' 7084 G2frame. dataFrame.SetStatusText('')7077 G2frame.GetStatusBar().SetStatusText('') 7085 7078 mainSizer = wx.BoxSizer(wx.VERTICAL) 7086 7079 if not data['MCSA']['Models']: … … 7217 7210 MCSAdata['Results'][0][0] = True 7218 7211 SetSolution(MCSAdata['Results'][0],data['MCSA']['Models']) 7219 G2frame. dataDisplay.SetFocus()7220 Page = G2frame. dataDisplay.FindPage('MC/SA')7221 G2frame. dataDisplay.SetSelection(Page)7212 G2frame.phaseDisplay.SetFocus() 7213 Page = G2frame.phaseDisplay.FindPage('MC/SA') 7214 G2frame.phaseDisplay.SetSelection(Page) 7222 7215 G2plt.PlotStructure(G2frame,data) 7223 7216 wx.CallAfter(UpdateMCSA) … … 7323 7316 7324 7317 # FillPawleyReflectionsGrid executable starts here 7325 G2frame. dataFrame.SetStatusText('To delete a Pawley reflection: select row & press Delete')7318 G2frame.GetStatusBar().SetStatusText('To delete a Pawley reflection: select row & press Delete') 7326 7319 generalData = data['General'] 7327 7320 if 'Pawley ref' in data: … … 7635 7628 G2plt.PlotStructure(G2frame,data) 7636 7629 7637 G2frame. dataFrame.SetStatusText('')7630 G2frame.GetStatusBar().SetStatusText('') 7638 7631 if 'Map Peaks' in data: 7639 G2frame. dataFrame.SetStatusText('Double click any column heading to sort')7632 G2frame.GetStatusBar().SetStatusText('Double click any column heading to sort') 7640 7633 mapPeaks = data['Map Peaks'] 7641 7634 rowLabels = [] … … 7867 7860 print ' Map search finished, time = %.2fs'%(time.time()-time0) 7868 7861 print ' No.peaks found:',len(peaks) 7869 Page = G2frame. dataDisplay.FindPage('Map peaks')7870 G2frame. dataDisplay.SetSelection(Page)7862 Page = G2frame.phaseDisplay.FindPage('Map peaks') 7863 G2frame.phaseDisplay.SetSelection(Page) 7871 7864 wx.CallAfter(FillMapPeaksGrid) 7872 7865 UpdateDrawAtoms() … … 8012 8005 return 8013 8006 # find the matching tab 8014 for PageNum in range(G2frame. dataDisplay.GetPageCount()):8015 if tabname == G2frame. dataDisplay.GetPageText(PageNum):8016 G2frame. dataDisplay.SetSelection(PageNum)8007 for PageNum in range(G2frame.phaseDisplay.GetPageCount()): 8008 if tabname == G2frame.phaseDisplay.GetPageText(PageNum): 8009 G2frame.phaseDisplay.SetSelection(PageNum) 8017 8010 return 8018 8011 else: … … 8031 8024 on a Phase data item window 8032 8025 ''' 8033 for page in G2frame. dataDisplay.gridList: # clear out all grids, forcing edits in progress to complete8026 for page in G2frame.phaseDisplay.gridList: # clear out all grids, forcing edits in progress to complete 8034 8027 page.ClearGrid() 8035 8028 page = event.GetSelection() … … 8037 8030 8038 8031 def ChangePage(page): 8039 text = G2frame. dataDisplay.GetPageText(page)8040 G2frame. dataDisplayPhaseText = text8032 text = G2frame.phaseDisplay.GetPageText(page) 8033 G2frame.phaseDisplayPhaseText = text 8041 8034 G2frame.dataFrame.helpKey = text # use name of Phase tab for help lookup 8042 8035 if text == 'General': 8043 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.DataGeneral)8036 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.DataGeneral) 8044 8037 UpdateGeneral() 8045 8038 elif text == 'Data': 8046 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.DataMenu)8039 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.DataMenu) 8047 8040 G2ddG.UpdateDData(G2frame,DData,data) 8048 8041 wx.CallAfter(G2plt.PlotSizeStrainPO,G2frame,data,hist='',Start=True) 8049 8042 elif text == 'Atoms': 8050 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.AtomsMenu)8043 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.AtomsMenu) 8051 8044 FillAtomsGrid(Atoms) 8052 8045 elif text == 'Layers': 8053 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.LayerData)8046 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.LayerData) 8054 8047 UpdateLayerData() 8055 8048 elif text == 'Wave Data' and data['General']['Modulated']: 8056 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.WavesData)8049 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.WavesData) 8057 8050 UpdateWavesData() 8058 8051 wx.CallAfter(G2plt.PlotStructure,G2frame,data,firstCall=True) 8059 8052 elif text == 'Draw Options': 8060 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.DataDrawOptions)8053 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.DataDrawOptions) 8061 8054 UpdateDrawOptions() 8062 8055 wx.CallAfter(G2plt.PlotStructure,G2frame,data,firstCall=True) 8063 8056 elif text == 'Draw Atoms': 8064 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.DrawAtomsMenu)8057 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.DrawAtomsMenu) 8065 8058 UpdateDrawAtoms() 8066 8059 wx.CallAfter(G2plt.PlotStructure,G2frame,data,firstCall=True) 8067 8060 elif text == 'RB Models': 8068 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RigidBodiesMenu)8061 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RigidBodiesMenu) 8069 8062 FillRigidBodyGrid() 8070 8063 elif text == 'Map peaks': 8071 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.MapPeaksMenu)8064 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.MapPeaksMenu) 8072 8065 FillMapPeaksGrid() 8073 8066 wx.CallAfter(G2plt.PlotStructure,G2frame,data,firstCall=True) 8074 8067 elif text == 'MC/SA': 8075 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.MCSAMenu)8068 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.MCSAMenu) 8076 8069 UpdateMCSA() 8077 8070 wx.CallAfter(G2plt.PlotStructure,G2frame,data,firstCall=True) 8078 8071 elif text == 'Texture': 8079 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.TextureMenu)8072 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.TextureMenu) 8080 8073 UpdateTexture() 8081 8074 wx.CallAfter(G2plt.PlotTexture,G2frame,data,Start=True) 8082 8075 elif text == 'Pawley reflections': 8083 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.PawleyMenu)8076 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.PawleyMenu) 8084 8077 FillPawleyReflectionsGrid() 8085 8078 else: … … 8090 8083 ''' 8091 8084 # General 8092 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.DataGeneral)8093 G2frame. dataFrame.Bind(wx.EVT_MENU, OnFourierMaps, id=G2gd.wxID_FOURCALC)8094 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSearchMaps, id=G2gd.wxID_FOURSEARCH)8095 G2frame. dataFrame.Bind(wx.EVT_MENU, OnChargeFlip, id=G2gd.wxID_CHARGEFLIP)8096 G2frame. dataFrame.Bind(wx.EVT_MENU, On4DChargeFlip, id=G2gd.wxID_4DCHARGEFLIP)8097 G2frame. dataFrame.Bind(wx.EVT_MENU, OnFourClear, id=G2gd.wxID_FOURCLEAR)8098 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRunSingleMCSA, id=G2gd.wxID_SINGLEMCSA)8099 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRunMultiMCSA, id=G2gd.wxID_MULTIMCSA)8100 G2frame. dataFrame.Bind(wx.EVT_MENU, OnTransform, id=G2gd.wxID_TRANSFORMSTRUCTURE)8085 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.DataGeneral) 8086 G2frame.Bind(wx.EVT_MENU, OnFourierMaps, id=G2gd.wxID_FOURCALC) 8087 G2frame.Bind(wx.EVT_MENU, OnSearchMaps, id=G2gd.wxID_FOURSEARCH) 8088 G2frame.Bind(wx.EVT_MENU, OnChargeFlip, id=G2gd.wxID_CHARGEFLIP) 8089 G2frame.Bind(wx.EVT_MENU, On4DChargeFlip, id=G2gd.wxID_4DCHARGEFLIP) 8090 G2frame.Bind(wx.EVT_MENU, OnFourClear, id=G2gd.wxID_FOURCLEAR) 8091 G2frame.Bind(wx.EVT_MENU, OnRunSingleMCSA, id=G2gd.wxID_SINGLEMCSA) 8092 G2frame.Bind(wx.EVT_MENU, OnRunMultiMCSA, id=G2gd.wxID_MULTIMCSA) 8093 G2frame.Bind(wx.EVT_MENU, OnTransform, id=G2gd.wxID_TRANSFORMSTRUCTURE) 8101 8094 # Data 8102 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.DataMenu)8103 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDataUse, id=G2gd.wxID_DATAUSE)8104 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDataCopy, id=G2gd.wxID_DATACOPY)8105 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDataCopyFlags, id=G2gd.wxID_DATACOPYFLAGS)8106 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSelDataCopy, id=G2gd.wxID_DATASELCOPY)8107 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPwdrAdd, id=G2gd.wxID_PWDRADD)8108 G2frame. dataFrame.Bind(wx.EVT_MENU, OnHklfAdd, id=G2gd.wxID_HKLFADD)8109 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDataDelete, id=G2gd.wxID_DATADELETE)8095 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.DataMenu) 8096 G2frame.Bind(wx.EVT_MENU, OnDataUse, id=G2gd.wxID_DATAUSE) 8097 G2frame.Bind(wx.EVT_MENU, OnDataCopy, id=G2gd.wxID_DATACOPY) 8098 G2frame.Bind(wx.EVT_MENU, OnDataCopyFlags, id=G2gd.wxID_DATACOPYFLAGS) 8099 G2frame.Bind(wx.EVT_MENU, OnSelDataCopy, id=G2gd.wxID_DATASELCOPY) 8100 G2frame.Bind(wx.EVT_MENU, OnPwdrAdd, id=G2gd.wxID_PWDRADD) 8101 G2frame.Bind(wx.EVT_MENU, OnHklfAdd, id=G2gd.wxID_HKLFADD) 8102 G2frame.Bind(wx.EVT_MENU, OnDataDelete, id=G2gd.wxID_DATADELETE) 8110 8103 # Atoms 8111 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.AtomsMenu)8112 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSetAll, id=G2gd.wxID_ATOMSSETALL)8113 G2frame. dataFrame.Bind(wx.EVT_MENU, AtomRefine, id=G2gd.wxID_ATOMSSETSEL)8114 G2frame. dataFrame.Bind(wx.EVT_MENU, AtomModify, id=G2gd.wxID_ATOMSMODIFY)8115 G2frame. dataFrame.Bind(wx.EVT_MENU, OnAtomInsert, id=G2gd.wxID_ATOMSEDITINSERT)8116 G2frame. dataFrame.Bind(wx.EVT_MENU, OnHydAtomAdd, id=G2gd.wxID_ADDHATOM)8117 G2frame. dataFrame.Bind(wx.EVT_MENU, AtomDelete, id=G2gd.wxID_ATOMSEDITDELETE)8118 G2frame. dataFrame.Bind(wx.EVT_MENU, AtomTransform, id=G2gd.wxID_ATOMSTRANSFORM)8119 # G2frame. dataFrame.Bind(wx.EVT_MENU, AtomRotate, id=G2gd.wxID_ATOMSROTATE)8104 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.AtomsMenu) 8105 G2frame.Bind(wx.EVT_MENU, OnSetAll, id=G2gd.wxID_ATOMSSETALL) 8106 G2frame.Bind(wx.EVT_MENU, AtomRefine, id=G2gd.wxID_ATOMSSETSEL) 8107 G2frame.Bind(wx.EVT_MENU, AtomModify, id=G2gd.wxID_ATOMSMODIFY) 8108 G2frame.Bind(wx.EVT_MENU, OnAtomInsert, id=G2gd.wxID_ATOMSEDITINSERT) 8109 G2frame.Bind(wx.EVT_MENU, OnHydAtomAdd, id=G2gd.wxID_ADDHATOM) 8110 G2frame.Bind(wx.EVT_MENU, AtomDelete, id=G2gd.wxID_ATOMSEDITDELETE) 8111 G2frame.Bind(wx.EVT_MENU, AtomTransform, id=G2gd.wxID_ATOMSTRANSFORM) 8112 # G2frame.Bind(wx.EVT_MENU, AtomRotate, id=G2gd.wxID_ATOMSROTATE) 8120 8113 8121 G2frame. dataFrame.Bind(wx.EVT_MENU, OnAtomAdd, id=G2gd.wxID_ATOMSEDITADD)8122 G2frame. dataFrame.Bind(wx.EVT_MENU, OnAtomViewAdd, id=G2gd.wxID_ATOMSVIEWADD)8123 G2frame. dataFrame.Bind(wx.EVT_MENU, OnAtomViewInsert, id=G2gd.wxID_ATOMVIEWINSERT)8124 G2frame. dataFrame.Bind(wx.EVT_MENU, OnHydAtomUpdate, id=G2gd.wxID_UPDATEHATOM)8125 G2frame. dataFrame.Bind(wx.EVT_MENU, OnAtomMove, id=G2gd.wxID_ATOMMOVE)8126 G2frame. dataFrame.Bind(wx.EVT_MENU, MakeMolecule, id=G2gd.wxID_MAKEMOLECULE)8127 G2frame. dataFrame.Bind(wx.EVT_MENU, OnReloadDrawAtoms, id=G2gd.wxID_RELOADDRAWATOMS)8128 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDistAngle, id=G2gd.wxID_ATOMSDISAGL)8129 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDistAnglePrt, id=G2gd.wxID_ATOMSPDISAGL)8130 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDensity, id=G2gd.wxID_ATOMSDENSITY)8131 G2frame. dataFrame.Bind(wx.EVT_MENU, OnValidProtein, id=G2gd.wxID_VALIDPROTEIN)8132 G2frame. dataFrame.Bind(wx.EVT_MENU, OnIsoDistortCalc, id=G2gd.wxID_ISODISP)8114 G2frame.Bind(wx.EVT_MENU, OnAtomAdd, id=G2gd.wxID_ATOMSEDITADD) 8115 G2frame.Bind(wx.EVT_MENU, OnAtomViewAdd, id=G2gd.wxID_ATOMSVIEWADD) 8116 G2frame.Bind(wx.EVT_MENU, OnAtomViewInsert, id=G2gd.wxID_ATOMVIEWINSERT) 8117 G2frame.Bind(wx.EVT_MENU, OnHydAtomUpdate, id=G2gd.wxID_UPDATEHATOM) 8118 G2frame.Bind(wx.EVT_MENU, OnAtomMove, id=G2gd.wxID_ATOMMOVE) 8119 G2frame.Bind(wx.EVT_MENU, MakeMolecule, id=G2gd.wxID_MAKEMOLECULE) 8120 G2frame.Bind(wx.EVT_MENU, OnReloadDrawAtoms, id=G2gd.wxID_RELOADDRAWATOMS) 8121 G2frame.Bind(wx.EVT_MENU, OnDistAngle, id=G2gd.wxID_ATOMSDISAGL) 8122 G2frame.Bind(wx.EVT_MENU, OnDistAnglePrt, id=G2gd.wxID_ATOMSPDISAGL) 8123 G2frame.Bind(wx.EVT_MENU, OnDensity, id=G2gd.wxID_ATOMSDENSITY) 8124 G2frame.Bind(wx.EVT_MENU, OnValidProtein, id=G2gd.wxID_VALIDPROTEIN) 8125 G2frame.Bind(wx.EVT_MENU, OnIsoDistortCalc, id=G2gd.wxID_ISODISP) 8133 8126 if 'HydIds' in data['General']: 8134 8127 G2frame.dataFrame.AtomEdit.Enable(G2gd.wxID_UPDATEHATOM,True) … … 8136 8129 G2frame.dataFrame.AtomEdit.Enable(G2gd.wxID_UPDATEHATOM,False) 8137 8130 for id in G2frame.dataFrame.ReImportMenuId: #loop over submenu items 8138 G2frame. dataFrame.Bind(wx.EVT_MENU, OnReImport, id=id)8131 G2frame.Bind(wx.EVT_MENU, OnReImport, id=id) 8139 8132 # Wave Data 8140 8133 if data['General']['Modulated']: 8141 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.WavesData)8142 G2frame. dataFrame.Bind(wx.EVT_MENU, OnWaveVary, id=G2gd.wxID_WAVEVARY)8134 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.WavesData) 8135 G2frame.Bind(wx.EVT_MENU, OnWaveVary, id=G2gd.wxID_WAVEVARY) 8143 8136 # Stacking faults 8144 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.LayerData)8145 G2frame. dataFrame.Bind(wx.EVT_MENU, OnCopyPhase, id=G2gd.wxID_COPYPHASE)8146 G2frame. dataFrame.Bind(wx.EVT_MENU, OnLoadDIFFaX, id=G2gd.wxID_LOADDIFFAX)8147 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSimulate, id=G2gd.wxID_LAYERSIMULATE)8148 G2frame. dataFrame.Bind(wx.EVT_MENU, OnFitLayers, id=G2gd.wxID_LAYERSFIT)8149 G2frame. dataFrame.Bind(wx.EVT_MENU, OnSeqSimulate, id=G2gd.wxID_SEQUENCESIMULATE)8137 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.LayerData) 8138 G2frame.Bind(wx.EVT_MENU, OnCopyPhase, id=G2gd.wxID_COPYPHASE) 8139 G2frame.Bind(wx.EVT_MENU, OnLoadDIFFaX, id=G2gd.wxID_LOADDIFFAX) 8140 G2frame.Bind(wx.EVT_MENU, OnSimulate, id=G2gd.wxID_LAYERSIMULATE) 8141 G2frame.Bind(wx.EVT_MENU, OnFitLayers, id=G2gd.wxID_LAYERSFIT) 8142 G2frame.Bind(wx.EVT_MENU, OnSeqSimulate, id=G2gd.wxID_SEQUENCESIMULATE) 8150 8143 # Draw Options 8151 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.DataDrawOptions)8144 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.DataDrawOptions) 8152 8145 # Draw Atoms 8153 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.DrawAtomsMenu)8154 G2frame. dataFrame.Bind(wx.EVT_MENU, DrawAtomStyle, id=G2gd.wxID_DRAWATOMSTYLE)8155 G2frame. dataFrame.Bind(wx.EVT_MENU, DrawAtomLabel, id=G2gd.wxID_DRAWATOMLABEL)8156 G2frame. dataFrame.Bind(wx.EVT_MENU, DrawAtomColor, id=G2gd.wxID_DRAWATOMCOLOR)8157 G2frame. dataFrame.Bind(wx.EVT_MENU, ResetAtomColors, id=G2gd.wxID_DRAWATOMRESETCOLOR)8158 G2frame. dataFrame.Bind(wx.EVT_MENU, OnEditAtomRadii, id=G2gd.wxID_DRWAEDITRADII)8159 G2frame. dataFrame.Bind(wx.EVT_MENU, SetViewPoint, id=G2gd.wxID_DRAWVIEWPOINT)8160 G2frame. dataFrame.Bind(wx.EVT_MENU, AddSymEquiv, id=G2gd.wxID_DRAWADDEQUIV)8161 G2frame. dataFrame.Bind(wx.EVT_MENU, AddSphere, id=G2gd.wxID_DRAWADDSPHERE)8162 G2frame. dataFrame.Bind(wx.EVT_MENU, TransformSymEquiv, id=G2gd.wxID_DRAWTRANSFORM)8163 G2frame. dataFrame.Bind(wx.EVT_MENU, FillCoordSphere, id=G2gd.wxID_DRAWFILLCOORD)8164 G2frame. dataFrame.Bind(wx.EVT_MENU, FillUnitCell, id=G2gd.wxID_DRAWFILLCELL)8165 G2frame. dataFrame.Bind(wx.EVT_MENU, DrawAtomsDelete, id=G2gd.wxID_DRAWDELETE)8166 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDrawDistVP, id=G2gd.wxID_DRAWDISTVP)8167 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDrawDAT, id=G2gd.wxID_DRAWDISAGLTOR)8168 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDrawPlane, id=G2gd.wxID_DRAWPLANE)8169 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRBOND)8170 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRANGLE)8171 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRPLANE)8172 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRCHIRAL)8173 G2frame. dataFrame.Bind(wx.EVT_MENU, OnDefineRB, id=G2gd.wxID_DRAWDEFINERB)8146 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.DrawAtomsMenu) 8147 G2frame.Bind(wx.EVT_MENU, DrawAtomStyle, id=G2gd.wxID_DRAWATOMSTYLE) 8148 G2frame.Bind(wx.EVT_MENU, DrawAtomLabel, id=G2gd.wxID_DRAWATOMLABEL) 8149 G2frame.Bind(wx.EVT_MENU, DrawAtomColor, id=G2gd.wxID_DRAWATOMCOLOR) 8150 G2frame.Bind(wx.EVT_MENU, ResetAtomColors, id=G2gd.wxID_DRAWATOMRESETCOLOR) 8151 G2frame.Bind(wx.EVT_MENU, OnEditAtomRadii, id=G2gd.wxID_DRWAEDITRADII) 8152 G2frame.Bind(wx.EVT_MENU, SetViewPoint, id=G2gd.wxID_DRAWVIEWPOINT) 8153 G2frame.Bind(wx.EVT_MENU, AddSymEquiv, id=G2gd.wxID_DRAWADDEQUIV) 8154 G2frame.Bind(wx.EVT_MENU, AddSphere, id=G2gd.wxID_DRAWADDSPHERE) 8155 G2frame.Bind(wx.EVT_MENU, TransformSymEquiv, id=G2gd.wxID_DRAWTRANSFORM) 8156 G2frame.Bind(wx.EVT_MENU, FillCoordSphere, id=G2gd.wxID_DRAWFILLCOORD) 8157 G2frame.Bind(wx.EVT_MENU, FillUnitCell, id=G2gd.wxID_DRAWFILLCELL) 8158 G2frame.Bind(wx.EVT_MENU, DrawAtomsDelete, id=G2gd.wxID_DRAWDELETE) 8159 G2frame.Bind(wx.EVT_MENU, OnDrawDistVP, id=G2gd.wxID_DRAWDISTVP) 8160 G2frame.Bind(wx.EVT_MENU, OnDrawDAT, id=G2gd.wxID_DRAWDISAGLTOR) 8161 G2frame.Bind(wx.EVT_MENU, OnDrawPlane, id=G2gd.wxID_DRAWPLANE) 8162 G2frame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRBOND) 8163 G2frame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRANGLE) 8164 G2frame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRPLANE) 8165 G2frame.Bind(wx.EVT_MENU, OnRestraint, id=G2gd.wxID_DRAWRESTRCHIRAL) 8166 G2frame.Bind(wx.EVT_MENU, OnDefineRB, id=G2gd.wxID_DRAWDEFINERB) 8174 8167 # RB Models 8175 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.RigidBodiesMenu)8176 G2frame. dataFrame.Bind(wx.EVT_MENU, OnAutoFindResRB, id=G2gd.wxID_AUTOFINDRESRB)8177 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRBAssign, id=G2gd.wxID_ASSIGNATMS2RB)8178 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRBCopyParms, id=G2gd.wxID_COPYRBPARMS)8179 G2frame. dataFrame.Bind(wx.EVT_MENU, OnGlobalResRBTherm, id=G2gd.wxID_GLOBALTHERM)8180 G2frame. dataFrame.Bind(wx.EVT_MENU, OnGlobalResRBRef, id=G2gd.wxID_GLOBALRESREFINE)8181 G2frame. dataFrame.Bind(wx.EVT_MENU, OnRBRemoveAll, id=G2gd.wxID_RBREMOVEALL)8168 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.RigidBodiesMenu) 8169 G2frame.Bind(wx.EVT_MENU, OnAutoFindResRB, id=G2gd.wxID_AUTOFINDRESRB) 8170 G2frame.Bind(wx.EVT_MENU, OnRBAssign, id=G2gd.wxID_ASSIGNATMS2RB) 8171 G2frame.Bind(wx.EVT_MENU, OnRBCopyParms, id=G2gd.wxID_COPYRBPARMS) 8172 G2frame.Bind(wx.EVT_MENU, OnGlobalResRBTherm, id=G2gd.wxID_GLOBALTHERM) 8173 G2frame.Bind(wx.EVT_MENU, OnGlobalResRBRef, id=G2gd.wxID_GLOBALRESREFINE) 8174 G2frame.Bind(wx.EVT_MENU, OnRBRemoveAll, id=G2gd.wxID_RBREMOVEALL) 8182 8175 # Map peaks 8183 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.MapPeaksMenu)8184 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksMove, id=G2gd.wxID_PEAKSMOVE)8185 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksViewPoint, id=G2gd.wxID_PEAKSVIEWPT)8186 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksDistVP, id=G2gd.wxID_PEAKSDISTVP)8187 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksDA, id=G2gd.wxID_PEAKSDA)8188 G2frame. dataFrame.Bind(wx.EVT_MENU, OnShowBonds, id=G2gd.wxID_SHOWBONDS)8189 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksEquiv, id=G2gd.wxID_FINDEQVPEAKS)8190 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksUnique, id=G2gd.wxID_PEAKSUNIQUE)8191 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksDelete, id=G2gd.wxID_PEAKSDELETE)8192 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPeaksClear, id=G2gd.wxID_PEAKSCLEAR)8176 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.MapPeaksMenu) 8177 G2frame.Bind(wx.EVT_MENU, OnPeaksMove, id=G2gd.wxID_PEAKSMOVE) 8178 G2frame.Bind(wx.EVT_MENU, OnPeaksViewPoint, id=G2gd.wxID_PEAKSVIEWPT) 8179 G2frame.Bind(wx.EVT_MENU, OnPeaksDistVP, id=G2gd.wxID_PEAKSDISTVP) 8180 G2frame.Bind(wx.EVT_MENU, OnPeaksDA, id=G2gd.wxID_PEAKSDA) 8181 G2frame.Bind(wx.EVT_MENU, OnShowBonds, id=G2gd.wxID_SHOWBONDS) 8182 G2frame.Bind(wx.EVT_MENU, OnPeaksEquiv, id=G2gd.wxID_FINDEQVPEAKS) 8183 G2frame.Bind(wx.EVT_MENU, OnPeaksUnique, id=G2gd.wxID_PEAKSUNIQUE) 8184 G2frame.Bind(wx.EVT_MENU, OnPeaksDelete, id=G2gd.wxID_PEAKSDELETE) 8185 G2frame.Bind(wx.EVT_MENU, OnPeaksClear, id=G2gd.wxID_PEAKSCLEAR) 8193 8186 # MC/SA 8194 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.MCSAMenu)8195 G2frame. dataFrame.Bind(wx.EVT_MENU, OnMCSAaddAtom, id=G2gd.wxID_ADDMCSAATOM)8196 G2frame. dataFrame.Bind(wx.EVT_MENU, OnMCSAaddRB, id=G2gd.wxID_ADDMCSARB)8197 G2frame. dataFrame.Bind(wx.EVT_MENU, OnMCSAclear, id=G2gd.wxID_CLEARMCSARB)8198 G2frame. dataFrame.Bind(wx.EVT_MENU, OnMCSAmove, id=G2gd.wxID_MOVEMCSA)8199 G2frame. dataFrame.Bind(wx.EVT_MENU, OnClearResults, id=G2gd.wxID_MCSACLEARRESULTS)8187 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.MCSAMenu) 8188 G2frame.Bind(wx.EVT_MENU, OnMCSAaddAtom, id=G2gd.wxID_ADDMCSAATOM) 8189 G2frame.Bind(wx.EVT_MENU, OnMCSAaddRB, id=G2gd.wxID_ADDMCSARB) 8190 G2frame.Bind(wx.EVT_MENU, OnMCSAclear, id=G2gd.wxID_CLEARMCSARB) 8191 G2frame.Bind(wx.EVT_MENU, OnMCSAmove, id=G2gd.wxID_MOVEMCSA) 8192 G2frame.Bind(wx.EVT_MENU, OnClearResults, id=G2gd.wxID_MCSACLEARRESULTS) 8200 8193 # Texture 8201 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.TextureMenu)8202 G2frame. dataFrame.Bind(wx.EVT_MENU, OnTextureRefine, id=G2gd.wxID_REFINETEXTURE)8203 # G2frame. dataFrame.Bind(wx.EVT_MENU, OnTextureClear, id=G2gd.wxID_CLEARTEXTURE)8194 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.TextureMenu) 8195 G2frame.Bind(wx.EVT_MENU, OnTextureRefine, id=G2gd.wxID_REFINETEXTURE) 8196 # G2frame.Bind(wx.EVT_MENU, OnTextureClear, id=G2gd.wxID_CLEARTEXTURE) 8204 8197 # Pawley reflections 8205 FillSelectPageMenu(TabSelectionIdDict, G2frame.data Frame.PawleyMenu)8206 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleySet, id=G2gd.wxID_PAWLEYSET)8207 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleyLoad, id=G2gd.wxID_PAWLEYLOAD)8208 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleyEstimate, id=G2gd.wxID_PAWLEYESTIMATE)8209 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleyUpdate, id=G2gd.wxID_PAWLEYUPDATE)8210 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleySelAll, id=G2gd.wxID_PAWLEYSELALL)8211 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleySelNone, id=G2gd.wxID_PAWLEYSELNONE)8212 G2frame. dataFrame.Bind(wx.EVT_MENU, OnPawleyToggle, id=G2gd.wxID_PAWLEYSELTOGGLE)8198 FillSelectPageMenu(TabSelectionIdDict, G2frame.dataWindow.PawleyMenu) 8199 G2frame.Bind(wx.EVT_MENU, OnPawleySet, id=G2gd.wxID_PAWLEYSET) 8200 G2frame.Bind(wx.EVT_MENU, OnPawleyLoad, id=G2gd.wxID_PAWLEYLOAD) 8201 G2frame.Bind(wx.EVT_MENU, OnPawleyEstimate, id=G2gd.wxID_PAWLEYESTIMATE) 8202 G2frame.Bind(wx.EVT_MENU, OnPawleyUpdate, id=G2gd.wxID_PAWLEYUPDATE) 8203 G2frame.Bind(wx.EVT_MENU, OnPawleySelAll, id=G2gd.wxID_PAWLEYSELALL) 8204 G2frame.Bind(wx.EVT_MENU, OnPawleySelNone, id=G2gd.wxID_PAWLEYSELNONE) 8205 G2frame.Bind(wx.EVT_MENU, OnPawleyToggle, id=G2gd.wxID_PAWLEYSELTOGGLE) 8213 8206 8214 8207 # UpdatePhaseData execution starts here … … 8230 8223 global rbAtmDict 8231 8224 rbAtmDict = {} 8232 if G2frame.dataDisplay:8233 G2frame.dataDisplay.Destroy()8234 8225 PhaseName = G2frame.PatternTree.GetItemText(Item) 8235 8226 G2gd.SetDataMenuBar(G2frame) 8236 G2frame. dataFrame.SetLabel('Phase Data for '+PhaseName)8237 G2frame.data Frame.CreateStatusBar()8227 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Phase Data for '+PhaseName) 8228 G2frame.dataWindow.ClearData() 8238 8229 if GSASIIpath.GetConfigValue('debug'): 8239 G2frame. dataDisplay = G2G.GSNoteBook(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize(),8240 style=wx.aui.AUI_NB_ DEFAULT_STYLE ^ wx.aui.AUI_NB_CLOSE_ON_ACTIVE_TAB)8230 G2frame.phaseDisplay = G2G.GSNoteBook(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetClientSize(), 8231 style=wx.aui.AUI_NB_TOP | wx.aui.AUI_NB_TAB_SPLIT | wx.aui.AUI_NB_TAB_MOVE) 8241 8232 else: 8242 G2frame. dataDisplay = G2G.GSNoteBook(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize())8243 G2frame. dataDisplay.gridList = [] # list of all grids in notebook8233 G2frame.phaseDisplay = G2G.GSNoteBook(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetClientSize()) 8234 G2frame.phaseDisplay.gridList = [] # list of all grids in notebook 8244 8235 Pages = [] 8245 G2frame. dataDisplay.gridList = []8246 General = wx.ScrolledWindow(G2frame. dataDisplay)8247 G2frame. dataDisplay.AddPage(General,'General')8236 G2frame.phaseDisplay.gridList = [] 8237 General = wx.ScrolledWindow(G2frame.phaseDisplay) 8238 G2frame.phaseDisplay.AddPage(General,'General') 8248 8239 Pages.append('General') 8249 DData = wx.ScrolledWindow(G2frame. dataDisplay)8250 G2frame. dataDisplay.AddPage(DData,'Data')8240 DData = wx.ScrolledWindow(G2frame.phaseDisplay) 8241 G2frame.phaseDisplay.AddPage(DData,'Data') 8251 8242 Pages.append('Data') 8252 Atoms = G2G.GSGrid(G2frame. dataDisplay)8253 G2frame. dataDisplay.gridList.append(Atoms)8254 G2frame. dataDisplay.AddPage(Atoms,'Atoms')8243 Atoms = G2G.GSGrid(G2frame.phaseDisplay) 8244 G2frame.phaseDisplay.gridList.append(Atoms) 8245 G2frame.phaseDisplay.AddPage(Atoms,'Atoms') 8255 8246 Pages.append('Atoms') 8256 8247 if data['General']['Modulated']: 8257 G2frame.waveData = wx.ScrolledWindow(G2frame. dataDisplay)8258 G2frame. dataDisplay.AddPage(G2frame.waveData,'Wave Data')8248 G2frame.waveData = wx.ScrolledWindow(G2frame.phaseDisplay) 8249 G2frame.phaseDisplay.AddPage(G2frame.waveData,'Wave Data') 8259 8250 Pages.append('Wave Data') 8260 8251 if data['General']['Type'] == 'faulted': 8261 G2frame.layerData = wx.ScrolledWindow(G2frame. dataDisplay)8262 G2frame. dataDisplay.AddPage(G2frame.layerData,'Layers')8252 G2frame.layerData = wx.ScrolledWindow(G2frame.phaseDisplay) 8253 G2frame.phaseDisplay.AddPage(G2frame.layerData,'Layers') 8263 8254 Pages.append('Layers') 8264 drawOptions = wx.ScrolledWindow(G2frame. dataDisplay)8265 G2frame. dataDisplay.AddPage(drawOptions,'Draw Options')8255 drawOptions = wx.ScrolledWindow(G2frame.phaseDisplay) 8256 G2frame.phaseDisplay.AddPage(drawOptions,'Draw Options') 8266 8257 Pages.append('Draw Options') 8267 drawAtoms = G2G.GSGrid(G2frame. dataDisplay)8268 G2frame. dataDisplay.gridList.append(drawAtoms)8269 G2frame. dataDisplay.AddPage(drawAtoms,'Draw Atoms')8258 drawAtoms = G2G.GSGrid(G2frame.phaseDisplay) 8259 G2frame.phaseDisplay.gridList.append(drawAtoms) 8260 G2frame.phaseDisplay.AddPage(drawAtoms,'Draw Atoms') 8270 8261 Pages.append('Draw Atoms') 8271 8262 if data['General']['Type'] not in ['faulted',] and not data['General']['Modulated']: 8272 RigidBodies = wx.ScrolledWindow(G2frame. dataDisplay)8273 G2frame. dataDisplay.AddPage(RigidBodies,'RB Models')8263 RigidBodies = wx.ScrolledWindow(G2frame.phaseDisplay) 8264 G2frame.phaseDisplay.AddPage(RigidBodies,'RB Models') 8274 8265 Pages.append('RB Models') 8275 MapPeaks = G2G.GSGrid(G2frame. dataDisplay)8276 G2frame. dataDisplay.gridList.append(MapPeaks)8277 G2frame. dataDisplay.AddPage(MapPeaks,'Map peaks')8266 MapPeaks = G2G.GSGrid(G2frame.phaseDisplay) 8267 G2frame.phaseDisplay.gridList.append(MapPeaks) 8268 G2frame.phaseDisplay.AddPage(MapPeaks,'Map peaks') 8278 8269 Pages.append('Map peaks') 8279 8270 if data['General']['Type'] not in ['faulted',] and not data['General']['Modulated']: 8280 G2frame.MCSA = wx.ScrolledWindow(G2frame. dataDisplay)8281 G2frame. dataDisplay.AddPage(G2frame.MCSA,'MC/SA')8271 G2frame.MCSA = wx.ScrolledWindow(G2frame.phaseDisplay) 8272 G2frame.phaseDisplay.AddPage(G2frame.MCSA,'MC/SA') 8282 8273 Pages.append('MC/SA') 8283 Texture = wx.ScrolledWindow(G2frame. dataDisplay)8284 G2frame. dataDisplay.AddPage(Texture,'Texture')8274 Texture = wx.ScrolledWindow(G2frame.phaseDisplay) 8275 G2frame.phaseDisplay.AddPage(Texture,'Texture') 8285 8276 Pages.append('Texture') 8286 G2frame.PawleyRefl = G2G.GSGrid(G2frame. dataDisplay)8287 G2frame. dataDisplay.gridList.append(G2frame.PawleyRefl)8288 G2frame. dataDisplay.AddPage(G2frame.PawleyRefl,'Pawley reflections')8277 G2frame.PawleyRefl = G2G.GSGrid(G2frame.phaseDisplay) 8278 G2frame.phaseDisplay.gridList.append(G2frame.PawleyRefl) 8279 G2frame.phaseDisplay.AddPage(G2frame.PawleyRefl,'Pawley reflections') 8289 8280 Pages.append('Pawley reflections') 8290 8281 G2frame.dataFrame.AtomCompute.Enable(G2gd.wxID_ISODISP,'ISODISTORT' in data) 8291 8282 G2frame.dataFrame.AtomCompute.Enable(G2gd.wxID_VALIDPROTEIN,'macro' in data['General']['Type']) 8292 G2frame. dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged)8283 G2frame.phaseDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) 8293 8284 FillMenus() 8294 8285 if oldPage is None or oldPage == 0: 8295 8286 ChangePage(0) 8296 wx.CallAfter(G2frame. dataDisplay.SendSizeEvent)8287 wx.CallAfter(G2frame.phaseDisplay.SendSizeEvent) 8297 8288 elif oldPage: 8298 8289 SetupGeneral() # not sure why one might need this when moving from phase to phase; but does not hurt 8299 G2frame. dataDisplay.SetSelection(oldPage)8290 G2frame.phaseDisplay.SetSelection(oldPage) -
branch/2frame/GSASIIplot.py
r2871 r2888 1826 1826 Phases = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Reflection Lists')) 1827 1827 Page.phaseList = sorted(Phases.keys()) # define an order for phases (once!) 1828 G2frame.data Frame.Bind(wx.EVT_MENU, onMoveDiffCurve, id=G2frame.dataFrame.moveDiffCurve.GetId())1829 G2frame.data Frame.Bind(wx.EVT_MENU, onMoveTopTick, id=G2frame.dataFrame.moveTickLoc.GetId())1830 G2frame.data Frame.Bind(wx.EVT_MENU, onMoveTickSpace, id=G2frame.dataFrame.moveTickSpc.GetId())1831 G2frame.data Frame.moveDiffCurve.Enable(False)1832 G2frame.data Frame.moveTickLoc.Enable(False)1833 G2frame.data Frame.moveTickSpc.Enable(False)1828 G2frame.dataWindow.Bind(wx.EVT_MENU, onMoveDiffCurve, id=G2frame.dataWindow.moveDiffCurve.GetId()) 1829 G2frame.dataWindow.Bind(wx.EVT_MENU, onMoveTopTick, id=G2frame.dataWindow.moveTickLoc.GetId()) 1830 G2frame.dataWindow.Bind(wx.EVT_MENU, onMoveTickSpace, id=G2frame.dataWindow.moveTickSpc.GetId()) 1831 G2frame.dataWindow.moveDiffCurve.Enable(False) 1832 G2frame.dataWindow.moveTickLoc.Enable(False) 1833 G2frame.dataWindow.moveTickSpc.Enable(False) 1834 1834 elif G2frame.PatternTree.GetItemText(G2frame.PickId) == 'Peak List': 1835 G2frame.dataFrame.Bind(wx.EVT_MENU, onMovePeak, id=G2frame.data Frame.movePeak.GetId())1835 G2frame.dataFrame.Bind(wx.EVT_MENU, onMovePeak, id=G2frame.dataWindow.movePeak.GetId()) 1836 1836 # save information needed to reload from tree and redraw 1837 1837 kwargs={'PatternName':G2frame.PatternTree.GetItemText(G2frame.PatternId)} … … 2154 2154 data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, 'Peak List')) 2155 2155 selectedPeaks = list(set( 2156 [row for row,col in G2frame. dataDisplay.GetSelectedCells()] +2157 G2frame. dataDisplay.GetSelectedRows()))2158 G2frame.data Frame.movePeak.Enable(len(selectedPeaks) == 1) # allow peak move from table when one peak is selected2156 [row for row,col in G2frame.reflGrid.GetSelectedCells()] + 2157 G2frame.reflGrid.GetSelectedRows())) 2158 G2frame.dataWindow.movePeak.Enable(len(selectedPeaks) == 1) # allow peak move from table when one peak is selected 2159 2159 for i,item in enumerate(data['peaks']): 2160 2160 if i in selectedPeaks: … … 2292 2292 if 'PWDR' in G2frame.PatternTree.GetItemText(G2frame.PickId): 2293 2293 if len(Page.tickDict.keys()) == 1: 2294 G2frame.data Frame.moveTickLoc.Enable(True)2294 G2frame.dataWindow.moveTickLoc.Enable(True) 2295 2295 elif len(Page.tickDict.keys()) > 1: 2296 G2frame.data Frame.moveTickLoc.Enable(True)2297 G2frame.data Frame.moveTickSpc.Enable(True)2296 G2frame.dataWindow.moveTickLoc.Enable(True) 2297 G2frame.dataWindow.moveTickSpc.Enable(True) 2298 2298 if DifLine[0]: 2299 G2frame.data Frame.moveDiffCurve.Enable(True)2299 G2frame.dataWindow.moveDiffCurve.Enable(True) 2300 2300 2301 2301 ################################################################################ … … 4375 4375 triggers the addition of a d-zero. 4376 4376 ''' 4377 G2frame. dataFrame.GetStatusBar().SetStatusText('Add strain ring active - LB pick d-zero value',0)4377 G2frame.GetStatusBar().SetStatusText('Add strain ring active - LB pick d-zero value',0) 4378 4378 G2frame.PickId = G2gd.GetPatternTreeItemId(G2frame,G2frame.Image, 'Stress/Strain') 4379 4379 data = G2frame.PatternTree.GetItemPyData(G2frame.PickId) … … 4856 4856 Data['ring'].append([xpos,ypos]) 4857 4857 elif event.button == 3: 4858 G2frame. dataFrame.GetStatusBar().SetStatusText('Calibrating...',0)4858 G2frame.GetStatusBar().SetStatusText('Calibrating...',0) 4859 4859 if G2img.ImageCalibrate(G2frame,Data): 4860 G2frame. dataFrame.GetStatusBar().SetStatusText('Calibration successful - Show ring picks to check',0)4860 G2frame.GetStatusBar().SetStatusText('Calibration successful - Show ring picks to check',0) 4861 4861 print 'Calibration successful' 4862 4862 else: 4863 G2frame. dataFrame.GetStatusBar().SetStatusText('Calibration failed - Show ring picks to diagnose',0)4863 G2frame.GetStatusBar().SetStatusText('Calibration failed - Show ring picks to diagnose',0) 4864 4864 print 'Calibration failed' 4865 4865 G2frame.ifGetRing = False … … 6247 6247 GL.glMultMatrixf(B4mat.T) 6248 6248 GL.glDisable(GL.GL_LIGHTING) 6249 GL.gl RasterPos3f(0,0,0)6249 GL.glWindowPos3f(0,0,0) 6250 6250 GL.glMultMatrixf(matRot) 6251 6251 GL.glRotate(180,1,0,0) #fix to flip about x-axis … … 6254 6254 GL.glEnable(GL.GL_LIGHTING) 6255 6255 GL.glPopMatrix() 6256 6256 6257 6257 def RenderMap(rho,rhoXYZ,indx,Rok): 6258 6258 GL.glShadeModel(GL.GL_FLAT) -
branch/2frame/GSASIIpwdGUI.py
r2846 r2888 20 20 import wx 21 21 import wx.grid as wg 22 import wx.lib.scrolledpanel as wxscroll23 22 import numpy as np 24 23 import numpy.ma as ma … … 424 423 '''respond to selection of PWDR powder peaks data tree item. 425 424 ''' 426 if G2frame.dataDisplay:427 G2frame.dataFrame.Clear()428 429 425 def OnAutoSearch(event): 430 426 PatternId = G2frame.PatternId … … 495 491 for item in ['Background','Instrument Parameters','Peak List']: 496 492 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, item),cPickle.load(file)) 497 if G2frame.data Display.GetName() == item:493 if G2frame.dataWindow.GetName() == item: 498 494 if item == 'Background': 499 495 UpdateBackground(G2frame,G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,PatternId, item))) … … 515 511 516 512 def OnLSQPeakFit(event): 517 if G2frame.dataDisplay.IsCellEditControlEnabled(): # complete any grid edits in progress518 G2frame.dataDisplay.HideCellEditControl()519 G2frame.dataDisplay.DisableCellEditControl()513 if reflGrid.IsCellEditControlEnabled(): # complete any grid edits in progress 514 reflGrid.HideCellEditControl() 515 reflGrid.DisableCellEditControl() 520 516 if not G2frame.GSASprojectfile: #force a save of the gpx file so SaveState can write in the same directory 521 517 G2frame.OnFileSaveas(event) … … 523 519 524 520 def OnOneCycle(event): 525 if G2frame.dataDisplay.IsCellEditControlEnabled(): # complete any grid edits in progress526 G2frame.dataDisplay.HideCellEditControl()527 G2frame.dataDisplay.DisableCellEditControl()521 if reflGrid.IsCellEditControlEnabled(): # complete any grid edits in progress 522 reflGrid.HideCellEditControl() 523 reflGrid.DisableCellEditControl() 528 524 wx.CallAfter(OnPeakFit,'LSQ',oneCycle=True) 529 525 … … 672 668 673 669 def setBackgroundColors(): 674 for r in range( G2frame.dataDisplay.GetNumberRows()):675 for c in range( G2frame.dataDisplay.GetNumberCols()):676 if G2frame.dataDisplay.GetColLabelValue(c) in ['position','intensity','alpha','beta','sigma','gamma']:677 if float( G2frame.dataDisplay.GetCellValue(r,c)) < 0.:678 G2frame.dataDisplay.SetCellBackgroundColour(r,c,wx.RED)670 for r in range(reflGrid.GetNumberRows()): 671 for c in range(reflGrid.GetNumberCols()): 672 if reflGrid.GetColLabelValue(c) in ['position','intensity','alpha','beta','sigma','gamma']: 673 if float(reflGrid.GetCellValue(r,c)) < 0.: 674 reflGrid.SetCellBackgroundColour(r,c,wx.RED) 679 675 else: 680 G2frame.dataDisplay.SetCellBackgroundColour(r,c,wx.WHITE)676 reflGrid.SetCellBackgroundColour(r,c,wx.WHITE) 681 677 682 678 def KeyEditPeakGrid(event): … … 684 680 in the Peak List table 685 681 ''' 686 rowList = G2frame.dataDisplay.GetSelectedRows()687 colList = G2frame.dataDisplay.GetSelectedCols()688 selectList = G2frame.dataDisplay.GetSelectedCells()682 rowList = reflGrid.GetSelectedRows() 683 colList = reflGrid.GetSelectedCols() 684 selectList = reflGrid.GetSelectedCells() 689 685 data = G2frame.PatternTree.GetItemPyData(G2frame.PickId) 690 686 if event.GetKeyCode() == wx.WXK_RETURN: … … 696 692 elif rowList and (event.GetKeyCode() == wx.WXK_DELETE or event.GetKeyCode() == 8): 697 693 # pressing the delete key or backspace deletes selected peak(s) 698 G2frame.dataDisplay.ClearSelection()699 G2frame.dataDisplay.ClearGrid()694 reflGrid.ClearSelection() 695 reflGrid.ClearGrid() 700 696 rowList.sort() 701 697 rowList.reverse() … … 707 703 msg = wg.GridTableMessage(G2frame.PeakTable, 708 704 wg.GRIDTABLE_NOTIFY_ROWS_DELETED,0,nDel) 709 G2frame.dataDisplay.ProcessTableMessage(msg)705 reflGrid.ProcessTableMessage(msg) 710 706 data['peaks'] = G2frame.PeakTable.GetData()[:-nDel] 711 707 G2frame.PatternTree.SetItemPyData(G2frame.PickId,data) 712 wx.CallAfter( G2frame.dataDisplay.ForceRefresh)708 wx.CallAfter(reflGrid.ForceRefresh) 713 709 setBackgroundColors() 714 710 elif colList and (event.GetKeyCode() == 89 or event.GetKeyCode() == 78): 715 G2frame.dataDisplay.ClearSelection()711 reflGrid.ClearSelection() 716 712 key = event.GetKeyCode() 717 713 for col in colList: … … 722 718 for row in range(G2frame.PeakTable.GetNumberRows()): data['peaks'][row][col]=False 723 719 elif selectList and (event.GetKeyCode() == 89 or event.GetKeyCode() == 78): 724 G2frame.dataDisplay.ClearSelection()720 reflGrid.ClearSelection() 725 721 key = event.GetKeyCode() 726 722 for row,col in selectList: … … 734 730 return 735 731 G2plt.PlotPatterns(G2frame,plotType='PWDR') 736 #wx.CallAfter(G2frame.data Display.ForceRefresh) # did not always work732 #wx.CallAfter(G2frame.dataWindow.ForceRefresh) # did not always work 737 733 wx.CallAfter(UpdatePeakGrid,G2frame,data) 738 734 … … 740 736 '''Set or clear peak refinement variables for peaks listed in rows 741 737 ''' 742 refOpts = { G2frame.dataDisplay.GetColLabelValue(i):i+1 for i in range(G2frame.dataDisplay.GetNumberCols()) if G2frame.dataDisplay.GetColLabelValue(i) != "refine"}738 refOpts = {reflGrid.GetColLabelValue(i):i+1 for i in range(reflGrid.GetNumberCols()) if reflGrid.GetColLabelValue(i) != "refine"} 743 739 dlg = G2G.G2MultiChoiceDialog( 744 740 G2frame.dataFrame, … … 762 758 '''set refinement flags for the selected peaks 763 759 ''' 764 rows = list(set([row for row,col in G2frame.dataDisplay.GetSelectedCells()] +765 G2frame.dataDisplay.GetSelectedRows()))760 rows = list(set([row for row,col in reflGrid.GetSelectedCells()] + 761 reflGrid.GetSelectedRows())) 766 762 if not rows: 767 763 wx.MessageBox('No selected rows. You must select rows or cells before using this command', … … 773 769 '''set refinement flags for all peaks 774 770 ''' 775 SelectVars(range( G2frame.dataDisplay.GetNumberRows()))771 SelectVars(range(reflGrid.GetNumberRows())) 776 772 777 773 def onCellListSClick(event): … … 786 782 '''Called after a double-click on a cell label''' 787 783 r,c = event.GetRow(),event.GetCol() 788 grid = G2frame.dataDisplay789 784 if r < 0 and c < 0: 790 for row in range( grid.GetNumberRows()):791 grid.SelectRow(row,True)792 for col in range( grid.GetNumberCols()):793 grid.SelectCol(col,True)785 for row in range(reflGrid.GetNumberRows()): 786 reflGrid.SelectRow(row,True) 787 for col in range(reflGrid.GetNumberCols()): 788 reflGrid.SelectCol(col,True) 794 789 elif r > 0: #row label: select it and replot! 795 grid.ClearSelection()796 grid.SelectRow(r,True)797 wx.CallAfter(G2frame.data Display.ForceRefresh)790 reflGrid.ClearSelection() 791 reflGrid.SelectRow(r,True) 792 wx.CallAfter(G2frame.dataWindow.ForceRefresh) 798 793 wx.CallAfter(G2plt.PlotPatterns,G2frame,plotType='PWDR') 799 794 elif c > 0: #column label: just select it (& redisplay) 800 grid.ClearSelection()801 grid.SelectCol(c,True)802 if grid.GetColLabelValue(c) != 'refine': return795 reflGrid.ClearSelection() 796 reflGrid.SelectCol(c,True) 797 if reflGrid.GetColLabelValue(c) != 'refine': return 803 798 choice = ['Y - vary all','N - vary none',] 804 799 dlg = wx.SingleChoiceDialog(G2frame.dataFrame, 805 'Select refinement option for '+ grid.GetColLabelValue(c-1),800 'Select refinement option for '+reflGrid.GetColLabelValue(c-1), 806 801 'Refinement controls',choice) 807 802 dlg.CenterOnParent() … … 809 804 sel = dlg.GetSelection() 810 805 if sel == 0: 811 for row in range( grid.GetNumberRows()): data['peaks'][row][c]=True806 for row in range(reflGrid.GetNumberRows()): data['peaks'][row][c]=True 812 807 else: 813 for row in range( grid.GetNumberRows()): data['peaks'][row][c]=False808 for row in range(reflGrid.GetNumberRows()): data['peaks'][row][c]=False 814 809 wx.CallAfter(UpdatePeakGrid,G2frame,data) 815 810 … … 817 812 # beginning of UpdatePeakGrid init 818 813 #====================================================================== 819 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PeakMenu) 820 if not G2frame.dataFrame.GetStatusBar(): 821 Status = G2frame.dataFrame.CreateStatusBar() 822 Status.SetStatusText('Global refine: select refine column & press Y or N') 814 G2frame.dataWindow.ClearData() 815 G2frame.GetStatusBar().SetStatusText('Global refine: select refine column & press Y or N') 816 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.PeakMenu) 823 817 G2frame.Bind(wx.EVT_MENU, OnAutoSearch, id=G2gd.wxID_AUTOSEARCH) 824 818 G2frame.Bind(wx.EVT_MENU, OnCopyPeaks, id=G2gd.wxID_PEAKSCOPY) … … 832 826 G2frame.Bind(wx.EVT_MENU, OnResetSigGam, id=G2gd.wxID_RESETSIGGAM) 833 827 if data['peaks']: 834 G2frame.data Frame.AutoSearch.Enable(False)835 G2frame.data Frame.PeakCopy.Enable(True)836 G2frame.data Frame.PeakFit.Enable(True)837 G2frame.data Frame.PFOneCycle.Enable(True)838 G2frame.data Frame.SeqPeakFit.Enable(True)828 G2frame.dataWindow.AutoSearch.Enable(False) 829 G2frame.dataWindow.PeakCopy.Enable(True) 830 G2frame.dataWindow.PeakFit.Enable(True) 831 G2frame.dataWindow.PFOneCycle.Enable(True) 832 G2frame.dataWindow.SeqPeakFit.Enable(True) 839 833 else: 840 G2frame.data Frame.PeakFit.Enable(False)841 G2frame.data Frame.PeakCopy.Enable(False)842 G2frame.data Frame.PFOneCycle.Enable(False)843 G2frame.data Frame.AutoSearch.Enable(True)844 G2frame.data Frame.SeqPeakFit.Enable(False)834 G2frame.dataWindow.PeakFit.Enable(False) 835 G2frame.dataWindow.PeakCopy.Enable(False) 836 G2frame.dataWindow.PFOneCycle.Enable(False) 837 G2frame.dataWindow.AutoSearch.Enable(True) 838 G2frame.dataWindow.SeqPeakFit.Enable(False) 845 839 G2frame.PickTable = [] 846 840 rowLabels = [] … … 875 869 G2frame.PatternTree.SetItemPyData(G2frame.PickId,data) 876 870 G2frame.PeakTable = G2G.Table(data['peaks'],rowLabels=rowLabels,colLabels=colLabels,types=Types) 877 G2frame. dataFrame.SetLabel('Peak List')871 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Peak List') 878 872 G2frame.dataFrame.currentGrids = [] 879 G2frame.dataDisplay = G2G.GSGrid(parent=G2frame.dataFrame)880 G2frame.dataDisplay.SetTable(G2frame.PeakTable, True)873 reflGrid = G2G.GSGrid(parent=G2frame.dataWindow) 874 reflGrid.SetTable(G2frame.PeakTable, True) 881 875 setBackgroundColors() 882 G2frame.dataDisplay.Bind(wg.EVT_GRID_CELL_CHANGE, RefreshPeakGrid) 883 G2frame.dataDisplay.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) 884 G2frame.dataDisplay.Bind(wg.EVT_GRID_LABEL_LEFT_CLICK, onCellListSClick) 885 # G2frame.dataDisplay.Bind(wg.EVT_GRID_CELL_LEFT_CLICK, onCellListSClick) 886 G2frame.dataDisplay.Bind(wg.EVT_GRID_LABEL_LEFT_DCLICK, onCellListDClick) 887 # G2frame.dataDisplay.Bind(wg.EVT_GRID_CELL_LEFT_DCLICK, onCellListDClick) 888 G2frame.dataDisplay.SetMargins(0,0) 889 G2frame.dataDisplay.AutoSizeColumns(False) 890 G2frame.dataFrame.setSizePosLeft([535,350]) 891 #G2frame.dataFrame.SendSizeEvent() 876 reflGrid.Bind(wg.EVT_GRID_CELL_CHANGE, RefreshPeakGrid) 877 reflGrid.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) 878 reflGrid.Bind(wg.EVT_GRID_LABEL_LEFT_CLICK, onCellListSClick) 879 # G2frame.dataWindow.Bind(wg.EVT_GRID_CELL_LEFT_CLICK, onCellListSClick) 880 reflGrid.Bind(wg.EVT_GRID_LABEL_LEFT_DCLICK, onCellListDClick) 881 # G2frame.dataWindow.Bind(wg.EVT_GRID_CELL_LEFT_DCLICK, onCellListDClick) 882 reflGrid.SetMargins(0,0) 883 reflGrid.AutoSizeColumns(False) 884 G2frame.reflGrid = reflGrid 885 mainSizer = wx.BoxSizer(wx.VERTICAL) 886 mainSizer.Add(reflGrid) 887 mainSizer.Layout() 888 G2frame.dataWindow.SetSizer(mainSizer) 889 mainSizer.Fit(G2frame.dataWindow) 890 G2frame.SetDataSize() 892 891 893 892 ################################################################################ … … 1108 1107 backSizer = wx.BoxSizer(wx.VERTICAL) 1109 1108 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1110 topSizer.Add(wx.StaticText(G2frame.data Display,-1,' Background function: '),0,WACV)1111 bakType = wx.ComboBox(G2frame.data Display,value=data[0][0],1109 topSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Background function: '),0,WACV) 1110 bakType = wx.ComboBox(G2frame.dataWindow,value=data[0][0], 1112 1111 choices=Choices,style=wx.CB_READONLY|wx.CB_DROPDOWN) 1113 1112 bakType.Bind(wx.EVT_COMBOBOX, OnNewType) 1114 1113 topSizer.Add(bakType) 1115 1114 topSizer.Add((5,0),0) 1116 bakRef = wx.CheckBox(G2frame.data Display,label=' Refine?')1115 bakRef = wx.CheckBox(G2frame.dataWindow,label=' Refine?') 1117 1116 bakRef.SetValue(bool(data[0][1])) 1118 1117 bakRef.Bind(wx.EVT_CHECKBOX, OnBakRef) 1119 1118 topSizer.Add(bakRef,0,WACV) 1120 topSizer.Add(wx.StaticText(G2frame.data Display,-1,' No. coeff.: '),0,WACV)1121 bakTerms = wx.ComboBox(G2frame.data Display,-1,value=str(data[0][2]),choices=[str(i+1) for i in range(36)],1119 topSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' No. coeff.: '),0,WACV) 1120 bakTerms = wx.ComboBox(G2frame.dataWindow,-1,value=str(data[0][2]),choices=[str(i+1) for i in range(36)], 1122 1121 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1123 1122 bakTerms.Bind(wx.EVT_COMBOBOX,OnBakTerms) … … 1125 1124 topSizer.Add((5,0),0) 1126 1125 backSizer.Add(topSizer) 1127 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' Background coefficients:'),0,WACV)1126 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Background coefficients:'),0,WACV) 1128 1127 bakSizer = wx.FlexGridSizer(0,5,5,5) 1129 1128 for i,value in enumerate(data[0][3:]): 1130 bakVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data[0],i+3,nDig=(10,4),typeHint=float)1129 bakVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data[0],i+3,nDig=(10,4),typeHint=float) 1131 1130 bakSizer.Add(bakVal,0,WACV) 1132 1131 backSizer.Add(bakSizer) … … 1169 1168 debSizer = wx.BoxSizer(wx.VERTICAL) 1170 1169 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1171 topSizer.Add(wx.StaticText(G2frame.data Display,-1,' Debye scattering: '),0,WACV)1172 topSizer.Add(wx.StaticText(G2frame.data Display,-1,' No. coeff.: '),0,WACV)1173 debTerms = wx.ComboBox(G2frame.data Display,-1,value=str(data[1]['nDebye']),choices=[str(i) for i in range(12)],1170 topSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Debye scattering: '),0,WACV) 1171 topSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' No. coeff.: '),0,WACV) 1172 debTerms = wx.ComboBox(G2frame.dataWindow,-1,value=str(data[1]['nDebye']),choices=[str(i) for i in range(12)], 1174 1173 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1175 1174 debTerms.Bind(wx.EVT_COMBOBOX,OnDebTerms) … … 1178 1177 debSizer.Add(topSizer) 1179 1178 if data[1]['nDebye']: 1180 debSizer.Add(wx.StaticText(G2frame.data Display,-1,' Debye diffuse terms:'),0,WACV)1179 debSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Debye diffuse terms:'),0,WACV) 1181 1180 rowLabels = [] 1182 1181 for i in range(len(data[1]['debyeTerms'])): rowLabels.append(str(i)) … … 1186 1185 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL] 1187 1186 debyeTable = G2G.Table(data[1]['debyeTerms'],rowLabels=rowLabels,colLabels=colLabels,types=Types) 1188 debyeGrid = G2G.GSGrid(parent=G2frame.data Display)1187 debyeGrid = G2G.GSGrid(parent=G2frame.dataWindow) 1189 1188 debyeGrid.SetTable(debyeTable, True) 1190 1189 debyeGrid.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) … … 1228 1227 peaksSizer = wx.BoxSizer(wx.VERTICAL) 1229 1228 topSizer = wx.BoxSizer(wx.HORIZONTAL) 1230 topSizer.Add(wx.StaticText(G2frame.data Display,-1,' Peaks in background: '),0,WACV)1231 topSizer.Add(wx.StaticText(G2frame.data Display,-1,' No. peaks: '),0,WACV)1232 peaks = wx.ComboBox(G2frame.data Display,-1,value=str(data[1]['nPeaks']),choices=[str(i) for i in range(30)],1229 topSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Peaks in background: '),0,WACV) 1230 topSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' No. peaks: '),0,WACV) 1231 peaks = wx.ComboBox(G2frame.dataWindow,-1,value=str(data[1]['nPeaks']),choices=[str(i) for i in range(30)], 1233 1232 style=wx.CB_READONLY|wx.CB_DROPDOWN) 1234 1233 peaks.Bind(wx.EVT_COMBOBOX,OnPeaks) … … 1238 1237 G2frame.dataFrame.currentGrids = [] 1239 1238 if data[1]['nPeaks']: 1240 peaksSizer.Add(wx.StaticText(G2frame.data Display,-1,' Peak list:'),0,WACV)1239 peaksSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Peak list:'),0,WACV) 1241 1240 rowLabels = [] 1242 1241 for i in range(len(data[1]['peaksList'])): rowLabels.append(str(i)) … … 1247 1246 wg.GRID_VALUE_FLOAT+':10,5',wg.GRID_VALUE_BOOL] 1248 1247 peaksTable = G2G.Table(data[1]['peaksList'],rowLabels=rowLabels,colLabels=colLabels,types=Types) 1249 peaksGrid = G2G.GSGrid(parent=G2frame.data Display)1248 peaksGrid = G2G.GSGrid(parent=G2frame.dataWindow) 1250 1249 peaksGrid.SetTable(peaksTable, True) 1251 1250 peaksGrid.Bind(wx.EVT_KEY_DOWN, KeyEditPeakGrid) … … 1254 1253 return peaksSizer 1255 1254 1256 if G2frame.dataDisplay: 1257 G2frame.dataFrame.DestroyChildren() 1258 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1259 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.BackMenu) 1260 G2frame.dataFrame.SetLabel('Background') 1261 if not G2frame.dataFrame.GetStatusBar(): 1262 G2frame.dataFrame.CreateStatusBar() 1255 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.BackMenu) 1256 G2frame.dataWindow.ClearData() 1263 1257 G2frame.Bind(wx.EVT_MENU,OnBackCopy,id=G2gd.wxID_BACKCOPY) 1264 1258 G2frame.Bind(wx.EVT_MENU,OnBackFlagCopy,id=G2gd.wxID_BACKFLAGCOPY) … … 1276 1270 mainSizer.Add(PeaksSizer()) 1277 1271 mainSizer.Layout() 1278 G2frame.data Display.SetSizer(mainSizer)1279 Size =mainSizer.Fit(G2frame.dataFrame)1280 G2frame. dataFrame.setSizePosLeft(Size)1272 G2frame.dataWindow.SetSizer(mainSizer) 1273 mainSizer.Fit(G2frame.dataFrame) 1274 G2frame.SetDataSize() 1281 1275 1282 1276 ################################################################################ … … 1297 1291 labels = ['Tmin','Tmax'] 1298 1292 for i in [0,1]: 1299 limits.Add(wx.StaticText(G2frame.data Display,label=' Original %s: %.4f'%(labels[0],data[0][i])),0,WACV)1300 limits.Add(wx.StaticText(G2frame.data Display,label=' New: '),0,WACV)1301 limits.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data[1],i, \1293 limits.Add(wx.StaticText(G2frame.dataWindow,label=' Original %s: %.4f'%(labels[0],data[0][i])),0,WACV) 1294 limits.Add(wx.StaticText(G2frame.dataWindow,label=' New: '),0,WACV) 1295 limits.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data[1],i, \ 1302 1296 min=data[0][0],max=data[0][1],nDig=(10,4),typeHint=float,OnLeave=AfterChange)) 1303 1297 return limits … … 1314 1308 Indx = {} 1315 1309 excl = wx.FlexGridSizer(0,3,0,5) 1316 excl.Add(wx.StaticText(G2frame.data Display,label=' From: '),0,WACV)1317 excl.Add(wx.StaticText(G2frame.data Display,label=' To: '),0,WACV)1318 excl.Add(wx.StaticText(G2frame.data Display,label=' Delete?: '),0,WACV)1310 excl.Add(wx.StaticText(G2frame.dataWindow,label=' From: '),0,WACV) 1311 excl.Add(wx.StaticText(G2frame.dataWindow,label=' To: '),0,WACV) 1312 excl.Add(wx.StaticText(G2frame.dataWindow,label=' Delete?: '),0,WACV) 1319 1313 for id,item in enumerate(data[2:]): 1320 1314 for i in [0,1]: 1321 excl.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,item,i, \1315 excl.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,item,i, \ 1322 1316 min=data[0][0],max=data[0][1],nDig=(10,4),typeHint=float,OnLeave=AfterChange)) 1323 delExcl = wx.CheckBox(G2frame.data Display,label='')1317 delExcl = wx.CheckBox(G2frame.dataWindow,label='') 1324 1318 Indx[delExcl.GetId()] = id 1325 1319 delExcl.Bind(wx.EVT_CHECKBOX,OnDelExcl) … … 1356 1350 if len(data)>2: 1357 1351 # mainSizer.Add((0,5),0) 1358 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Excluded regions:'),0,WACV)1352 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Excluded regions:'),0,WACV) 1359 1353 mainSizer.Add(ExclSizer()) 1360 1354 mainSizer.Layout() 1361 G2frame.data Display.SetSizer(mainSizer)1362 Size =mainSizer.Fit(G2frame.dataFrame)1363 G2frame. dataFrame.setSizePosLeft(Size)1364 1365 if G2frame.data Display:1355 G2frame.dataWindow.SetSizer(mainSizer) 1356 mainSizer.Fit(G2frame.dataFrame) 1357 G2frame.SetDataSize() 1358 1359 if G2frame.dataWindow: 1366 1360 G2frame.dataFrame.DestroyChildren() 1367 1361 G2frame.ifGetExclude = False 1368 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1369 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.LimitMenu) 1370 G2frame.dataFrame.SetLabel('Limits') 1371 if not G2frame.dataFrame.GetStatusBar(): 1372 G2frame.dataFrame.CreateStatusBar() 1362 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.LimitMenu) 1363 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Limits') 1373 1364 G2frame.Bind(wx.EVT_MENU,OnLimitCopy,id=G2gd.wxID_LIMITCOPY) 1374 1365 G2frame.Bind(wx.EVT_MENU,OnAddExcl,id=G2gd.wxID_ADDEXCLREGION) … … 1683 1674 def RefineBox(item): 1684 1675 'Define a refine checkbox with binding' 1685 wid = wx.CheckBox(G2frame.data Display,label=' Refine? ')1676 wid = wx.CheckBox(G2frame.dataWindow,label=' Refine? ') 1686 1677 wid.SetValue(bool(insRef[item])) 1687 1678 RefObj[wid.GetId()] = item … … 1706 1697 1707 1698 def MakeParameterWindow(): 1708 'Displays the Instrument parameters in the datadisplay frame' 1709 if G2frame.dataDisplay: 1710 G2frame.dataFrame.Clear() 1711 G2frame.dataFrame.SetLabel('Instrument Parameters') 1712 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 1699 'Displays the Instrument parameters in the dataWindow frame' 1700 G2frame.dataFrame.ClearData() 1701 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Instrument Parameters') 1713 1702 mainSizer = wx.BoxSizer(wx.VERTICAL) 1714 1703 instSizer = wx.FlexGridSizer(0,6,5,5) … … 1717 1706 insVal['Bank'] = 1 1718 1707 text = ' Histogram Type: %s Bank: %d'%(insVal['Type'],insVal['Bank']) 1719 subSizer.Add(wx.StaticText(G2frame.data Display,-1,text),0,WACV)1708 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,text),0,WACV) 1720 1709 mainSizer.Add(subSizer) 1721 1710 labelLst[:],elemKeysLst[:],dspLst[:],refFlgElem[:] = [],[],[],[] … … 1728 1717 if 'Lam1' in insVal: 1729 1718 subSizer = wx.BoxSizer(wx.HORIZONTAL) 1730 subSizer.Add(wx.StaticText(G2frame.data Display,-1,' Azimuth: '),0,WACV)1719 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Azimuth: '),0,WACV) 1731 1720 txt = '%7.2f'%(insVal['Azimuth']) 1732 subSizer.Add(wx.StaticText(G2frame.data Display,-1,txt.strip()),0,WACV)1733 subSizer.Add(wx.StaticText(G2frame.data Display,-1,' Ka1/Ka2: '),0,WACV)1721 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,txt.strip()),0,WACV) 1722 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Ka1/Ka2: '),0,WACV) 1734 1723 txt = u' %8.6f/%8.6f\xc5'%(insVal['Lam1'],insVal['Lam2']) 1735 subSizer.Add(wx.StaticText(G2frame.data Display,-1,txt.strip()),0,WACV)1724 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,txt.strip()),0,WACV) 1736 1725 waveSizer = wx.BoxSizer(wx.HORIZONTAL) 1737 waveSizer.Add(wx.StaticText(G2frame.data Display,-1,' Source type: '),0,WACV)1726 waveSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Source type: '),0,WACV) 1738 1727 # PATCH?: for now at least, Source is not saved anywhere before here 1739 1728 if 'Source' not in data: data['Source'] = ['CuKa','?'] 1740 1729 choice = ['TiKa','CrKa','FeKa','CoKa','CuKa','MoKa','AgKa'] 1741 lamPick = wx.ComboBox(G2frame.data Display,value=data['Source'][1],choices=choice,style=wx.CB_READONLY|wx.CB_DROPDOWN)1730 lamPick = wx.ComboBox(G2frame.dataWindow,value=data['Source'][1],choices=choice,style=wx.CB_READONLY|wx.CB_DROPDOWN) 1742 1731 lamPick.Bind(wx.EVT_COMBOBOX, OnLamPick) 1743 1732 waveSizer.Add(lamPick,0) … … 1745 1734 mainSizer.Add(subSizer) 1746 1735 instSizer.Add(wx.StaticText( 1747 G2frame.data Display,-1,1736 G2frame.dataWindow,-1, 1748 1737 lblWdef('I(L2)/I(L1)',4,insDef['I(L2)/I(L1)'])), 1749 1738 0,WACV) … … 1753 1742 dspLst.append([10,4]) 1754 1743 refFlgElem.append([key,2]) 1755 ratVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,key,nDig=(10,4),typeHint=float,OnLeave=AfterChange)1744 ratVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,key,nDig=(10,4),typeHint=float,OnLeave=AfterChange) 1756 1745 instSizer.Add(ratVal,0) 1757 1746 instSizer.Add(RefineBox(key),0,WACV) … … 1760 1749 instSizer.Add((5,5),0) 1761 1750 else: # single wavelength 1762 instSizer.Add(wx.StaticText(G2frame.data Display,-1,' Azimuth: '),0,WACV)1751 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Azimuth: '),0,WACV) 1763 1752 txt = '%7.2f'%(insVal['Azimuth']) 1764 instSizer.Add(wx.StaticText(G2frame.data Display,-1,txt.strip()),0,WACV)1753 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,txt.strip()),0,WACV) 1765 1754 instSizer.Add((5,5),0) 1766 1755 key = 'Lam' 1767 instSizer.Add(wx.StaticText(G2frame.data Display,-1,u' Lam (\xc5): (%10.6f)'%(insDef[key])),1756 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,u' Lam (\xc5): (%10.6f)'%(insDef[key])), 1768 1757 0,WACV) 1769 waveVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,key,nDig=(10,6),typeHint=float,OnLeave=AfterChange)1758 waveVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,key,nDig=(10,6),typeHint=float,OnLeave=AfterChange) 1770 1759 labelLst.append(u'Lam (\xc5)') 1771 1760 elemKeysLst.append([key,1]) … … 1786 1775 dspLst.append([10,4]) 1787 1776 instSizer.Add( 1788 wx.StaticText(G2frame.data Display,-1,lblWdef(item,4,insDef[item])),1777 wx.StaticText(G2frame.dataWindow,-1,lblWdef(item,4,insDef[item])), 1789 1778 0,WACV) 1790 itemVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,item,nDig=(10,4),typeHint=float,OnLeave=AfterChange)1779 itemVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,item,nDig=(10,4),typeHint=float,OnLeave=AfterChange) 1791 1780 instSizer.Add(itemVal,0,WACV) 1792 1781 refFlgElem.append([item,2]) … … 1816 1805 refFlgElem.append([item,2]) 1817 1806 instSizer.Add( 1818 wx.StaticText(G2frame.data Display,-1,lblWdef(item,nDig[1],insDef[item])),1807 wx.StaticText(G2frame.dataWindow,-1,lblWdef(item,nDig[1],insDef[item])), 1819 1808 0,WACV) 1820 itemVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,item,nDig=nDig,typeHint=float,OnLeave=AfterChange)1809 itemVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,item,nDig=nDig,typeHint=float,OnLeave=AfterChange) 1821 1810 instSizer.Add(itemVal,0,WACV) 1822 1811 instSizer.Add(RefineBox(item),0,WACV) 1823 1812 elif 'T' in insVal['Type']: #time of flight (neutrons) 1824 1813 subSizer = wx.BoxSizer(wx.HORIZONTAL) 1825 subSizer.Add(wx.StaticText(G2frame.data Display,-1,' Fligth path: '),0,WACV)1814 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Fligth path: '),0,WACV) 1826 1815 txt = '%8.3f'%(insVal['fltPath']) 1827 subSizer.Add(wx.StaticText(G2frame.data Display,-1,txt.strip()),0,WACV)1816 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,txt.strip()),0,WACV) 1828 1817 labelLst.append('flight path') 1829 1818 elemKeysLst.append(['fltPath',1]) 1830 1819 dspLst.append([10,2]) 1831 1820 refFlgElem.append(None) 1832 subSizer.Add(wx.StaticText(G2frame.data Display,-1,' 2-theta: '),0,WACV)1821 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' 2-theta: '),0,WACV) 1833 1822 txt = '%7.2f'%(insVal['2-theta']) 1834 subSizer.Add(wx.StaticText(G2frame.data Display,-1,txt.strip()),0,WACV)1823 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,txt.strip()),0,WACV) 1835 1824 labelLst.append('2-theta') 1836 1825 elemKeysLst.append(['2-theta',1]) … … 1839 1828 if 'Pdabc' in Inst2: 1840 1829 Items = ['sig-0','sig-1','sig-2','sig-q','X','Y'] 1841 subSizer.Add(wx.StaticText(G2frame.data Display,-1,' difC: '),0,WACV)1830 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' difC: '),0,WACV) 1842 1831 txt = '%8.2f'%(insVal['difC']) 1843 subSizer.Add(wx.StaticText(G2frame.data Display,-1,txt.strip()),0,WACV)1832 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,txt.strip()),0,WACV) 1844 1833 labelLst.append('difC') 1845 1834 elemKeysLst.append(['difC',1]) 1846 1835 dspLst.append([10,2]) 1847 1836 refFlgElem.append(None) 1848 subSizer.Add(wx.StaticText(G2frame.data Display,-1,' alpha, beta: fixed by table'),0,WACV)1837 subSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' alpha, beta: fixed by table'),0,WACV) 1849 1838 else: 1850 1839 Items = ['difC','difA','difB','Zero','alpha','beta-0','beta-1','beta-q','sig-0','sig-1','sig-2','sig-q','X','Y'] … … 1862 1851 nDig = (12,6) 1863 1852 instSizer.Add( 1864 wx.StaticText(G2frame.data Display,-1,lblWdef(item,nDig[1],insDef[item])),1853 wx.StaticText(G2frame.dataWindow,-1,lblWdef(item,nDig[1],insDef[item])), 1865 1854 0,WACV) 1866 itemVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,item,nDig=nDig,typeHint=float,OnLeave=AfterChange)1855 itemVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,item,nDig=nDig,typeHint=float,OnLeave=AfterChange) 1867 1856 instSizer.Add(itemVal,0,WACV) 1868 1857 labelLst.append(item) … … 1873 1862 elif 'PKS' in insVal['Type']: #peak positions only 1874 1863 key = 'Lam' 1875 instSizer.Add(wx.StaticText(G2frame.data Display,-1,u' Lam (\xc5): (%10.6f)'%(insDef[key])),1864 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,u' Lam (\xc5): (%10.6f)'%(insDef[key])), 1876 1865 0,WACV) 1877 waveVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,key,nDig=(10,6),typeHint=float,OnLeave=AfterChange)1866 waveVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,key,nDig=(10,6),typeHint=float,OnLeave=AfterChange) 1878 1867 labelLst.append(u'Lam (\xc5)') 1879 1868 elemKeysLst.append([key,1]) … … 1888 1877 dspLst.append([10,4]) 1889 1878 instSizer.Add( 1890 wx.StaticText(G2frame.data Display,-1,lblWdef(item,4,insDef[item])),1879 wx.StaticText(G2frame.dataWindow,-1,lblWdef(item,4,insDef[item])), 1891 1880 0,WACV) 1892 itemVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,item,nDig=(10,4),typeHint=float,OnLeave=AfterChange)1881 itemVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,item,nDig=(10,4),typeHint=float,OnLeave=AfterChange) 1893 1882 instSizer.Add(itemVal,0,WACV) 1894 1883 refFlgElem.append([item,2]) … … 1898 1887 elif 'S' in insVal['Type']: #single crystal data 1899 1888 if 'C' in insVal['Type']: #constant wavelength 1900 instSizer.Add(wx.StaticText(G2frame.data Display,-1,u' Lam (\xc5): (%10.6f)'%(insDef['Lam'])),1889 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,u' Lam (\xc5): (%10.6f)'%(insDef['Lam'])), 1901 1890 0,WACV) 1902 waveVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,'Lam',nDig=(10,6),typeHint=float,OnLeave=AfterChange)1891 waveVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,'Lam',nDig=(10,6),typeHint=float,OnLeave=AfterChange) 1903 1892 instSizer.Add(waveVal,0,WACV) 1904 1893 labelLst.append(u'Lam (\xc5)') 1905 1894 waveSizer = wx.BoxSizer(wx.HORIZONTAL) 1906 waveSizer.Add(wx.StaticText(G2frame.data Display,-1,' Source type: '),0,WACV)1895 waveSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Source type: '),0,WACV) 1907 1896 # PATCH?: for now at least, Source is not saved anywhere before here 1908 1897 if 'Source' not in data: data['Source'] = ['CuKa','?'] 1909 1898 choice = ['synchrotron','TiKa','CrKa','FeKa','CoKa','CuKa','MoKa','AgKa'] 1910 lamPick = wx.ComboBox(G2frame.data Display,value=data['Source'][1],choices=choice,style=wx.CB_READONLY|wx.CB_DROPDOWN)1899 lamPick = wx.ComboBox(G2frame.dataWindow,value=data['Source'][1],choices=choice,style=wx.CB_READONLY|wx.CB_DROPDOWN) 1911 1900 lamPick.Bind(wx.EVT_COMBOBOX, OnLamPick) 1912 1901 waveSizer.Add(lamPick,0,WACV) … … 1919 1908 elif insVal['Type'][0] in ['L','R',]: 1920 1909 if 'C' in insVal['Type']: 1921 instSizer.Add(wx.StaticText(G2frame.data Display,-1,u' Lam (\xc5): (%10.6f)'%(insDef['Lam'])),1910 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,u' Lam (\xc5): (%10.6f)'%(insDef['Lam'])), 1922 1911 0,WACV) 1923 waveVal = G2G.ValidatedTxtCtrl(G2frame.data Display,insVal,'Lam',nDig=(10,6),typeHint=float,OnLeave=AfterChange)1912 waveVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,insVal,'Lam',nDig=(10,6),typeHint=float,OnLeave=AfterChange) 1924 1913 instSizer.Add(waveVal,0,WACV) 1925 1914 labelLst.append(u'Lam (\xc5)') … … 1927 1916 dspLst.append([10,6]) 1928 1917 refFlgElem.append(None) 1929 instSizer.Add(wx.StaticText(G2frame.data Display,-1,' Azimuth: %7.2f'%(insVal['Azimuth'])),0,WACV)1918 instSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Azimuth: %7.2f'%(insVal['Azimuth'])),0,WACV) 1930 1919 labelLst.append('Azimuth angle') 1931 1920 elemKeysLst.append(['Azimuth',1]) … … 1937 1926 mainSizer.Add(instSizer,0) 1938 1927 mainSizer.Layout() 1939 G2frame.data Display.SetSizer(mainSizer)1940 G2frame.dataFrame.setSizePosLeft(mainSizer.Fit(G2frame.dataFrame))1941 G2frame. dataFrame.SendSizeEvent() # this causes a frame repaint, even if the size does not change!1928 G2frame.dataWindow.SetSizer(mainSizer) 1929 mainSizer.Fit(G2frame.dataWindow) 1930 G2frame.SetDataSize() 1942 1931 # end of MakeParameterWindow 1943 1932 … … 1996 1985 #end of patch 1997 1986 if 'P' in insVal['Type']: #powder data menu commands 1998 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.InstMenu) 1999 if not G2frame.dataFrame.GetStatusBar(): 2000 Status = G2frame.dataFrame.CreateStatusBar() 2001 Status.SetStatusText('NB: Azimuth is used for polarization only') 1987 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.InstMenu) 1988 G2frame.dataWindow.ClearData() 1989 G2frame.GetStatusBar().SetStatusText('NB: Azimuth is used for polarization only') 2002 1990 G2frame.Bind(wx.EVT_MENU,OnCalibrate,id=G2gd.wxID_INSTCALIB) 2003 1991 G2frame.Bind(wx.EVT_MENU,OnLoad,id=G2gd.wxID_INSTLOAD) … … 2010 1998 G2frame.Bind(wx.EVT_MENU,OnCopy1Val,id=G2gd.wxID_INST1VAL) 2011 1999 elif 'L' in insVal['Type'] or 'R' in insVal['Type']: #SASD data menu commands 2012 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.SASDInstMenu) 2013 if not G2frame.dataFrame.GetStatusBar(): 2014 Status = G2frame.dataFrame.CreateStatusBar() 2000 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.SASDInstMenu) 2015 2001 G2frame.Bind(wx.EVT_MENU,OnInstCopy,id=G2gd.wxID_INSTCOPY) 2016 2002 MakeParameterWindow() … … 2381 2367 G2frame,G2frame.PatternId, 'Instrument Parameters'))[0] 2382 2368 histName = G2frame.PatternTree.GetItemText(G2frame.PatternId) 2383 if G2frame.dataDisplay: 2384 G2frame.dataFrame.Clear() 2385 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.SampleMenu) 2386 G2frame.dataFrame.SetLabel('Sample Parameters') 2369 G2frame.dataWindow.ClearData() 2370 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.SampleMenu) 2371 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Sample Parameters') 2387 2372 G2frame.Bind(wx.EVT_MENU, OnSetScale, id=G2gd.wxID_SETSCALE) 2388 2373 G2frame.Bind(wx.EVT_MENU, OnSampleCopy, id=G2gd.wxID_SAMPLECOPY) … … 2396 2381 if histName[:4] in ['SASD','REFD','PWDR']: 2397 2382 G2frame.dataFrame.SetScale.Enable(True) 2398 if not G2frame.dataFrame.GetStatusBar():2399 G2frame.dataFrame.CreateStatusBar()2400 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame)2401 2383 Controls = G2frame.PatternTree.GetItemPyData( 2402 2384 G2gd.GetPatternTreeItemId(G2frame,G2frame.root, 'Controls')) … … 2444 2426 topSizer = wx.BoxSizer(wx.HORIZONTAL) 2445 2427 topSizer.Add((-1,-1),1,wx.EXPAND,1) 2446 topSizer.Add(wx.StaticText(G2frame.data Display,label='Sample and Experimental Parameters'))2428 topSizer.Add(wx.StaticText(G2frame.dataWindow,label='Sample and Experimental Parameters')) 2447 2429 topSizer.Add((-1,-1),1,wx.EXPAND,1) 2448 2430 mainSizer.Add(topSizer,0,wx.EXPAND,1) 2449 2431 nameSizer = wx.BoxSizer(wx.HORIZONTAL) 2450 nameSizer.Add(wx.StaticText(G2frame.data Display,wx.ID_ANY,' Instrument Name'),2432 nameSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,' Instrument Name'), 2451 2433 0,WACV) 2452 2434 nameSizer.Add((-1,-1),1,wx.EXPAND,1) 2453 instNameVal = wx.TextCtrl(G2frame.data Display,wx.ID_ANY,data['InstrName'],2435 instNameVal = wx.TextCtrl(G2frame.dataWindow,wx.ID_ANY,data['InstrName'], 2454 2436 size=(200,-1),style=wx.TE_PROCESS_ENTER) 2455 2437 nameSizer.Add(instNameVal) … … 2464 2446 if 'PWDR' in histName: 2465 2447 nameSizer = wx.BoxSizer(wx.HORIZONTAL) 2466 nameSizer.Add(wx.StaticText(G2frame.data Display,wx.ID_ANY,' Diffractometer type: '),2448 nameSizer.Add(wx.StaticText(G2frame.dataWindow,wx.ID_ANY,' Diffractometer type: '), 2467 2449 0,WACV) 2468 2450 if 'T' in Inst['Type'][0]: … … 2470 2452 else: 2471 2453 choices = ['Debye-Scherrer','Bragg-Brentano',] 2472 histoType = G2G.G2ChoiceButton(G2frame.data Display,choices,2454 histoType = G2G.G2ChoiceButton(G2frame.dataWindow,choices, 2473 2455 strLoc=data,strKey='Type', 2474 2456 onChoice=OnHistoChange) … … 2482 2464 dspLst.append(nDig) 2483 2465 if 'list' in str(type(data[key])): 2484 parmRef = G2G.G2CheckBox(G2frame.data Display,' '+lbl,data[key],1)2466 parmRef = G2G.G2CheckBox(G2frame.dataWindow,' '+lbl,data[key],1) 2485 2467 parmSizer.Add(parmRef,0,WACV|wx.EXPAND) 2486 parmVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data[key],0,2468 parmVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data[key],0, 2487 2469 nDig=nDig,typeHint=float,OnLeave=AfterChange) 2488 2470 elemKeysLst.append([key,0]) 2489 2471 refFlgElem.append([key,1]) 2490 2472 else: 2491 parmSizer.Add(wx.StaticText(G2frame.data Display,label=' '+lbl),2473 parmSizer.Add(wx.StaticText(G2frame.dataWindow,label=' '+lbl), 2492 2474 0,WACV|wx.EXPAND) 2493 parmVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data,key,2475 parmVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,key, 2494 2476 typeHint=float,OnLeave=AfterChange) 2495 2477 elemKeysLst.append([key]) … … 2499 2481 2500 2482 for key in ('FreePrm1','FreePrm2','FreePrm3'): 2501 parmVal = G2G.ValidatedTxtCtrl(G2frame.data Display,Controls,key,typeHint=str,2483 parmVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,Controls,key,typeHint=str, 2502 2484 notBlank=False) 2503 2485 parmSizer.Add(parmVal,1,wx.EXPAND) 2504 parmVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data,key,typeHint=float)2486 parmVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,key,typeHint=float) 2505 2487 parmSizer.Add(parmVal,1,wx.EXPAND) 2506 2488 labelLst.append(Controls[key]) … … 2519 2501 G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Substances')) 2520 2502 for id,item in enumerate(data['Materials']): 2521 subSizer.Add(wx.StaticText(G2frame.data Display,label=' Material: '),0,WACV)2522 matsel = wx.ComboBox(G2frame.data Display,value=item['Name'],choices=Substances['Substances'].keys(),2503 subSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Material: '),0,WACV) 2504 matsel = wx.ComboBox(G2frame.dataWindow,value=item['Name'],choices=Substances['Substances'].keys(), 2523 2505 style=wx.CB_READONLY|wx.CB_DROPDOWN) 2524 2506 Info[matsel.GetId()] = id 2525 2507 matsel.Bind(wx.EVT_COMBOBOX,OnMaterial) 2526 2508 subSizer.Add(matsel,0,WACV) 2527 subSizer.Add(wx.StaticText(G2frame.data Display,label=' Volume fraction: '),0,WACV)2528 volfrac = G2G.ValidatedTxtCtrl(G2frame.data Display,item,'VolFrac',2509 subSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Volume fraction: '),0,WACV) 2510 volfrac = G2G.ValidatedTxtCtrl(G2frame.dataWindow,item,'VolFrac', 2529 2511 min=0.,max=1.,nDig=(10,3),typeHint=float,OnLeave=OnVolFrac) 2530 2512 subSizer.Add(volfrac,0,WACV) … … 2536 2518 mainSizer.Add(subSizer,0) 2537 2519 conSizer = wx.BoxSizer(wx.HORIZONTAL) 2538 conSizer.Add(wx.StaticText(G2frame.data Display,label=' Contrast: %10.2f '%(data['Contrast'][0])),0,WACV)2539 conSizer.Add(wx.StaticText(G2frame.data Display,label=' Anom. Contrast: %10.2f '%(data['Contrast'][1])),0,WACV)2520 conSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Contrast: %10.2f '%(data['Contrast'][0])),0,WACV) 2521 conSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Anom. Contrast: %10.2f '%(data['Contrast'][1])),0,WACV) 2540 2522 mut = mu*data['Thick'] 2541 conSizer.Add(wx.StaticText(G2frame.data Display,label=' Transmission (calc): %10.3f '%(np.exp(-mut))),0,WACV)2523 conSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Transmission (calc): %10.3f '%(np.exp(-mut))),0,WACV) 2542 2524 mainSizer.Add(conSizer,0) 2543 2525 2544 2526 mainSizer.Layout() 2545 G2frame.data Display.SetSizer(mainSizer)2546 Size = mainSizer.Fit(G2frame.dataFrame)2547 G2frame. dataFrame.setSizePosLeft(Size)2527 G2frame.dataWindow.SetSizer(mainSizer) 2528 mainSizer.Fit(G2frame.dataWindow) 2529 G2frame.SetDataSize() 2548 2530 2549 2531 ################################################################################ … … 2571 2553 G2frame.IndexPeaksTable.SetData(peaks) 2572 2554 G2frame.PatternTree.SetItemPyData(IndexId,[peaks,data[1]]) 2573 G2frame.dataDisplay.ForceRefresh()2555 # G2frame.dataWindow.ForceRefresh() 2574 2556 if 'PKS' in G2frame.PatternTree.GetItemText(G2frame.PatternId): 2575 2557 G2plt.PlotPowderLines(G2frame) … … 2594 2576 2595 2577 def KeyEditPickGrid(event): 2596 colList = G2frame. dataDisplay.GetSelectedCols()2578 colList = G2frame.indxPeaks.GetSelectedCols() 2597 2579 data = G2frame.PatternTree.GetItemPyData(IndexId) 2598 2580 if event.GetKeyCode() == wx.WXK_RETURN: … … 2603 2585 event.Skip(True) 2604 2586 elif colList: 2605 G2frame.data Display.ClearSelection()2587 G2frame.dataWindow.ClearSelection() 2606 2588 key = event.GetKeyCode() 2607 2589 for col in colList: … … 2615 2597 2616 2598 2617 if G2frame.dataDisplay: 2618 G2frame.dataFrame.Clear() 2619 if not G2frame.dataFrame.GetStatusBar(): 2620 G2frame.dataFrame.CreateStatusBar() 2599 G2frame.dataWindow.ClearData() 2621 2600 if 'PWD' in G2frame.PatternTree.GetItemText(G2frame.PatternId): 2622 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.IndPeaksMenu)2601 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.IndPeaksMenu) 2623 2602 G2frame.Bind(wx.EVT_MENU, OnReload, id=G2gd.wxID_INDXRELOAD) 2624 G2frame.data Frame.IndexPeaks.Enable(False)2603 G2frame.dataWindow.IndexPeaks.Enable(False) 2625 2604 G2frame.IndexPeaksTable = [] 2626 2605 if len(data[0]): 2627 G2frame.data Frame.IndexPeaks.Enable(True)2606 G2frame.dataWindow.IndexPeaks.Enable(True) 2628 2607 Unit = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Unit Cells List')) 2629 2608 if Unit: … … 2670 2649 G2frame.PatternTree.SetItemPyData(IndexId,data) 2671 2650 G2frame.IndexPeaksTable = G2G.Table(data[0],rowLabels=rowLabels,colLabels=colLabels,types=Types) 2672 G2frame.dataFrame.SetLabel('Index Peak List') 2673 G2frame.dataFrame.currentGrids = [] 2674 G2frame.dataDisplay = G2G.GSGrid(parent=G2frame.dataFrame) 2675 G2frame.dataDisplay.SetTable(G2frame.IndexPeaksTable, True) 2651 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Index Peak List') 2652 G2frame.dataWindow.ClearData() 2653 G2frame.dataWindow.currentGrids = [] 2654 G2frame.indxPeaks = G2G.GSGrid(parent=G2frame.dataWindow) 2655 G2frame.indxPeaks.SetTable(G2frame.IndexPeaksTable, True) 2676 2656 XY = [] 2677 2657 Sigs = [] 2678 for r in range(G2frame. dataDisplay.GetNumberRows()):2679 for c in range(G2frame. dataDisplay.GetNumberCols()):2658 for r in range(G2frame.indxPeaks.GetNumberRows()): 2659 for c in range(G2frame.indxPeaks.GetNumberCols()): 2680 2660 if c == 2: 2681 G2frame. dataDisplay.SetReadOnly(r,c,isReadOnly=False)2661 G2frame.indxPeaks.SetReadOnly(r,c,isReadOnly=False) 2682 2662 else: 2683 G2frame. dataDisplay.SetReadOnly(r,c,isReadOnly=True)2663 G2frame.indxPeaks.SetReadOnly(r,c,isReadOnly=True) 2684 2664 if data[0][r][2] and data[0][r][3]: 2685 2665 XY.append([data[0][r][-1],data[0][r][0]]) … … 2689 2669 sig = 0. 2690 2670 Sigs.append(sig) 2691 G2frame.dataDisplay.Bind(wg.EVT_GRID_CELL_LEFT_CLICK, RefreshIndexPeaksGrid) 2692 G2frame.dataDisplay.Bind(wx.EVT_KEY_DOWN, KeyEditPickGrid) 2693 G2frame.dataDisplay.SetMargins(0,0) 2694 G2frame.dataDisplay.AutoSizeColumns(False) 2695 G2frame.dataFrame.setSizePosLeft([490,300]) 2671 G2frame.indxPeaks.Bind(wg.EVT_GRID_CELL_LEFT_CLICK, RefreshIndexPeaksGrid) 2672 G2frame.indxPeaks.Bind(wx.EVT_KEY_DOWN, KeyEditPickGrid) 2673 G2frame.indxPeaks.SetMargins(0,0) 2674 G2frame.indxPeaks.AutoSizeColumns(False) 2696 2675 if len(XY): 2697 2676 XY = np.array(XY) 2698 2677 G2plt.PlotCalib(G2frame,Inst,XY,Sigs,newPlot=True) 2699 G2frame.dataFrame.SendSizeEvent() 2678 mainSizer = wx.BoxSizer(wx.VERTICAL) 2679 mainSizer.Add(G2frame.indxPeaks) 2680 mainSizer.Layout() 2681 G2frame.dataWindow.SetSizer(mainSizer) 2682 mainSizer.Fit(G2frame.dataWindow) 2683 G2frame.SetDataSize() 2700 2684 2701 2685 ################################################################################ … … 3160 3144 G2frame.PatternTree.SetItemPyData(sub, \ 3161 3145 G2obj.SetNewPhase(Name=PhaseName,SGData=SGData,cell=cell[1:],Super=ssopt)) 3162 Status.SetStatusText('Change space group from '+str(controls[13])+' if needed')3146 G2frame.GetStatusBar().SetStatusText('Change space group from '+str(controls[13])+' if needed') 3163 3147 finally: 3164 3148 dlg.Destroy() 3165 3149 3166 if G2frame.dataDisplay: 3167 G2frame.dataFrame.DestroyChildren() 3168 G2frame.dataDisplay = wxscroll.ScrolledPanel(G2frame.dataFrame) 3169 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.IndexMenu) 3170 if not G2frame.dataFrame.GetStatusBar(): 3171 Status = G2frame.dataFrame.CreateStatusBar() 3150 G2frame.dataWindow.ClearData() 3151 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Unit cells') 3152 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.IndexMenu) 3172 3153 G2frame.Bind(wx.EVT_MENU, OnIndexPeaks, id=G2gd.wxID_INDEXPEAKS) 3173 3154 G2frame.Bind(wx.EVT_MENU, CopyUnitCell, id=G2gd.wxID_COPYCELL) … … 3195 3176 [True,True,True,False,True,True,True],[0,1,2,0,3,4,5])]] 3196 3177 3197 G2frame.dataFrame.SetLabel('Unit Cells List')3198 3178 G2frame.dataFrame.IndexPeaks.Enable(False) 3199 3179 peaks = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Index Peak List')) … … 3211 3191 G2frame.dataFrame.ExportCells.Enable(True) 3212 3192 mainSizer = wx.BoxSizer(wx.VERTICAL) 3213 mainSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Indexing controls: '),0,WACV)3193 mainSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Indexing controls: '),0,WACV) 3214 3194 mainSizer.Add((5,5),0) 3215 3195 littleSizer = wx.FlexGridSizer(0,5,5,5) 3216 littleSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Max Nc/Nobs '),0,WACV)3217 NcNo = wx.SpinCtrl(G2frame.data Display)3196 littleSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Max Nc/Nobs '),0,WACV) 3197 NcNo = wx.SpinCtrl(G2frame.dataWindow) 3218 3198 NcNo.SetRange(2,8) 3219 3199 NcNo.SetValue(controls[2]) 3220 3200 NcNo.Bind(wx.EVT_SPINCTRL,OnNcNo) 3221 3201 littleSizer.Add(NcNo,0,WACV) 3222 littleSizer.Add(wx.StaticText(G2frame.data Display,label=' Start Volume '),0,WACV)3223 startVol = G2G.ValidatedTxtCtrl(G2frame.data Display,controls,3,typeHint=int,min=25)3202 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Start Volume '),0,WACV) 3203 startVol = G2G.ValidatedTxtCtrl(G2frame.dataWindow,controls,3,typeHint=int,min=25) 3224 3204 littleSizer.Add(startVol,0,WACV) 3225 x20 = wx.CheckBox(G2frame.data Display,label='Use M20/(X20+1)?')3205 x20 = wx.CheckBox(G2frame.dataWindow,label='Use M20/(X20+1)?') 3226 3206 x20.SetValue(G2frame.ifX20) 3227 3207 x20.Bind(wx.EVT_CHECKBOX,OnIfX20) … … 3229 3209 mainSizer.Add(littleSizer,0) 3230 3210 mainSizer.Add((5,5),0) 3231 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Select Bravais Lattices for indexing: '),3211 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Select Bravais Lattices for indexing: '), 3232 3212 0,WACV) 3233 3213 mainSizer.Add((5,5),0) … … 3236 3216 bravs = zip(bravais,bravaisNames) 3237 3217 for brav,bravName in bravs: 3238 bravCk = wx.CheckBox(G2frame.data Display,label=bravName)3218 bravCk = wx.CheckBox(G2frame.dataWindow,label=bravName) 3239 3219 bravList.append(bravCk.GetId()) 3240 3220 bravCk.SetValue(brav) … … 3244 3224 mainSizer.Add((5,5),0) 3245 3225 3246 mainSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Cell Test & Refinement: '),0,WACV)3226 mainSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Cell Test & Refinement: '),0,WACV) 3247 3227 mainSizer.Add((5,5),0) 3248 3228 littleSizer = wx.BoxSizer(wx.HORIZONTAL) 3249 littleSizer.Add(wx.StaticText(G2frame.data Display,label=" Bravais lattice "),0,WACV)3250 bravSel = wx.Choice(G2frame.data Display,choices=bravaisSymb)3229 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=" Bravais lattice "),0,WACV) 3230 bravSel = wx.Choice(G2frame.dataWindow,choices=bravaisSymb) 3251 3231 bravSel.SetSelection(bravaisSymb.index(controls[5])) 3252 3232 bravSel.Bind(wx.EVT_CHOICE,OnBravSel) 3253 3233 littleSizer.Add(bravSel,0,WACV) 3254 littleSizer.Add(wx.StaticText(G2frame.data Display,label=" Space group "),0,WACV)3255 spcSel = wx.Choice(G2frame.data Display,choices=SPGlist[controls[5]])3234 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=" Space group "),0,WACV) 3235 spcSel = wx.Choice(G2frame.dataWindow,choices=SPGlist[controls[5]]) 3256 3236 spcSel.SetSelection(SPGlist[controls[5]].index(controls[13])) 3257 3237 spcSel.Bind(wx.EVT_CHOICE,OnSpcSel) … … 3260 3240 controls[0] = False 3261 3241 else: 3262 littleSizer.Add(wx.StaticText(G2frame.data Display,label=" Zero offset"),0,WACV)3263 zero = G2G.ValidatedTxtCtrl(G2frame.data Display,controls,1,nDig=(10,4),typeHint=float,min=-5.,max=5.)3242 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=" Zero offset"),0,WACV) 3243 zero = G2G.ValidatedTxtCtrl(G2frame.dataWindow,controls,1,nDig=(10,4),typeHint=float,min=-5.,max=5.) 3264 3244 littleSizer.Add(zero,0,WACV) 3265 zeroVar = wx.CheckBox(G2frame.data Display,label="Refine?")3245 zeroVar = wx.CheckBox(G2frame.dataWindow,label="Refine?") 3266 3246 zeroVar.SetValue(controls[0]) 3267 3247 zeroVar.Bind(wx.EVT_CHECKBOX,OnZeroVar) 3268 3248 littleSizer.Add(zeroVar,0,WACV) 3269 SSopt = wx.CheckBox(G2frame.data Display,label="Super lattice?")3249 SSopt = wx.CheckBox(G2frame.dataWindow,label="Super lattice?") 3270 3250 SSopt.SetValue(ssopt.get('Use',False)) 3271 3251 SSopt.Bind(wx.EVT_CHECKBOX,OnSSopt) 3272 3252 littleSizer.Add(SSopt,0,WACV) 3273 hklShow = wx.Button(G2frame.data Display,label="Show hkl positions")3253 hklShow = wx.Button(G2frame.dataWindow,label="Show hkl positions") 3274 3254 hklShow.Bind(wx.EVT_BUTTON,OnHklShow) 3275 3255 littleSizer.Add(hklShow,0,WACV) … … 3285 3265 littleSizer = wx.FlexGridSizer(0,useGUI[1],5,5) 3286 3266 for txt,fmt,ifEdit,Id in useGUI[2]: 3287 littleSizer.Add(wx.StaticText(G2frame.data Display,label=txt),0,WACV)3267 littleSizer.Add(wx.StaticText(G2frame.dataWindow,label=txt),0,WACV) 3288 3268 if ifEdit: #a,b,c,etc. 3289 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)3290 cellVal = wx.TextCtrl(G2frame.data Display,value=(fmt%(controls[6+Id])),style=wx.TE_PROCESS_ENTER)3269 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 3270 cellVal = wx.TextCtrl(G2frame.dataWindow,value=(fmt%(controls[6+Id])),style=wx.TE_PROCESS_ENTER) 3291 3271 cellVal.Bind(wx.EVT_TEXT_ENTER,OnCellChange) 3292 3272 cellVal.Bind(wx.EVT_KILL_FOCUS,OnCellChange) 3293 3273 valSizer = wx.BoxSizer(wx.HORIZONTAL) 3294 3274 valSizer.Add(cellVal,0,WACV) 3295 cellSpin = wx.SpinButton(G2frame.data Display,style=wx.SP_VERTICAL,size=wx.Size(20,20))3275 cellSpin = wx.SpinButton(G2frame.dataWindow,style=wx.SP_VERTICAL,size=wx.Size(20,20)) 3296 3276 cellSpin.SetValue(0) 3297 3277 cellSpin.SetRange(-1,1) … … 3303 3283 valDict[cellSpin.GetId()] = cellVal 3304 3284 else: #volume 3305 volVal = wx.TextCtrl(G2frame.data Display,value=(fmt%(controls[12])),style=wx.TE_READONLY)3285 volVal = wx.TextCtrl(G2frame.dataWindow,value=(fmt%(controls[12])),style=wx.TE_READONLY) 3306 3286 volVal.SetBackgroundColour(VERY_LIGHT_GREY) 3307 3287 littleSizer.Add(volVal,0,WACV) … … 3314 3294 ssopt['ssSymb'] = ssChoice[0] 3315 3295 ssSizer = wx.BoxSizer(wx.HORIZONTAL) 3316 ssSizer.Add(wx.StaticText(G2frame.data Display,label=' Supersymmetry space group: '+SpSg+' '),0,WACV)3317 selMG = wx.ComboBox(G2frame.data Display,value=ssopt['ssSymb'],3296 ssSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Supersymmetry space group: '+SpSg+' '),0,WACV) 3297 selMG = wx.ComboBox(G2frame.dataWindow,value=ssopt['ssSymb'], 3318 3298 choices=ssChoice,style=wx.CB_READONLY|wx.CB_DROPDOWN) 3319 3299 selMG.Bind(wx.EVT_COMBOBOX, OnSelMG) 3320 3300 ssSizer.Add(selMG,0,WACV) 3321 ssSizer.Add(wx.StaticText(G2frame.data Display,label=' Mod. vector: '),0,WACV)3301 ssSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Mod. vector: '),0,WACV) 3322 3302 modS = G2spc.splitSSsym(ssopt['ssSymb'])[0] 3323 3303 ssopt['ModVec'],ifShow = G2spc.SSGModCheck(ssopt['ModVec'],modS) … … 3326 3306 if show: 3327 3307 valSizer = wx.BoxSizer(wx.HORIZONTAL) 3328 modVal = G2G.ValidatedTxtCtrl(G2frame.data Display,ssopt['ModVec'],i,3308 modVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,ssopt['ModVec'],i, 3329 3309 min=-.98,max=.98,nDig=(10,4),typeHint=float,OnLeave=OnModVal) 3330 3310 valSizer.Add(modVal,0,WACV) 3331 modSpin = wx.SpinButton(G2frame.data Display,style=wx.SP_VERTICAL,size=wx.Size(20,20))3311 modSpin = wx.SpinButton(G2frame.dataWindow,style=wx.SP_VERTICAL,size=wx.Size(20,20)) 3332 3312 modSpin.SetValue(0) 3333 3313 modSpin.SetRange(-1,1) … … 3338 3318 Indx[modSpin.GetId()] = [i,modVal] 3339 3319 else: 3340 modVal = wx.TextCtrl(G2frame.data Display,value=('%.3f'%(val)),3320 modVal = wx.TextCtrl(G2frame.dataWindow,value=('%.3f'%(val)), 3341 3321 size=wx.Size(50,20),style=wx.TE_READONLY) 3342 3322 modVal.SetBackgroundColour(VERY_LIGHT_GREY) 3343 3323 ssSizer.Add(modVal,0,WACV) 3344 ssSizer.Add(wx.StaticText(G2frame.data Display,label=' Max. M: '),0,WACV)3345 maxMH = wx.ComboBox(G2frame.data Display,value=str(ssopt['maxH']),3324 ssSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Max. M: '),0,WACV) 3325 maxMH = wx.ComboBox(G2frame.dataWindow,value=str(ssopt['maxH']), 3346 3326 choices=indChoice,style=wx.CB_READONLY|wx.CB_DROPDOWN) 3347 3327 maxMH.Bind(wx.EVT_COMBOBOX, OnMaxMH) 3348 3328 ssSizer.Add(maxMH,0,WACV) 3349 findMV = wx.Button(G2frame.data Display,label="Find mod. vec.?")3329 findMV = wx.Button(G2frame.dataWindow,label="Find mod. vec.?") 3350 3330 findMV.Bind(wx.EVT_BUTTON,OnFindMV) 3351 3331 ssSizer.Add(findMV,0,WACV) … … 3354 3334 G2frame.dataFrame.currentGrids = [] 3355 3335 if cells: 3356 mainSizer.Add(wx.StaticText(parent=G2frame.data Display,label='\n Indexing Result:'),0,WACV)3336 mainSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label='\n Indexing Result:'),0,WACV) 3357 3337 rowLabels = [] 3358 3338 colLabels = ['M20','X20','use','Bravais','a','b','c','alpha','beta','gamma','Volume','Keep'] … … 3372 3352 table.append(row) 3373 3353 UnitCellsTable = G2G.Table(table,rowLabels=rowLabels,colLabels=colLabels,types=Types) 3374 gridDisplay = G2G.GSGrid(G2frame.data Display)3354 gridDisplay = G2G.GSGrid(G2frame.dataWindow) 3375 3355 gridDisplay.SetTable(UnitCellsTable, True) 3376 3356 G2frame.dataFrame.CopyCell.Enable(True) … … 3388 3368 mainSizer.Add(gridDisplay,0,WACV) 3389 3369 mainSizer.Layout() 3390 G2frame.dataDisplay.SetSizer(mainSizer) 3391 G2frame.dataDisplay.SetAutoLayout(1) 3392 G2frame.dataDisplay.SetupScrolling() 3393 Size = mainSizer.Fit(G2frame.dataFrame) 3394 Size[0] += 25 3395 Size[1] = min(600,Size[1]) 3396 G2frame.dataFrame.setSizePosLeft(Size) 3370 G2frame.dataWindow.SetSizer(mainSizer) 3371 mainSizer.Fit(G2frame.dataFrame) 3372 G2frame.SetDataSize() 3397 3373 3398 3374 ################################################################################ … … 3555 3531 return #deleted phase? 3556 3532 G2frame.RefList = phaseName 3557 G2frame. dataFrame.SetLabel('Reflection List for '+phaseName)3533 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Reflection List for '+phaseName) 3558 3534 if HKLF: 3559 Status.SetStatusText('abs(DF)/sig > 10 red; > 3 yellow; twin < 0 (user rejected) red; twin=0 (sp. gp. absent) red')3535 G2frame.GetStatusBar().SetStatusText('abs(DF)/sig > 10 red; > 3 yellow; twin < 0 (user rejected) red; twin=0 (sp. gp. absent) red') 3560 3536 else: 3561 Status.SetStatusText('Prfo < 0. in red; if excluded Fosq in red & mul < 0')3537 G2frame.GetStatusBar().SetStatusText('Prfo < 0. in red; if excluded Fosq in red & mul < 0') 3562 3538 itof = 0 3563 3539 if HKLF: … … 3581 3557 G2frame.HKL = np.vstack((refList.T)).T #build for plots 3582 3558 # raise the tab (needed for 1st use and from OnSelectPhase) 3583 for PageNum in range(G2frame. dataDisplay.GetPageCount()):3584 if phaseName == G2frame. dataDisplay.GetPageText(PageNum):3585 G2frame. dataDisplay.SetSelection(PageNum)3559 for PageNum in range(G2frame.refBook.GetPageCount()): 3560 if phaseName == G2frame.refBook.GetPageText(PageNum): 3561 G2frame.refBook.SetSelection(PageNum) 3586 3562 break 3587 3563 else: … … 3595 3571 ''' 3596 3572 page = event.GetSelection() 3597 phaseName = G2frame. dataDisplay.GetPageText(page)3573 phaseName = G2frame.refBook.GetPageText(page) 3598 3574 ShowReflTable(phaseName) 3599 3575 … … 3622 3598 phaseName = G2frame.RefList 3623 3599 phases = data.keys() 3624 if G2frame.dataDisplay: 3625 G2frame.dataFrame.Clear() 3600 G2frame.dataFrame.ClearData() 3626 3601 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))[0] 3627 if not G2frame.dataFrame.GetStatusBar(): 3628 Status = G2frame.dataFrame.CreateStatusBar() 3602 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.ReflMenu) 3629 3603 if HKLF: 3630 G2gd.SetDataMenuBar(G2frame)3631 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ReflMenu)3632 3604 G2frame.Bind(wx.EVT_MENU, OnPlotHKL, id=G2gd.wxID_PWDHKLPLOT) 3633 3605 G2frame.Bind(wx.EVT_MENU, OnPlot3DHKL, id=G2gd.wxID_PWD3DHKLPLOT) 3634 G2frame.data Frame.SelectPhase.Enable(False)3606 G2frame.dataWindow.SelectPhase.Enable(False) 3635 3607 else: 3636 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ReflMenu)3637 3608 G2frame.Bind(wx.EVT_MENU, OnSelectPhase, id=G2gd.wxID_SELECTPHASE) 3638 3609 G2frame.Bind(wx.EVT_MENU, OnPlotHKL, id=G2gd.wxID_PWDHKLPLOT) 3639 3610 G2frame.Bind(wx.EVT_MENU, OnPlot3DHKL, id=G2gd.wxID_PWD3DHKLPLOT) 3640 G2frame.data Frame.SelectPhase.Enable(False)3611 G2frame.dataWindow.SelectPhase.Enable(False) 3641 3612 3642 G2frame.dataDisplay = G2G.GSNoteBook(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize()) 3613 G2frame.dataWindow.ClearData() 3614 G2frame.refBook = G2G.GSNoteBook(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetClientSize()) 3643 3615 G2frame.refTable = {} 3644 G2frame.data Frame.currentGrids = []3616 G2frame.dataWindow.currentGrids = [] 3645 3617 for tabnum,phase in enumerate(phases): 3646 3618 if isinstance(data,list): #single crystal HKLF 3647 G2frame.refTable[phase] = G2G.GSGrid(parent=G2frame. dataDisplay)3648 G2frame. dataDisplay.AddPage(G2frame.refTable[phase],phase)3619 G2frame.refTable[phase] = G2G.GSGrid(parent=G2frame.refBook) 3620 G2frame.refBook.AddPage(G2frame.refTable[phase],phase) 3649 3621 elif len(data[phase]): #else dict for PWDR 3650 G2frame.refTable[phase] = G2G.GSGrid(parent=G2frame. dataDisplay)3651 G2frame. dataDisplay.AddPage(G2frame.refTable[phase],phase)3622 G2frame.refTable[phase] = G2G.GSGrid(parent=G2frame.refBook) 3623 G2frame.refBook.AddPage(G2frame.refTable[phase],phase) 3652 3624 else: #cleanup deleted phase reflection lists 3653 3625 del data[phase] … … 3660 3632 if phaseName: 3661 3633 ShowReflTable(phaseName) 3662 G2frame.dataFrame.setSizePosLeft([550,350]) 3663 G2frame.dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) 3634 G2frame.refBook.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) 3664 3635 3665 3636 ################################################################################ … … 3938 3909 Indx = {} 3939 3910 substSizer = wx.BoxSizer(wx.VERTICAL) 3940 substSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Substance list: wavelength: %.5fA'%(wave)),3911 substSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Substance list: wavelength: %.5fA'%(wave)), 3941 3912 0,WACV) 3942 3913 for name in data['Substances']: 3943 G2G.HorizontalLine(substSizer,G2frame.data Display)3944 substSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Data for '+name+':'),3914 G2G.HorizontalLine(substSizer,G2frame.dataWindow) 3915 substSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Data for '+name+':'), 3945 3916 0,WACV) 3946 3917 if name == 'vacuum': 3947 substSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Not applicable'),3918 substSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Not applicable'), 3948 3919 0,WACV) 3949 3920 elif name == 'unit scatter': 3950 substSizer.Add(wx.StaticText(G2frame.data Display,label=' Scattering density,f: %.3f *10%scm%s'%(data['Substances'][name]['Scatt density'],Pwr10,Pwrm2)),0,WACV)3921 substSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Scattering density,f: %.3f *10%scm%s'%(data['Substances'][name]['Scatt density'],Pwr10,Pwrm2)),0,WACV) 3951 3922 else: 3952 3923 elSizer = wx.FlexGridSizer(0,8,5,5) … … 3954 3925 Elems = Substance['Elements'] 3955 3926 for El in Elems: #do elements as pull downs for isotopes for neutrons 3956 elSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' '+El+': '),3927 elSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' '+El+': '), 3957 3928 0,WACV) 3958 num = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Substances'][name]['Elements'][El],'Num',3929 num = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Substances'][name]['Elements'][El],'Num', 3959 3930 nDig=(10,2,'f'),typeHint=float,OnLeave=OnNum) 3960 3931 Indx[num.GetId()] = [name,El,'Num'] 3961 3932 elSizer.Add(num,0,WACV) 3962 3933 if 'N' in Inst['Type'][0]: 3963 elSizer.Add(wx.StaticText(G2frame.data Display,label=' Isotope: '),0,WACV)3934 elSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Isotope: '),0,WACV) 3964 3935 isotopes = Elems[El]['Isotopes'].keys() 3965 isotope = wx.ComboBox(G2frame.data Display,choices=isotopes,value=Elems[El].get('Isotope','Nat. Abund.'),3936 isotope = wx.ComboBox(G2frame.dataWindow,choices=isotopes,value=Elems[El].get('Isotope','Nat. Abund.'), 3966 3937 style=wx.CB_READONLY|wx.CB_DROPDOWN) 3967 3938 Indx[isotope.GetId()] = [El,name] … … 3970 3941 substSizer.Add(elSizer,0) 3971 3942 vdsSizer = wx.FlexGridSizer(0,4,5,5) 3972 vdsSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Volume: '),3943 vdsSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Volume: '), 3973 3944 0,WACV) 3974 vol = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Substances'][name],'Volume',nDig=(10,2),typeHint=float,OnLeave=OnVolDen)3945 vol = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Substances'][name],'Volume',nDig=(10,2),typeHint=float,OnLeave=OnVolDen) 3975 3946 Indx[vol.GetId()] = [name,'Volume'] 3976 3947 vdsSizer.Add(vol,0,WACV) 3977 vdsSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' Density: '),3948 vdsSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' Density: '), 3978 3949 0,WACV) 3979 den = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Substances'][name],'Density',nDig=(10,2),typeHint=float,OnLeave=OnVolDen)3950 den = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Substances'][name],'Density',nDig=(10,2),typeHint=float,OnLeave=OnVolDen) 3980 3951 Indx[den.GetId()] = [name,'Density'] 3981 3952 vdsSizer.Add(den,0,WACV) 3982 3953 substSizer.Add(vdsSizer,0) 3983 3954 denSizer = wx.FlexGridSizer(0,2,0,0) 3984 denSizer.Add(wx.StaticText(G2frame.data Display,label=' Scattering density,f'),0,WACV)3985 denSizer.Add(wx.StaticText(G2frame.data Display,label=': %.3f *10%scm%s'%(Substance['Scatt density'],Pwr10,Pwrm2)),0,WACV)3986 denSizer.Add(wx.StaticText(G2frame.data Display,label=" Real density,f+f'"),0,WACV)3987 denSizer.Add(wx.StaticText(G2frame.data Display,label=': %.3f *10%scm%s'%(Substance['XAnom density'],Pwr10,Pwrm2)),0,WACV)3988 denSizer.Add(wx.StaticText(G2frame.data Display,label=' Imaginary density,f"'),0,WACV)3989 denSizer.Add(wx.StaticText(G2frame.data Display,label=': %.3g *10%scm%s'%(Substance['XImag density'],Pwr10,Pwrm2)),0,WACV)3990 denSizer.Add(wx.StaticText(G2frame.data Display,label=' Absorption'),0,WACV)3991 denSizer.Add(wx.StaticText(G2frame.data Display,label=': %.3g cm%s'%(Substance['XAbsorption'],Pwrm1)),0,WACV)