Changeset 2888
- Timestamp:
- Jul 1, 2017 6:22:10 AM (8 years ago)
- Location:
- branch/2frame
- Files:
-
- 11 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified 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() -
TabularUnified 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) -
TabularUnified 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): -
TabularUnified 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) -
TabularUnified 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(): -
TabularUnified 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 ########################################################################### -
TabularUnified 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) -
TabularUnified 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) -
TabularUnified 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)3955 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Scattering density,f'),0,WACV) 3956 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=': %.3f *10%scm%s'%(Substance['Scatt density'],Pwr10,Pwrm2)),0,WACV) 3957 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=" Real density,f+f'"),0,WACV) 3958 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=': %.3f *10%scm%s'%(Substance['XAnom density'],Pwr10,Pwrm2)),0,WACV) 3959 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Imaginary density,f"'),0,WACV) 3960 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=': %.3g *10%scm%s'%(Substance['XImag density'],Pwr10,Pwrm2)),0,WACV) 3961 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Absorption'),0,WACV) 3962 denSizer.Add(wx.StaticText(G2frame.dataWindow,label=': %.3g cm%s'%(Substance['XAbsorption'],Pwrm1)),0,WACV) 3992 3963 substSizer.Add(denSizer) 3993 3964 return substSizer … … 3995 3966 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))[0] 3996 3967 wave = G2mth.getWave(Inst) 3997 if G2frame.dataDisplay: 3998 G2frame.dataFrame.DestroyChildren() # is this a ScrolledWindow? If so, bad! 3999 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.SubstanceMenu) 4000 if not G2frame.dataFrame.GetStatusBar(): 4001 G2frame.dataFrame.CreateStatusBar() 4002 G2frame.dataDisplay = wxscroll.ScrolledPanel(G2frame.dataFrame) 4003 G2frame.dataFrame.SetLabel('Substances') 3968 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.SubstanceMenu) 3969 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Substances') 3970 G2frame.dataWindow.ClearData() 4004 3971 G2frame.dataFrame.Bind(wx.EVT_MENU, OnLoadSubstance, id=G2gd.wxID_LOADSUBSTANCE) 4005 3972 G2frame.dataFrame.Bind(wx.EVT_MENU, OnReloadSubstances, id=G2gd.wxID_RELOADSUBSTANCES) … … 4013 3980 4014 3981 mainSizer.Layout() 4015 G2frame.dataDisplay.SetSizer(mainSizer) 4016 G2frame.dataDisplay.SetAutoLayout(1) 4017 G2frame.dataDisplay.SetupScrolling() 4018 Size = mainSizer.Fit(G2frame.dataFrame) 4019 Size[0] += 25 4020 G2frame.dataFrame.setSizePosLeft(Size) 3982 G2frame.dataWindow.SetSizer(mainSizer) 3983 G2frame.dataWindow.SetAutoLayout(1) 3984 mainSizer.Fit(G2frame.dataFrame) 3985 G2frame.SetDataSize() 4021 3986 4022 3987 ################################################################################ … … 4299 4264 4300 4265 sizeSizer = wx.BoxSizer(wx.VERTICAL) 4301 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Size distribution parameters: '),0,WACV)4266 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Size distribution parameters: '),0,WACV) 4302 4267 binSizer = wx.FlexGridSizer(0,7,5,5) 4303 binSizer.Add(wx.StaticText(G2frame.data Display,label=' No. size bins: '),0,WACV)4268 binSizer.Add(wx.StaticText(G2frame.dataWindow,label=' No. size bins: '),0,WACV) 4304 4269 bins = ['50','100','150','200'] 4305 nbins = wx.ComboBox(G2frame.data Display,value=str(data['Size']['Nbins']),choices=bins,4270 nbins = wx.ComboBox(G2frame.dataWindow,value=str(data['Size']['Nbins']),choices=bins, 4306 4271 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4307 4272 Indx[nbins.GetId()] = [data['Size'],'Nbins',0] 4308 4273 nbins.Bind(wx.EVT_COMBOBOX,OnIntVal) 4309 4274 binSizer.Add(nbins,0,WACV) 4310 binSizer.Add(wx.StaticText(G2frame.data Display,label=' Min diam.: '),0,WACV)4275 binSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Min diam.: '),0,WACV) 4311 4276 minDias = ['10','25','50','100','150','200'] 4312 mindiam = wx.ComboBox(G2frame.data Display,value=str(data['Size']['MinDiam']),choices=minDias,4277 mindiam = wx.ComboBox(G2frame.dataWindow,value=str(data['Size']['MinDiam']),choices=minDias, 4313 4278 style=wx.CB_DROPDOWN) 4314 4279 mindiam.Bind(wx.EVT_LEAVE_WINDOW,OnIntVal) … … 4317 4282 Indx[mindiam.GetId()] = [data['Size'],'MinDiam',0] 4318 4283 binSizer.Add(mindiam,0,WACV) 4319 binSizer.Add(wx.StaticText(G2frame.data Display,label=' Max diam.: '),0,WACV)4284 binSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Max diam.: '),0,WACV) 4320 4285 maxDias = [str(1000*(i+1)) for i in range(10)] 4321 maxdiam = wx.ComboBox(G2frame.data Display,value=str(data['Size']['MaxDiam']),choices=maxDias,4286 maxdiam = wx.ComboBox(G2frame.dataWindow,value=str(data['Size']['MaxDiam']),choices=maxDias, 4322 4287 style=wx.CB_DROPDOWN) 4323 4288 maxdiam.Bind(wx.EVT_LEAVE_WINDOW,OnIntVal) … … 4326 4291 Indx[maxdiam.GetId()] = [data['Size'],'MaxDiam',0] 4327 4292 binSizer.Add(maxdiam,0,WACV) 4328 logbins = wx.CheckBox(G2frame.data Display,label='Log bins?')4293 logbins = wx.CheckBox(G2frame.dataWindow,label='Log bins?') 4329 4294 Indx[logbins.GetId()] = [data['Size'],'logBins'] 4330 4295 logbins.SetValue(data['Size']['logBins']) … … 4334 4299 sizeSizer.Add((5,5),0) 4335 4300 partSizer = wx.BoxSizer(wx.HORIZONTAL) 4336 partSizer.Add(wx.StaticText(G2frame.data Display,label='Particle description: '),0,WACV)4301 partSizer.Add(wx.StaticText(G2frame.dataWindow,label='Particle description: '),0,WACV) 4337 4302 shapes = {'Spheroid':' Aspect ratio: ','Cylinder':' Diameter ','Cylinder AR':' Aspect ratio: ', 4338 4303 'Unified sphere':'','Unified rod':' Diameter: ','Unified rod AR':' Aspect ratio: ', 4339 4304 'Unified disk':' Thickness: ', 'Spherical shell': ' Shell thickness'} 4340 partsh = wx.ComboBox(G2frame.data Display,value=str(data['Size']['Shape'][0]),choices=shapes.keys(),4305 partsh = wx.ComboBox(G2frame.dataWindow,value=str(data['Size']['Shape'][0]),choices=shapes.keys(), 4341 4306 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4342 4307 partsh.Bind(wx.EVT_COMBOBOX,OnShape) 4343 4308 partSizer.Add(partsh,0,WACV) 4344 4309 if data['Size']['Shape'][0] not in ['Unified sphere',]: 4345 partSizer.Add(wx.StaticText(G2frame.data Display,label=shapes[data['Size']['Shape'][0]]),0,WACV)4346 partprm = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Size']['Shape'],1,4310 partSizer.Add(wx.StaticText(G2frame.dataWindow,label=shapes[data['Size']['Shape'][0]]),0,WACV) 4311 partprm = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Size']['Shape'],1, 4347 4312 nDig=(10,3),typeHint=float,min=0.) 4348 4313 partSizer.Add(partprm,0,WACV) … … 4351 4316 fitSizer = wx.BoxSizer(wx.HORIZONTAL) 4352 4317 methods = ['MaxEnt','IPG',] 4353 fitSizer.Add(wx.StaticText(G2frame.data Display,label='Fitting method: '),0,WACV)4354 method = wx.ComboBox(G2frame.data Display,value=data['Size']['Method'],choices=methods,4318 fitSizer.Add(wx.StaticText(G2frame.dataWindow,label='Fitting method: '),0,WACV) 4319 method = wx.ComboBox(G2frame.dataWindow,value=data['Size']['Method'],choices=methods, 4355 4320 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4356 4321 method.Bind(wx.EVT_COMBOBOX,OnMethod) 4357 4322 fitSizer.Add(method,0,WACV) 4358 4323 iters = ['10','25','50','100','150','200'] 4359 fitSizer.Add(wx.StaticText(G2frame.data Display,label=' No. iterations: '),0,WACV)4324 fitSizer.Add(wx.StaticText(G2frame.dataWindow,label=' No. iterations: '),0,WACV) 4360 4325 Method = data['Size']['Method'] 4361 iter = wx.ComboBox(G2frame.data Display,value=str(data['Size'][Method]['Niter']),choices=iters,4326 iter = wx.ComboBox(G2frame.dataWindow,value=str(data['Size'][Method]['Niter']),choices=iters, 4362 4327 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4363 4328 Indx[iter.GetId()] = [data['Size'][Method],'Niter',0] … … 4365 4330 fitSizer.Add(iter,0,WACV) 4366 4331 if 'MaxEnt' in data['Size']['Method']: 4367 fitSizer.Add(wx.StaticText(G2frame.data Display,label=' Log floor factor: '),0,WACV)4332 fitSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Log floor factor: '),0,WACV) 4368 4333 floors = [str(-i) for i in range(9)] 4369 floor = wx.ComboBox(G2frame.data Display,value=str(data['Size']['MaxEnt']['Sky']),choices=floors,4334 floor = wx.ComboBox(G2frame.dataWindow,value=str(data['Size']['MaxEnt']['Sky']),choices=floors, 4370 4335 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4371 4336 Indx[floor.GetId()] = [data['Size']['MaxEnt'],'Sky',-10] … … 4373 4338 fitSizer.Add(floor,0,WACV) 4374 4339 elif 'IPG' in data['Size']['Method']: 4375 fitSizer.Add(wx.StaticText(G2frame.data Display,label=' Q power weight (-1 for sigma): '),0,WACV)4340 fitSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Q power weight (-1 for sigma): '),0,WACV) 4376 4341 choices = ['-1','0','1','2','3','4'] 4377 power = wx.ComboBox(G2frame.data Display,value=str(data['Size']['IPG']['Power']),choices=choices,4342 power = wx.ComboBox(G2frame.dataWindow,value=str(data['Size']['IPG']['Power']),choices=choices, 4378 4343 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4379 4344 Indx[power.GetId()] = [data['Size']['IPG'],'Power',-2] … … 4467 4432 def SizeSizer(): 4468 4433 sizeSizer = wx.FlexGridSizer(0,4,5,5) 4469 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Distribution: '),0,WACV)4434 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Distribution: '),0,WACV) 4470 4435 Distchoice = ['LogNormal','Gaussian','LSW','Schulz-Zimm','Bragg','Unified','Porod','Monodisperse',] 4471 distChoice = wx.ComboBox(G2frame.data Display,value=level['Controls']['DistType'],choices=Distchoice,4436 distChoice = wx.ComboBox(G2frame.dataWindow,value=level['Controls']['DistType'],choices=Distchoice, 4472 4437 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4473 4438 Indx[distChoice.GetId()] = [level['Controls'],'DistType'] … … 4475 4440 sizeSizer.Add(distChoice,0,WACV) #put structure factor choices here 4476 4441 if level['Controls']['DistType'] not in ['Bragg','Unified','Porod',]: 4477 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Form Factor: '),0,WACV)4442 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Form Factor: '),0,WACV) 4478 4443 if 'Mono' in level['Controls']['DistType']: 4479 ffChoice = wx.ComboBox(G2frame.data Display,value=level['Controls']['FormFact'],choices=ffMonoChoices,4444 ffChoice = wx.ComboBox(G2frame.dataWindow,value=level['Controls']['FormFact'],choices=ffMonoChoices, 4480 4445 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4481 4446 else: 4482 ffChoice = wx.ComboBox(G2frame.data Display,value=level['Controls']['FormFact'],choices=ffDistChoices,4447 ffChoice = wx.ComboBox(G2frame.dataWindow,value=level['Controls']['FormFact'],choices=ffDistChoices, 4483 4448 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4484 4449 Indx[ffChoice.GetId()] = [level['Controls'],'FormFact'] … … 4486 4451 sizeSizer.Add(ffChoice,0,WACV) 4487 4452 4488 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Material: '),0,WACV)4489 matSel = wx.ComboBox(G2frame.data Display,value=level['Controls']['Material'],4453 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Material: '),0,WACV) 4454 matSel = wx.ComboBox(G2frame.dataWindow,value=level['Controls']['Material'], 4490 4455 choices=Substances['Substances'].keys(),style=wx.CB_READONLY|wx.CB_DROPDOWN) 4491 4456 Indx[matSel.GetId()] = [level['Controls'],'Material'] … … 4494 4459 rho = Substances['Substances'][level['Controls']['Material']].get('XAnom density',0.0) 4495 4460 level['Controls']['Contrast'] = contrast = (rho-rhoMat)**2 4496 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Resonant X-ray contrast: '),0,WACV)4497 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' %.2f 10%scm%s'%(contrast,Pwr20,Pwrm4)),0,WACV)4461 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Resonant X-ray contrast: '),0,WACV) 4462 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' %.2f 10%scm%s'%(contrast,Pwr20,Pwrm4)),0,WACV) 4498 4463 if 'Mono' not in level['Controls']['DistType']: 4499 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Num. radii: '),0,WACV)4464 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Num. radii: '),0,WACV) 4500 4465 radii = ['25','50','75','100','200'] 4501 nRadii = wx.ComboBox(G2frame.data Display,value=str(level['Controls']['NumPoints']),choices=radii,4466 nRadii = wx.ComboBox(G2frame.dataWindow,value=str(level['Controls']['NumPoints']),choices=radii, 4502 4467 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4503 4468 Indx[nRadii.GetId()] = [level['Controls'],'NumPoints'] 4504 4469 nRadii.Bind(wx.EVT_COMBOBOX,OnSelect) 4505 4470 sizeSizer.Add(nRadii,0,WACV) 4506 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' R dist. cutoff: '),0,WACV)4507 rCutoff = G2G.ValidatedTxtCtrl(G2frame.data Display,level['Controls'],'Cutoff',4471 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' R dist. cutoff: '),0,WACV) 4472 rCutoff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,level['Controls'],'Cutoff', 4508 4473 min=0.001,max=0.1,typeHint=float) 4509 4474 sizeSizer.Add(rCutoff,0,WACV) … … 4511 4476 Parms = level['Unified'] 4512 4477 Best = G2sasd.Bestimate(Parms['G'][0],Parms['Rg'][0],Parms['P'][0]) 4513 sizeSizer.Add(wx.StaticText(G2frame.data Display,label=' Estimated Dist B: %12.4g'%(Best)),0,WACV)4478 sizeSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Estimated Dist B: %12.4g'%(Best)),0,WACV) 4514 4479 return sizeSizer 4515 4480 … … 4526 4491 if parm in Parms: 4527 4492 if parm == 'MinSize': 4528 parmSizer.Add(wx.StaticText(G2frame.data Display,label=' Dist '+parm),0,wx.ALIGN_CENTER)4493 parmSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Dist '+parm),0,wx.ALIGN_CENTER) 4529 4494 else: 4530 parmVar = wx.CheckBox(G2frame.data Display,label='Refine? Dist '+parm)4495 parmVar = wx.CheckBox(G2frame.dataWindow,label='Refine? Dist '+parm) 4531 4496 parmVar.SetValue(Parms[parm][1]) 4532 4497 parmVar.Bind(wx.EVT_CHECKBOX, OnSelect) 4533 4498 parmSizer.Add(parmVar,0,WACV) 4534 4499 Indx[parmVar.GetId()] = [Parms[parm],1] 4535 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)4536 parmValue = wx.TextCtrl(G2frame.data Display,value='%.3g'%(Parms[parm][0]),4500 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 4501 parmValue = wx.TextCtrl(G2frame.dataWindow,value='%.3g'%(Parms[parm][0]), 4537 4502 style=wx.TE_PROCESS_ENTER) 4538 4503 parmValue.Bind(wx.EVT_TEXT_ENTER,OnValue) … … 4545 4510 value = np.log10(Parms[parm][0]) 4546 4511 valMinMax = [value-1,value+1] 4547 parmSldr = wx.Slider(G2frame.data Display,minValue=slMult*valMinMax[0],4512 parmSldr = wx.Slider(G2frame.dataWindow,minValue=slMult*valMinMax[0], 4548 4513 maxValue=slMult*valMinMax[1],value=slMult*value) 4549 4514 Indx[parmValue.GetId()] = [Parms,parm,parmSldr] … … 4557 4522 for parm in parmOrder: 4558 4523 if parm in Args: 4559 parmVar = wx.CheckBox(G2frame.data Display,label='Refine? '+fTypes[iarg]+parm)4524 parmVar = wx.CheckBox(G2frame.dataWindow,label='Refine? '+fTypes[iarg]+parm) 4560 4525 parmVar.SetValue(Args[parm][1]) 4561 4526 Indx[parmVar.GetId()] = [Args[parm],1] 4562 4527 parmVar.Bind(wx.EVT_CHECKBOX, OnSelect) 4563 4528 parmSizer.Add(parmVar,0,WACV) 4564 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)4565 parmValue = wx.TextCtrl(G2frame.data Display,value='%.3g'%(Args[parm][0]),4529 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 4530 parmValue = wx.TextCtrl(G2frame.dataWindow,value='%.3g'%(Args[parm][0]), 4566 4531 style=wx.TE_PROCESS_ENTER) 4567 4532 parmValue.Bind(wx.EVT_TEXT_ENTER,OnValue) … … 4582 4547 value = np.log10(Args[parm][0]) 4583 4548 valMinMax = [value-1,value+1] 4584 parmSldr = wx.Slider(G2frame.data Display,minValue=slMult*valMinMax[0],4549 parmSldr = wx.Slider(G2frame.dataWindow,minValue=slMult*valMinMax[0], 4585 4550 maxValue=slMult*valMinMax[1],value=slMult*value) 4586 4551 Indx[parmVar.GetId()] = [Args[parm],1] … … 4594 4559 partSizer = wx.BoxSizer(wx.VERTICAL) 4595 4560 topSizer = wx.BoxSizer(wx.HORIZONTAL) 4596 topSizer.Add(wx.StaticText(G2frame.data Display,label=' Particle fit parameters: '),0,WACV)4597 topSizer.Add(wx.StaticText(G2frame.data Display,label=' Matrix: '),0,WACV)4598 matsel = wx.ComboBox(G2frame.data Display,value=data['Particle']['Matrix']['Name'],4561 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Particle fit parameters: '),0,WACV) 4562 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Matrix: '),0,WACV) 4563 matsel = wx.ComboBox(G2frame.dataWindow,value=data['Particle']['Matrix']['Name'], 4599 4564 choices=Substances['Substances'].keys(),style=wx.CB_READONLY|wx.CB_DROPDOWN) 4600 4565 Indx[matsel.GetId()] = [data['Particle']['Matrix'],'Name'] … … 4602 4567 rhoMat = Substances['Substances'][data['Particle']['Matrix']['Name']].get('XAnom density',0.0) 4603 4568 topSizer.Add(matsel,0,WACV) 4604 topSizer.Add(wx.StaticText(G2frame.data Display,label=' Volume fraction: '),0,WACV)4605 volfrac = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Particle']['Matrix']['VolFrac'],0,4569 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Volume fraction: '),0,WACV) 4570 volfrac = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Particle']['Matrix']['VolFrac'],0, 4606 4571 typeHint=float) 4607 4572 topSizer.Add(volfrac,0,WACV) 4608 volVar = wx.CheckBox(G2frame.data Display,label=' Refine?')4573 volVar = wx.CheckBox(G2frame.dataWindow,label=' Refine?') 4609 4574 volVar.SetValue(data['Particle']['Matrix']['VolFrac'][1]) 4610 4575 Indx[volVar.GetId()] = [data['Particle']['Matrix']['VolFrac'],1] … … 4613 4578 partSizer.Add(topSizer,0,) 4614 4579 for ilev,level in enumerate(data['Particle']['Levels']): 4615 G2G.HorizontalLine(partSizer,G2frame.data Display)4580 G2G.HorizontalLine(partSizer,G2frame.dataWindow) 4616 4581 topLevel = wx.BoxSizer(wx.HORIZONTAL) 4617 topLevel.Add(wx.StaticText(G2frame.data Display,label=' Model component %d: '%(ilev)),0,WACV)4618 delBtn = wx.Button(G2frame.data Display,label=' Delete?')4582 topLevel.Add(wx.StaticText(G2frame.dataWindow,label=' Model component %d: '%(ilev)),0,WACV) 4583 delBtn = wx.Button(G2frame.dataWindow,label=' Delete?') 4619 4584 Indx[delBtn.GetId()] = ilev 4620 4585 delBtn.Bind(wx.EVT_BUTTON,OnDelLevel) … … 4623 4588 partSizer.Add(SizeSizer()) 4624 4589 if level['Controls']['DistType'] not in ['Bragg','Unified','Porod',]: 4625 topLevel.Add(wx.StaticText(G2frame.data Display,label=' Structure factor: '),0,WACV)4626 strfctr = wx.ComboBox(G2frame.data Display,value=level['Controls']['StrFact'],4590 topLevel.Add(wx.StaticText(G2frame.dataWindow,label=' Structure factor: '),0,WACV) 4591 strfctr = wx.ComboBox(G2frame.dataWindow,value=level['Controls']['StrFact'], 4627 4592 choices=sfChoices,style=wx.CB_READONLY|wx.CB_DROPDOWN) 4628 4593 Indx[strfctr.GetId()] = [level['Controls'],'StrFact'] … … 4666 4631 BackSample = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,BackId, 'Sample Parameters')) 4667 4632 Profile[5] = BackSample['Scale'][0]*G2frame.PatternTree.GetItemPyData(BackId)[1][1] 4668 if G2frame.dataDisplay: 4669 G2frame.dataFrame.DestroyChildren() # is this a ScrolledWindow? If so, bad! 4670 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.ModelMenu) 4671 if not G2frame.dataFrame.GetStatusBar(): 4672 Status = G2frame.dataFrame.CreateStatusBar() 4673 G2frame.dataFrame.SetLabel('Modelling') 4674 G2frame.dataDisplay = wxscroll.ScrolledPanel(G2frame.dataFrame) 4633 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.ModelMenu) 4634 G2frame.dataWindow.ClearData() 4635 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Modelling') 4675 4636 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyModel, id=G2gd.wxID_MODELCOPY) 4676 4637 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyFlags, id=G2gd.wxID_MODELCOPYFLAGS) … … 4683 4644 topSizer = wx.BoxSizer(wx.HORIZONTAL) 4684 4645 models = ['Size dist.','Particle fit'] 4685 topSizer.Add(wx.StaticText(G2frame.data Display,label=' Modeling by: '),0,WACV)4686 fitSel = wx.ComboBox(G2frame.data Display,value=data['Current'],choices=models,4646 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Modeling by: '),0,WACV) 4647 fitSel = wx.ComboBox(G2frame.dataWindow,value=data['Current'],choices=models, 4687 4648 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4688 4649 fitSel.Bind(wx.EVT_COMBOBOX,OnSelectFit) 4689 4650 topSizer.Add(fitSel,0,WACV) 4690 topSizer.Add(wx.StaticText(G2frame.data Display,label=' Error multiplier: '),0,WACV)4691 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff)4692 esdScale = wx.TextCtrl(G2frame.data Display,value='%.3f'%(1./np.sqrt(ProfDict['wtFactor'])),style=wx.TE_PROCESS_ENTER)4651 topSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Error multiplier: '),0,WACV) 4652 # azmthOff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'azmthOff',nDig=(10,2),typeHint=float,OnLeave=OnAzmthOff) 4653 esdScale = wx.TextCtrl(G2frame.dataWindow,value='%.3f'%(1./np.sqrt(ProfDict['wtFactor'])),style=wx.TE_PROCESS_ENTER) 4693 4654 esdScale.Bind(wx.EVT_TEXT_ENTER,OnEsdScale) 4694 4655 esdScale.Bind(wx.EVT_KILL_FOCUS,OnEsdScale) 4695 4656 topSizer.Add(esdScale,0,WACV) 4696 4657 mainSizer.Add(topSizer) 4697 G2G.HorizontalLine(mainSizer,G2frame.data Display)4658 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 4698 4659 if 'Size' in data['Current']: 4699 4660 if 'MaxEnt' in data['Size']['Method']: 4700 Status.SetStatusText('Size distribution by Maximum entropy')4661 G2frame.GetStatusBar().SetStatusText('Size distribution by Maximum entropy') 4701 4662 elif 'IPG' in data['Size']['Method']: 4702 Status.SetStatusText('Size distribution by Interior-Point Gradient')4663 G2frame.GetStatusBar().SetStatusText('Size distribution by Interior-Point Gradient') 4703 4664 mainSizer.Add(SizeSizer()) 4704 4665 elif 'Particle' in data['Current']: 4705 4666 mainSizer.Add(PartSizer(),1,wx.ALIGN_LEFT|wx.EXPAND) 4706 G2G.HorizontalLine(mainSizer,G2frame.data Display)4667 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 4707 4668 backSizer = wx.BoxSizer(wx.HORIZONTAL) 4708 backSizer.Add(wx.StaticText(G2frame.data Display,label=' Background:'),0,WACV)4709 backVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data['Back'],0,4669 backSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Background:'),0,WACV) 4670 backVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Back'],0, 4710 4671 nDig=(10,3),typeHint=float,OnLeave=OnBackChange) 4711 4672 backSizer.Add(backVal,0,WACV) 4712 backVar = wx.CheckBox(G2frame.data Display,label='Refine?')4673 backVar = wx.CheckBox(G2frame.dataWindow,label='Refine?') 4713 4674 Indx[backVar.GetId()] = [data['Back'],1] 4714 4675 backVar.SetValue(data['Back'][1]) … … 4716 4677 backSizer.Add(backVar,0,WACV) 4717 4678 #multiple background files? 4718 backSizer.Add(wx.StaticText(G2frame.data Display,-1,' Background file: '),0,WACV)4679 backSizer.Add(wx.StaticText(G2frame.dataWindow,-1,' Background file: '),0,WACV) 4719 4680 Choices = ['',]+G2gd.GetPatternTreeDataNames(G2frame,['SASD',]) 4720 backFile = wx.ComboBox(parent=G2frame.data Display,value=data['BackFile'],choices=Choices,4681 backFile = wx.ComboBox(parent=G2frame.dataWindow,value=data['BackFile'],choices=Choices, 4721 4682 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4722 4683 backFile.Bind(wx.EVT_COMBOBOX,OnBackFile) … … 4725 4686 4726 4687 mainSizer.Layout() 4727 G2frame.dataDisplay.SetSizer(mainSizer) 4728 G2frame.dataDisplay.SetAutoLayout(1) 4729 G2frame.dataDisplay.SetupScrolling() 4730 Size = mainSizer.Fit(G2frame.dataFrame) 4731 Size[0] += 25 4732 G2frame.dataFrame.setSizePosLeft(Size) 4688 G2frame.dataWindow.SetSizer(mainSizer) 4689 G2frame.dataWindow.SetAutoLayout(1) 4690 mainSizer.Fit(G2frame.dataFrame) 4691 G2frame.SetDataSize() 4733 4692 4734 4693 ################################################################################ … … 4972 4931 if ProfDict['ifDQ']: 4973 4932 choice += [GkDelta+'Q/Q in data'] 4974 dQSel = wx.RadioBox(G2frame.data Display,wx.ID_ANY,'Instrument resolution type:',choices=choice,4933 dQSel = wx.RadioBox(G2frame.dataWindow,wx.ID_ANY,'Instrument resolution type:',choices=choice, 4975 4934 majorDimension=0,style=wx.RA_SPECIFY_COLS) 4976 4935 dQSel.SetStringSelection(data['dQ type']) 4977 4936 dQSel.Bind(wx.EVT_RADIOBOX,OndQSel) 4978 4937 resol.Add(dQSel,0,WACV) 4979 resol.Add(wx.StaticText(G2frame.data Display,label=' (FWHM %): '),0,WACV)4980 resol.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Resolution'],0,nDig=(10,3),min=0.,max=5.,OnLeave=NewRes),0,WACV)4938 resol.Add(wx.StaticText(G2frame.dataWindow,label=' (FWHM %): '),0,WACV) 4939 resol.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Resolution'],0,nDig=(10,3),min=0.,max=5.,OnLeave=NewRes),0,WACV) 4981 4940 controlSizer.Add(resol,0,WACV) 4982 4941 minimiz = wx.BoxSizer(wx.HORIZONTAL) 4983 minimiz.Add(wx.StaticText(G2frame.data Display,label=' Minimizer: '),0,WACV)4942 minimiz.Add(wx.StaticText(G2frame.dataWindow,label=' Minimizer: '),0,WACV) 4984 4943 minlist = ['LMLS','Basin Hopping','MC/SA Anneal','L-BFGS-B',] 4985 minSel = wx.ComboBox(G2frame.data Display,value=data['Minimizer'],choices=minlist,4944 minSel = wx.ComboBox(G2frame.dataWindow,value=data['Minimizer'],choices=minlist, 4986 4945 style=wx.CB_READONLY|wx.CB_DROPDOWN) 4987 4946 minSel.Bind(wx.EVT_COMBOBOX, OnMinSel) 4988 4947 minimiz.Add(minSel,0,WACV) 4989 minimiz.Add(wx.StaticText(G2frame.data Display,label=' Bounds factor: '),0,WACV)4990 minimiz.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Toler',nDig=(10,2),max=0.99,min=0.1),0,WACV)4991 weight = wx.CheckBox(G2frame.data Display,label='Use 2% sig. weights')4948 minimiz.Add(wx.StaticText(G2frame.dataWindow,label=' Bounds factor: '),0,WACV) 4949 minimiz.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Toler',nDig=(10,2),max=0.99,min=0.1),0,WACV) 4950 weight = wx.CheckBox(G2frame.dataWindow,label='Use 2% sig. weights') 4992 4951 weight.SetValue(data.get('2% weight',False)) 4993 4952 weight.Bind(wx.EVT_CHECKBOX, OnWeight) … … 4995 4954 controlSizer.Add(minimiz,0,WACV) 4996 4955 plotSizer = wx.BoxSizer(wx.HORIZONTAL) 4997 plotSizer.Add(wx.StaticText(G2frame.data Display,label=' Plot controls: '),0,WACV)4998 sld = wx.CheckBox(G2frame.data Display,label='Plot SLD?')4956 plotSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Plot controls: '),0,WACV) 4957 sld = wx.CheckBox(G2frame.dataWindow,label='Plot SLD?') 4999 4958 sld.Bind(wx.EVT_CHECKBOX, OnSLDplot) 5000 4959 plotSizer.Add(sld,0,WACV) 5001 plotSizer.Add(wx.StaticText(G2frame.data Display,label=' Zero position location: '),0,WACV)4960 plotSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Zero position location: '),0,WACV) 5002 4961 poslist = ['Top','Bottom'] 5003 refpos = wx.ComboBox(G2frame.data Display,value=data['Zero'],choices=poslist,4962 refpos = wx.ComboBox(G2frame.dataWindow,value=data['Zero'],choices=poslist, 5004 4963 style=wx.CB_READONLY|wx.CB_DROPDOWN) 5005 4964 refpos.Bind(wx.EVT_COMBOBOX, OnRefPos) 5006 4965 plotSizer.Add(refpos,0,WACV) 5007 # q4fft = wx.CheckBox(G2frame.data Display,label='Plot fft?')4966 # q4fft = wx.CheckBox(G2frame.dataWindow,label='Plot fft?') 5008 4967 # q4fft.Bind(wx.EVT_CHECKBOX, OnQ4fftplot) 5009 4968 # plotSizer.Add(q4fft,0,WACV) … … 5030 4989 5031 4990 overall = wx.BoxSizer(wx.HORIZONTAL) 5032 overall.Add(wx.StaticText(G2frame.data Display,label=' Scale: '),0,WACV)5033 overall.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Scale'],0,4991 overall.Add(wx.StaticText(G2frame.dataWindow,label=' Scale: '),0,WACV) 4992 overall.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Scale'],0, 5034 4993 nDig=(10,2),typeHint=float,OnLeave=Recalculate),0,WACV) 5035 scaleref = wx.CheckBox(G2frame.data Display,label=' Refine? ')4994 scaleref = wx.CheckBox(G2frame.dataWindow,label=' Refine? ') 5036 4995 scaleref.SetValue(data['Scale'][1]) 5037 4996 scaleref.Bind(wx.EVT_CHECKBOX, OnScaleRef) 5038 4997 overall.Add(scaleref,0,WACV) 5039 overall.Add(wx.StaticText(G2frame.data Display,label=' Flat bkg.: '),0,WACV)5040 overall.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['FltBack'],0,4998 overall.Add(wx.StaticText(G2frame.dataWindow,label=' Flat bkg.: '),0,WACV) 4999 overall.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['FltBack'],0, 5041 5000 nDig=(10,2,'g'),typeHint=float,OnLeave=Recalculate),0,WACV) 5042 backref = wx.CheckBox(G2frame.data Display,label=' Refine? ')5001 backref = wx.CheckBox(G2frame.dataWindow,label=' Refine? ') 5043 5002 backref.SetValue(data['FltBack'][1]) 5044 5003 backref.Bind(wx.EVT_CHECKBOX, OnBackRef) … … 5103 5062 for ilay,layer in enumerate(data['Layers']): 5104 5063 if not ilay: 5105 layerSizer.Add(wx.StaticText(G2frame.data Display,label=' Top layer (superphase):'),0,WACV)5064 layerSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Top layer (superphase):'),0,WACV) 5106 5065 elif ilay < len(data['Layers'])-1: 5107 layerSizer.Add(wx.StaticText(G2frame.data Display,label=' Layer no. %d'%(ilay)),0,WACV)5066 layerSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Layer no. %d'%(ilay)),0,WACV) 5108 5067 else: 5109 layerSizer.Add(wx.StaticText(G2frame.data Display,label=' Bottom layer (substrate):'),0,WACV)5068 layerSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Bottom layer (substrate):'),0,WACV) 5110 5069 midlayer = wx.BoxSizer(wx.HORIZONTAL) 5111 midlayer.Add(wx.StaticText(G2frame.data Display,label=' Substance: '),0,WACV)5070 midlayer.Add(wx.StaticText(G2frame.dataWindow,label=' Substance: '),0,WACV) 5112 5071 midName = data['Layers'][ilay]['Name'] 5113 midSel = wx.ComboBox(G2frame.data Display,value=midName,5072 midSel = wx.ComboBox(G2frame.dataWindow,value=midName, 5114 5073 choices=Substances.keys(),style=wx.CB_READONLY|wx.CB_DROPDOWN) 5115 5074 Indx[midSel.GetId()] = ilay … … 5118 5077 if midName != 'vacuum': 5119 5078 if midName != 'unit scatter': 5120 midlayer.Add(wx.StaticText(G2frame.data Display,label=' Den. Mult.: '),0,WACV)5121 midlayer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Layers'][ilay]['DenMul'],0,5079 midlayer.Add(wx.StaticText(G2frame.dataWindow,label=' Den. Mult.: '),0,WACV) 5080 midlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Layers'][ilay]['DenMul'],0, 5122 5081 nDig=(10,4),OnLeave=Recalculate),0,WACV) 5123 varBox = wx.CheckBox(G2frame.data Display,label='Refine?')5082 varBox = wx.CheckBox(G2frame.dataWindow,label='Refine?') 5124 5083 Indx[varBox.GetId()] = [ilay,'DenMul'] 5125 5084 varBox.SetValue(data['Layers'][ilay]['DenMul'][1]) … … 5127 5086 midlayer.Add(varBox,0,WACV) 5128 5087 realScatt = data['Layers'][ilay]['DenMul'][0]*Substances[midName]['Scatt density'] 5129 midlayer.Add(wx.StaticText(G2frame.data Display,5088 midlayer.Add(wx.StaticText(G2frame.dataWindow, 5130 5089 label=' Real scat. den.: %.4g'%(realScatt)),0,WACV) 5131 5090 imagScatt = data['Layers'][ilay]['DenMul'][0]*Substances[midName]['XImag density'] 5132 midlayer.Add(wx.StaticText(G2frame.data Display,5091 midlayer.Add(wx.StaticText(G2frame.dataWindow, 5133 5092 label=' Imag scat. den.: %.4g'%(imagScatt)),0,WACV) 5134 5093 else: 5135 5094 realScatt = data['Layers'][ilay]['DenMul'][0] 5136 midlayer.Add(wx.StaticText(G2frame.data Display,5095 midlayer.Add(wx.StaticText(G2frame.dataWindow, 5137 5096 label=' Real scat. den.: %.4g'%(realScatt)),0,WACV) 5138 5097 imagScatt = data['Layers'][ilay]['iDenMul'][0] 5139 midlayer.Add(wx.StaticText(G2frame.data Display,5098 midlayer.Add(wx.StaticText(G2frame.dataWindow, 5140 5099 label=' Imag scat. den.: %.4g'%(imagScatt)),0,WACV) 5141 5100 else: 5142 midlayer.Add(wx.StaticText(G2frame.data Display,label=', air or gas'),0,WACV)5101 midlayer.Add(wx.StaticText(G2frame.dataWindow,label=', air or gas'),0,WACV) 5143 5102 layerSizer.Add(midlayer) 5144 5103 if midName == 'unit scatter': 5145 5104 nxtlayer = wx.BoxSizer(wx.HORIZONTAL) 5146 nxtlayer.Add(wx.StaticText(G2frame.data Display,label=' Real Den. : '),0,WACV)5147 nxtlayer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Layers'][ilay]['DenMul'],0,5105 nxtlayer.Add(wx.StaticText(G2frame.dataWindow,label=' Real Den. : '),0,WACV) 5106 nxtlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Layers'][ilay]['DenMul'],0, 5148 5107 nDig=(10,4),OnLeave=Recalculate),0,WACV) 5149 varBox = wx.CheckBox(G2frame.data Display,label='Refine?')5108 varBox = wx.CheckBox(G2frame.dataWindow,label='Refine?') 5150 5109 Indx[varBox.GetId()] = [ilay,'DenMul'] 5151 5110 varBox.SetValue(data['Layers'][ilay]['DenMul'][1]) 5152 5111 varBox.Bind(wx.EVT_CHECKBOX, OnCheckBox) 5153 5112 nxtlayer.Add(varBox,0,WACV) 5154 nxtlayer.Add(wx.StaticText(G2frame.data Display,label=' Imag Den. : '),0,WACV)5155 nxtlayer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Layers'][ilay]['iDenMul'],0,5113 nxtlayer.Add(wx.StaticText(G2frame.dataWindow,label=' Imag Den. : '),0,WACV) 5114 nxtlayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Layers'][ilay]['iDenMul'],0, 5156 5115 nDig=(10,4),OnLeave=Recalculate),0,WACV) 5157 varBox = wx.CheckBox(G2frame.data Display,label='Refine?')5116 varBox = wx.CheckBox(G2frame.dataWindow,label='Refine?') 5158 5117 Indx[varBox.GetId()] = [ilay,'iDenMul'] 5159 5118 varBox.SetValue(data['Layers'][ilay]['iDenMul'][1]) … … 5164 5123 if 'N' in Inst['Type'][0] and midName not in ['vacuum','unit scatter']: 5165 5124 magLayer = wx.BoxSizer(wx.HORIZONTAL) 5166 magLayer.Add(wx.StaticText(G2frame.data Display,label=' Magnetic SLD: '),0,WACV)5167 magLayer.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Layers'][ilay]['Mag SLD'],0,5125 magLayer.Add(wx.StaticText(G2frame.dataWindow,label=' Magnetic SLD: '),0,WACV) 5126 magLayer.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Layers'][ilay]['Mag SLD'],0, 5168 5127 nDig=(10,4),OnLeave=Recalculate),0,WACV) 5169 varBox = wx.CheckBox(G2frame.data Display,label='Refine?')5128 varBox = wx.CheckBox(G2frame.dataWindow,label='Refine?') 5170 5129 Indx[varBox.GetId()] = [ilay,'Mag SLD'] 5171 5130 varBox.SetValue(data['Layers'][ilay]['Mag SLD'][1]) 5172 5131 varBox.Bind(wx.EVT_CHECKBOX, OnCheckBox) 5173 5132 magLayer.Add(varBox,0,WACV) 5174 magLayer.Add(wx.StaticText(G2frame.data Display,5133 magLayer.Add(wx.StaticText(G2frame.dataWindow, 5175 5134 label=' Real+mag scat. den.: %.4g'%(realScatt+data['Layers'][ilay]['Mag SLD'][0])),0,WACV) 5176 5135 layerSizer.Add(magLayer) … … 5182 5141 parms = ['Rough',] 5183 5142 for parm in parms: 5184 parmsline.Add(wx.StaticText(G2frame.data Display,label=' %s: '%(names[parm])),0,WACV)5185 parmsline.Add(G2G.ValidatedTxtCtrl(G2frame.data Display,data['Layers'][ilay][parm],0,5143 parmsline.Add(wx.StaticText(G2frame.dataWindow,label=' %s: '%(names[parm])),0,WACV) 5144 parmsline.Add(G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['Layers'][ilay][parm],0, 5186 5145 nDig=(10,2),OnLeave=Recalculate),0,WACV) 5187 varBox = wx.CheckBox(G2frame.data Display,label='Refine?')5146 varBox = wx.CheckBox(G2frame.dataWindow,label='Refine?') 5188 5147 Indx[varBox.GetId()] = [ilay,parm] 5189 5148 varBox.SetValue(data['Layers'][ilay][parm][1]) … … 5193 5152 if ilay < len(data['Layers'])-1: 5194 5153 newlayer = wx.BoxSizer(wx.HORIZONTAL) 5195 insert = wx.Button(G2frame.data Display,label='Insert')5154 insert = wx.Button(G2frame.dataWindow,label='Insert') 5196 5155 Indx[insert.GetId()] = ilay 5197 5156 insert.Bind(wx.EVT_BUTTON,OnInsertLayer) 5198 5157 newlayer.Add(insert) 5199 delet = wx.Button(G2frame.data Display,label='Delete')5158 delet = wx.Button(G2frame.dataWindow,label='Delete') 5200 5159 Indx[delet.GetId()] = ilay 5201 5160 delet.Bind(wx.EVT_BUTTON,OnDeleteLayer) 5202 5161 newlayer.Add(delet) 5203 5162 layerSizer.Add(newlayer) 5204 G2G.HorizontalLine(layerSizer,G2frame.data Display)5163 G2G.HorizontalLine(layerSizer,G2frame.dataWindow) 5205 5164 5206 5165 return layerSizer … … 5262 5221 Limits = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Limits')) 5263 5222 Inst = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId, 'Instrument Parameters'))[0] 5264 if G2frame.dataDisplay: 5265 G2frame.dataFrame.DestroyChildren() # is this a ScrolledWindow? If so, bad! 5266 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.REFDModelMenu) 5267 if not G2frame.dataFrame.GetStatusBar(): 5268 G2frame.dataFrame.CreateStatusBar() 5269 G2frame.dataFrame.SetLabel('Modelling') 5270 G2frame.dataDisplay = wxscroll.ScrolledPanel(G2frame.dataFrame) 5223 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.REFDModelMenu) 5224 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'Modelling') 5225 G2frame.dataWindow.ClearData() 5271 5226 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyModel, id=G2gd.wxID_MODELCOPY) 5272 5227 G2frame.dataFrame.Bind(wx.EVT_MENU, OnModelPlot, id=G2gd.wxID_MODELPLOT) … … 5276 5231 mainSizer = wx.BoxSizer(wx.VERTICAL) 5277 5232 5278 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Reflectometry fitting for: '+Name),0,WACV)5279 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Controls:'),0,WACV)5233 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Reflectometry fitting for: '+Name),0,WACV) 5234 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Controls:'),0,WACV) 5280 5235 mainSizer.Add(ControlSizer()) 5281 G2G.HorizontalLine(mainSizer,G2frame.data Display)5282 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Global parameters:'),0,WACV)5236 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 5237 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Global parameters:'),0,WACV) 5283 5238 mainSizer.Add(OverallSizer()) 5284 G2G.HorizontalLine(mainSizer,G2frame.data Display)5239 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 5285 5240 Nlayers = len(data['Layers']) 5286 5241 if Nlayers > 2: … … 5288 5243 data['Layer Seq'] = ' '.join([str(i+1) for i in range(Nlayers-2)]) 5289 5244 lineSizer = wx.BoxSizer(wx.HORIZONTAL) 5290 lineSizer.Add(wx.StaticText(G2frame.data Display,label=' Layer sequence: '),0,WACV)5291 repseq = wx.TextCtrl(G2frame.data Display,value = data['Layer Seq'],style=wx.TE_PROCESS_ENTER,size=(500,25))5245 lineSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Layer sequence: '),0,WACV) 5246 repseq = wx.TextCtrl(G2frame.dataWindow,value = data['Layer Seq'],style=wx.TE_PROCESS_ENTER,size=(500,25)) 5292 5247 repseq.Bind(wx.EVT_TEXT_ENTER,OnRepSeq) 5293 5248 repseq.Bind(wx.EVT_KILL_FOCUS,OnRepSeq) … … 5297 5252 for ilay,layer in enumerate(data['Layers'][1:-1]): 5298 5253 Str += ' %d: %s'%(ilay+1,layer['Name']) 5299 mainSizer.Add(wx.StaticText(G2frame.data Display,label=Str),0,WACV)5300 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' NB: Repeat sequence by e.g. 6*(1 2) '),0,WACV)5301 G2G.HorizontalLine(mainSizer,G2frame.data Display)5302 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' Layers: scatt. densities are 10%scm%s = 10%s%s%s'%(Pwr10,Pwrm2,Pwrm6,Angstr,Pwrm2)),0,WACV)5254 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=Str),0,WACV) 5255 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' NB: Repeat sequence by e.g. 6*(1 2) '),0,WACV) 5256 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 5257 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Layers: scatt. densities are 10%scm%s = 10%s%s%s'%(Pwr10,Pwrm2,Pwrm6,Angstr,Pwrm2)),0,WACV) 5303 5258 mainSizer.Add(LayerSizer()) 5304 5259 mainSizer.Layout() 5305 G2frame.dataDisplay.SetSizer(mainSizer) 5306 G2frame.dataDisplay.SetAutoLayout(1) 5307 G2frame.dataDisplay.SetupScrolling() 5308 Size = mainSizer.Fit(G2frame.dataFrame) 5309 Size[0] += 25 5310 Size[1] = min(700,Size[1]) 5311 G2frame.dataFrame.setSizePosLeft(Size) 5312 # x,xr,y = G2pwd.makeSLDprofile(data,Substances) 5313 # ModelPlot(data,x,xr,y) 5314 5260 G2frame.dataWindow.SetSizer(mainSizer) 5261 G2frame.dataWindow.SetAutoLayout(1) 5262 mainSizer.FitInside(G2frame.dataFrame) 5263 G2frame.SetDataSize() 5315 5264 5316 5265 ################################################################################ … … 5477 5426 item['Refine'] = refMult.GetValue() 5478 5427 if item['Refine']: 5479 Status.SetStatusText('Be sure Mult is close to anticipated value. '+ \5428 G2frame.GetStatusBar().SetStatusText('Be sure Mult is close to anticipated value. '+ \ 5480 5429 'Suggest setting Flat Bkg. to 0 before Optimize Mult') 5481 5430 … … 5507 5456 item = data[key] 5508 5457 fileList = [''] + GetFileList(G2frame,'PWDR') 5509 fileSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' '+key+' file:'),0,WACV)5510 fileName = wx.ComboBox(G2frame.data Display,value=item['Name'],choices=fileList,5458 fileSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' '+key+' file:'),0,WACV) 5459 fileName = wx.ComboBox(G2frame.dataWindow,value=item['Name'],choices=fileList, 5511 5460 style=wx.CB_READONLY|wx.CB_DROPDOWN) 5512 5461 itemDict[fileName.GetId()] = [key,'Name','%s'] 5513 5462 fileName.Bind(wx.EVT_COMBOBOX,OnSelectFile) 5514 5463 fileSizer.Add(fileName,0,) 5515 fileSizer.Add(wx.StaticText(parent=G2frame.data Display,label='Multiplier:'),0,WACV)5464 fileSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label='Multiplier:'),0,WACV) 5516 5465 mulBox = wx.BoxSizer(wx.HORIZONTAL) 5517 mult = G2G.ValidatedTxtCtrl(G2frame.data Display,item,'Mult',nDig=(10,3),5466 mult = G2G.ValidatedTxtCtrl(G2frame.dataWindow,item,'Mult',nDig=(10,3), 5518 5467 typeHint=float,OnLeave=OnMult) 5519 5468 mulBox.Add(mult,0,) 5520 multSpin = wx.SpinButton(G2frame.data Display,style=wx.SP_VERTICAL,size=wx.Size(20,25))5469 multSpin = wx.SpinButton(G2frame.dataWindow,style=wx.SP_VERTICAL,size=wx.Size(20,25)) 5521 5470 multSpin.SetRange(-1,1) 5522 5471 multSpin.SetValue(0) … … 5525 5474 fileSizer.Add(mulBox,0,WACV) 5526 5475 if 'Refine' in item and item['Name']: 5527 refMult = wx.CheckBox(parent=G2frame.data Display,label='Refine?')5476 refMult = wx.CheckBox(parent=G2frame.dataWindow,label='Refine?') 5528 5477 refMult.SetValue(item['Refine']) 5529 5478 refMult.Bind(wx.EVT_CHECKBOX, OnRefMult) … … 5552 5501 5553 5502 PDFfileSizer = wx.BoxSizer(wx.VERTICAL) 5554 PDFfileSizer.Add(wx.StaticText(parent=G2frame.data Display,label=' PDF data files: '),0,WACV)5503 PDFfileSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=' PDF data files: '),0,WACV) 5555 5504 PDFfileSizer.Add((5,5),0) 5556 5505 if 'C' in inst['Type'][0]: 5557 5506 str = ' Sample file: PWDR%s Wavelength, A: %.5f Energy, keV: %.3f Polariz.: %.2f '%(dataFile[4:],wave,keV,polariz) 5558 PDFfileSizer.Add(wx.StaticText(parent=G2frame.data Display,label=str),0,WACV)5507 PDFfileSizer.Add(wx.StaticText(parent=G2frame.dataWindow,label=str),0,WACV) 5559 5508 PDFfileSizer.Add((5,5),0) 5560 5509 fileSizer = wx.FlexGridSizer(0,5,5,1) … … 5577 5526 wx.CallAfter(OnComputePDF,None) 5578 5527 5579 elemSizer.Add(wx.StaticText(parent=G2frame.data Display,5528 elemSizer.Add(wx.StaticText(parent=G2frame.dataWindow, 5580 5529 label=' Element: '+'%2s'%(ElData['Symbol'])+' * '),0,WACV) 5581 num = G2G.ValidatedTxtCtrl(G2frame.data Display,ElData,'FormulaNo',nDig=(10,3),min=0.0,5530 num = G2G.ValidatedTxtCtrl(G2frame.dataWindow,ElData,'FormulaNo',nDig=(10,3),min=0.0, 5582 5531 typeHint=float,OnLeave=AfterChange) 5583 5532 elemSizer.Add(num,0,WACV) 5584 elemSizer.Add(wx.StaticText(parent=G2frame.data Display,5533 elemSizer.Add(wx.StaticText(parent=G2frame.dataWindow, 5585 5534 label="f': %.3f"%(ElData['fp'])+' f": %.3f'%(ElData['fpp'])+' mu: %.2f barns'%(ElData['mu']) ), 5586 5535 0,WACV) … … 5599 5548 sampleSizer = wx.BoxSizer(wx.VERTICAL) 5600 5549 if not ElList: 5601 sampleSizer.Add(wx.StaticText(G2frame.data Display,label=' Sample information: fill in this 1st'),0,WACV)5550 sampleSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Sample information: fill in this 1st'),0,WACV) 5602 5551 else: 5603 sampleSizer.Add(wx.StaticText(G2frame.data Display,label=' Sample information: '),0,WACV)5552 sampleSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Sample information: '),0,WACV) 5604 5553 sampleSizer.Add((5,5),0) 5605 5554 Abs = G2lat.CellAbsorption(ElList,data['Form Vol']) … … 5611 5560 sampleSizer.Add((5,5),0) 5612 5561 midSizer = wx.BoxSizer(wx.HORIZONTAL) 5613 midSizer.Add(wx.StaticText(G2frame.data Display,label=' Formula volume: '),0,WACV)5614 formVol = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Form Vol',nDig=(10,3),min=10.0,5562 midSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Formula volume: '),0,WACV) 5563 formVol = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Form Vol',nDig=(10,3),min=10.0, 5615 5564 typeHint=float,OnLeave=AfterChange) 5616 5565 midSizer.Add(formVol,0) 5617 midSizer.Add(wx.StaticText(G2frame.data Display,5566 midSizer.Add(wx.StaticText(G2frame.dataWindow, 5618 5567 label=' Theoretical absorption: %.4f cm-1 Sample absorption: %.4f cm-1'%(Abs,Abs*data['Pack'])), 5619 5568 0,WACV) … … 5621 5570 sampleSizer.Add((5,5),0) 5622 5571 geoBox = wx.BoxSizer(wx.HORIZONTAL) 5623 geoBox.Add(wx.StaticText(G2frame.data Display,label=' Sample geometry: '),0,WACV)5572 geoBox.Add(wx.StaticText(G2frame.dataWindow,label=' Sample geometry: '),0,WACV) 5624 5573 choice = ['Cylinder','Bragg-Brentano','Tilting flat plate in transmission','Fixed flat plate'] 5625 geometry = wx.ComboBox(G2frame.data Display,value=data['Geometry'],choices=choice,5574 geometry = wx.ComboBox(G2frame.dataWindow,value=data['Geometry'],choices=choice, 5626 5575 style=wx.CB_READONLY|wx.CB_DROPDOWN) 5627 5576 geometry.Bind(wx.EVT_COMBOBOX, OnGeometry) 5628 5577 geoBox.Add(geometry,0) 5629 geoBox.Add(wx.StaticText(G2frame.data Display,label=' Sample diameter/thickness, mm: '),0,WACV)5630 diam = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Diam',nDig=(10,3),min=0.01,5578 geoBox.Add(wx.StaticText(G2frame.dataWindow,label=' Sample diameter/thickness, mm: '),0,WACV) 5579 diam = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Diam',nDig=(10,3),min=0.01, 5631 5580 typeHint=float,OnLeave=AfterChange) 5632 5581 geoBox.Add(diam,0) … … 5634 5583 sampleSizer.Add((5,5),0) 5635 5584 geoBox = wx.BoxSizer(wx.HORIZONTAL) 5636 geoBox.Add(wx.StaticText(G2frame.data Display,label=' Packing: '),0,WACV)5637 pack = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Pack',nDig=(10,2),min=0.01,5585 geoBox.Add(wx.StaticText(G2frame.dataWindow,label=' Packing: '),0,WACV) 5586 pack = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Pack',nDig=(10,2),min=0.01, 5638 5587 typeHint=float,OnLeave=AfterChange) 5639 5588 geoBox.Add(pack,0) 5640 geoBox.Add(wx.StaticText(G2frame.data Display,label=' Sample transmission: %.3f %%'%(Trans)),0,WACV)5589 geoBox.Add(wx.StaticText(G2frame.dataWindow,label=' Sample transmission: %.3f %%'%(Trans)),0,WACV) 5641 5590 sampleSizer.Add(geoBox,0) 5642 5591 return sampleSizer … … 5652 5601 G2frame.ErrorDialog('PDF error','Chemical formula not defined') 5653 5602 return 5654 Status.SetStatusText('')5603 G2frame.GetStatusBar().SetStatusText('') 5655 5604 wx.BeginBusyCursor() 5656 5605 try: … … 5711 5660 sfgSizer = wx.BoxSizer(wx.VERTICAL) 5712 5661 sqBox = wx.BoxSizer(wx.HORIZONTAL) 5713 sqBox.Add(wx.StaticText(G2frame.data Display,label=' S(Q)->F(Q)->G(r) controls: '),0,WACV)5662 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' S(Q)->F(Q)->G(r) controls: '),0,WACV) 5714 5663 sqBox.Add((1,1),1,wx.EXPAND,1) 5715 optB = wx.Button(G2frame.data Display,label='Optimize PDF',style=wx.BU_EXACTFIT)5664 optB = wx.Button(G2frame.dataWindow,label='Optimize PDF',style=wx.BU_EXACTFIT) 5716 5665 optB.Bind(wx.EVT_BUTTON, OnOptimizePDF) 5717 5666 sqBox.Add(optB,0,WACV|wx.ALIGN_RIGHT) … … 5720 5669 sfgSizer.Add((5,5),0) 5721 5670 sqBox = wx.BoxSizer(wx.HORIZONTAL) 5722 sqBox.Add(wx.StaticText(G2frame.data Display,label=' Detector type: '),0,WACV)5671 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Detector type: '),0,WACV) 5723 5672 choice = ['Area detector','Point detector'] 5724 detType = wx.ComboBox(G2frame.data Display,value=data['DetType'],choices=choice,5673 detType = wx.ComboBox(G2frame.dataWindow,value=data['DetType'],choices=choice, 5725 5674 style=wx.CB_READONLY|wx.CB_DROPDOWN) 5726 5675 detType.Bind(wx.EVT_COMBOBOX, OnDetType) 5727 5676 sqBox.Add(detType,0) 5728 5677 if data['DetType'] == 'Area detector': 5729 sqBox.Add(wx.StaticText(G2frame.data Display,label=' IP transmission coeff.: '),0,WACV)5730 obliqCoeff = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'ObliqCoeff',nDig=(10,3),min=0.0,max=1.0,5678 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' IP transmission coeff.: '),0,WACV) 5679 obliqCoeff = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'ObliqCoeff',nDig=(10,3),min=0.0,max=1.0, 5731 5680 typeHint=float,OnLeave=AfterChangeNoRefresh) 5732 5681 sqBox.Add(obliqCoeff,0) 5733 sqBox.Add(wx.StaticText(G2frame.data Display,label=' Flat Bkg.: '),0,WACV)5734 flatBkg = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Flat Bkg',nDig=(10,0),min=0,5682 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Flat Bkg.: '),0,WACV) 5683 flatBkg = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Flat Bkg',nDig=(10,0),min=0, 5735 5684 typeHint=float,OnLeave=AfterChangeNoRefresh) 5736 5685 sqBox.Add(flatBkg,0) 5737 flatSpin = wx.SpinButton(G2frame.data Display,style=wx.SP_VERTICAL,size=wx.Size(20,25))5686 flatSpin = wx.SpinButton(G2frame.dataWindow,style=wx.SP_VERTICAL,size=wx.Size(20,25)) 5738 5687 flatSpin.SetRange(-1,1) 5739 5688 flatSpin.SetValue(0) … … 5741 5690 sqBox.Add(flatSpin,0,WACV) 5742 5691 sqBox.Add((1,1),1,wx.EXPAND,1) 5743 sqBox.Add(wx.StaticText(G2frame.data Display,label='Rmin: '),0,WACV|wx.ALIGN_RIGHT)5744 rmin = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Rmin',nDig=(5,1),5692 sqBox.Add(wx.StaticText(G2frame.dataWindow,label='Rmin: '),0,WACV|wx.ALIGN_RIGHT) 5693 rmin = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Rmin',nDig=(5,1), 5745 5694 typeHint=float,size=wx.Size(50,20)) 5746 5695 sqBox.Add(rmin,0,WACV|wx.ALIGN_RIGHT) … … 5748 5697 5749 5698 bkBox = wx.BoxSizer(wx.HORIZONTAL) 5750 bkBox.Add(wx.StaticText(G2frame.data Display,label=' Background ratio: '),0,WACV)5751 backSldr = wx.Slider(parent=G2frame.data Display,style=wx.SL_HORIZONTAL,5699 bkBox.Add(wx.StaticText(G2frame.dataWindow,label=' Background ratio: '),0,WACV) 5700 backSldr = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL, 5752 5701 value=int(100*data['BackRatio'])) 5753 5702 bkBox.Add(backSldr,1,wx.EXPAND) 5754 5703 backSldr.Bind(wx.EVT_SLIDER, OnBackSlider) 5755 backVal = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'BackRatio',nDig=(10,3),min=0.0,max=1.0,5704 backVal = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'BackRatio',nDig=(10,3),min=0.0,max=1.0, 5756 5705 typeHint=float,OnLeave=AfterChangeNoRefresh) 5757 5706 bkBox.Add(backVal,0,WACV) … … 5759 5708 5760 5709 sqBox = wx.BoxSizer(wx.HORIZONTAL) 5761 sqBox.Add(wx.StaticText(G2frame.data Display,label=' Ruland width: '),0,WACV)5762 rulandSldr = wx.Slider(parent=G2frame.data Display,style=wx.SL_HORIZONTAL,5710 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Ruland width: '),0,WACV) 5711 rulandSldr = wx.Slider(parent=G2frame.dataWindow,style=wx.SL_HORIZONTAL, 5763 5712 value=int(1000*data['Ruland'])) 5764 5713 sqBox.Add(rulandSldr,1,wx.EXPAND) 5765 5714 rulandSldr.Bind(wx.EVT_SLIDER, OnRulSlider) 5766 rulandWdt = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Ruland',nDig=(10,3),min=0.001,max=1.0,5715 rulandWdt = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Ruland',nDig=(10,3),min=0.001,max=1.0, 5767 5716 typeHint=float,OnLeave=AfterChangeNoRefresh) 5768 5717 sqBox.Add(rulandWdt,0,WACV) … … 5770 5719 5771 5720 sqBox = wx.BoxSizer(wx.HORIZONTAL) 5772 sqBox.Add(wx.StaticText(G2frame.data Display,label=' Scaling Q-range: '),0,WACV)5773 SQmin = G2G.ValidatedTxtCtrl(G2frame.data Display,data['QScaleLim'],0,nDig=(10,3),5721 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Scaling Q-range: '),0,WACV) 5722 SQmin = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['QScaleLim'],0,nDig=(10,3), 5774 5723 min=qLimits[0],max=.95*data['QScaleLim'][1], 5775 5724 typeHint=float,OnLeave=AfterChangeNoRefresh) 5776 5725 sqBox.Add(SQmin,0,WACV) 5777 sqBox.Add(wx.StaticText(G2frame.data Display,label=' to Qmax '),0,WACV)5778 SQmax = G2G.ValidatedTxtCtrl(G2frame.data Display,data['QScaleLim'],1,nDig=(10,3),5726 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' to Qmax '),0,WACV) 5727 SQmax = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data['QScaleLim'],1,nDig=(10,3), 5779 5728 min=qLimits[0],max=qLimits[1],typeHint=float,OnLeave=NewQmax) 5780 5729 sqBox.Add(SQmax,0,WACV) 5781 resetQ = wx.Button(G2frame.data Display,label='Reset?',style=wx.BU_EXACTFIT)5730 resetQ = wx.Button(G2frame.dataWindow,label='Reset?',style=wx.BU_EXACTFIT) 5782 5731 sqBox.Add(resetQ,0,WACV) 5783 5732 resetQ.Bind(wx.EVT_BUTTON, OnResetQ) 5784 sqBox.Add(wx.StaticText(G2frame.data Display,label=' Rmax: '),0,WACV)5785 rmax = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'Rmax',nDig=(10,1),min=10.,max=200.,5733 sqBox.Add(wx.StaticText(G2frame.dataWindow,label=' Rmax: '),0,WACV) 5734 rmax = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'Rmax',nDig=(10,1),min=10.,max=200., 5786 5735 typeHint=float,OnLeave=AfterChangeNoRefresh,size=wx.Size(50,20)) 5787 5736 sqBox.Add(rmax,0,WACV) 5788 lorch = wx.CheckBox(parent=G2frame.data Display,label='Lorch damping?')5737 lorch = wx.CheckBox(parent=G2frame.dataWindow,label='Lorch damping?') 5789 5738 lorch.SetValue(data['Lorch']) 5790 5739 lorch.Bind(wx.EVT_CHECKBOX, OnLorch) 5791 5740 sqBox.Add(lorch,0,WACV) 5792 noRing = wx.CheckBox(parent=G2frame.data Display,label='Suppress G(0) ringing?')5741 noRing = wx.CheckBox(parent=G2frame.dataWindow,label='Suppress G(0) ringing?') 5793 5742 noRing.SetValue(data['noRing']) 5794 5743 noRing.Bind(wx.EVT_CHECKBOX, OnNoRing) … … 5826 5775 diffSizer = wx.BoxSizer(wx.HORIZONTAL) 5827 5776 fileList = [''] + GetFileList(G2frame,'PDF') 5828 diffSizer.Add(wx.StaticText(G2frame.data Display,label=' Subtract G(R) for: '),0,WACV)5829 grName = wx.ComboBox(G2frame.data Display,value=data['diffGRname'],choices=fileList,5777 diffSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Subtract G(R) for: '),0,WACV) 5778 grName = wx.ComboBox(G2frame.dataWindow,value=data['diffGRname'],choices=fileList, 5830 5779 style=wx.CB_READONLY|wx.CB_DROPDOWN) 5831 5780 grName.Bind(wx.EVT_COMBOBOX,OnSelectGR) 5832 5781 diffSizer.Add(grName,0,WACV) 5833 5782 if data['diffGRname']: 5834 diffSizer.Add(wx.StaticText(G2frame.data Display,label=' Mult: '),0,WACV)5835 mult = G2G.ValidatedTxtCtrl(G2frame.data Display,data,'diffMult',nDig=(10,3),5783 diffSizer.Add(wx.StaticText(G2frame.dataWindow,label=' Mult: '),0,WACV) 5784 mult = G2G.ValidatedTxtCtrl(G2frame.dataWindow,data,'diffMult',nDig=(10,3), 5836 5785 typeHint=float,OnLeave=OnMult) 5837 5786 diffSizer.Add(mult,0,WACV) … … 5870 5819 olddata['Sample'] = sample 5871 5820 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'PDF Controls'),olddata) 5872 Status.SetStatusText('PDF controls copied')5821 G2frame.GetStatusBar().SetStatusText('PDF controls copied') 5873 5822 finally: 5874 5823 dlg.Destroy() … … 5954 5903 return 5955 5904 auxPlot = computePDF(G2frame,data) 5956 if not G2frame.dataFrame.GetStatusBar(): 5957 Status = G2frame.dataFrame.CreateStatusBar() 5958 Status.SetStatusText('PDF computed') 5905 G2frame.GetStatusBar().SetStatusText('PDF computed') 5959 5906 for plot in auxPlot: 5960 5907 XY = np.array(plot[:2]) … … 6028 5975 else: 6029 5976 msg = '{}/{} PDFs computed'.format(N,len(Names)) 6030 G2frame. dataFrame.GetStatusBar().SetStatusText(msg)5977 G2frame.GetStatusBar().SetStatusText(msg) 6031 5978 print(msg) 6032 5979 # what item is being plotted? -- might be better to select from tree … … 6081 6028 if 'diffMult' not in data: 6082 6029 data['diffMult'] = 1.0 6083 if G2frame.dataDisplay: 6084 G2frame.dataFrame.Clear() 6085 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PDFMenu) 6086 if not G2frame.dataFrame.GetStatusBar(): 6087 Status = G2frame.dataFrame.CreateStatusBar() 6030 G2frame.dataFrame.ClearData() 6031 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.PDFMenu) 6088 6032 if powId: 6089 6033 G2frame.dataFrame.PDFMenu.EnableTop(0,enable=True) 6090 6034 else: 6091 6035 G2frame.dataFrame.PDFMenu.EnableTop(0,enable=False) 6092 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame)6093 6036 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyPDFControls, id=G2gd.wxID_PDFCOPYCONTROLS) 6094 6037 G2frame.dataFrame.Bind(wx.EVT_MENU, OnSavePDFControls, id=G2gd.wxID_PDFSAVECONTROLS) … … 6103 6046 ElList = data['ElList'] 6104 6047 mainSizer.Add(PDFFileSizer(),0,WACV) 6105 G2G.HorizontalLine(mainSizer,G2frame.data Display)6048 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 6106 6049 mainSizer.Add(SampleSizer(),0,WACV) 6107 G2G.HorizontalLine(mainSizer,G2frame.data Display)6050 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 6108 6051 mainSizer.Add(SFGctrlSizer(),0,WACV) 6109 G2G.HorizontalLine(mainSizer,G2frame.data Display)6052 G2G.HorizontalLine(mainSizer,G2frame.dataWindow) 6110 6053 mainSizer.Add(DiffSizer(),0,WACV) 6111 6054 mainSizer.Layout() 6112 G2frame.dataDisplay.SetSizer(mainSizer) 6113 Size = mainSizer.Fit(G2frame.dataFrame) 6114 G2frame.dataFrame.setSizePosLeft(Size) 6055 G2frame.dataWindow.SetSizer(mainSizer) 6056 mainSizer.Fit(G2frame.dataFrame) 6057 G2frame.SetDataSize() 6058 6115 6059 ############################################################################################################### 6116 6060 #UpdatePDFPeaks: peaks in G(r) … … 6126 6070 6127 6071 limitBox = wx.BoxSizer(wx.HORIZONTAL) 6128 limitBox.Add(wx.StaticText(G2frame.data Display,label=' PDF Limits: '),0,WACV)6129 lowLim = G2G.ValidatedTxtCtrl(G2frame.data Display,peaks['Limits'],0,nDig=(10,3),6072 limitBox.Add(wx.StaticText(G2frame.dataWindow,label=' PDF Limits: '),0,WACV) 6073 lowLim = G2G.ValidatedTxtCtrl(G2frame.dataWindow,peaks['Limits'],0,nDig=(10,3), 6130 6074 min=0.,max=10.,typeHint=float,OnLeave=NewLim) 6131 6075 limitBox.Add(lowLim,0,WACV) 6132 highLim = G2G.ValidatedTxtCtrl(G2frame.data Display,peaks['Limits'],1,nDig=(10,3),6076 highLim = G2G.ValidatedTxtCtrl(G2frame.dataWindow,peaks['Limits'],1,nDig=(10,3), 6133 6077 min=peaks['Limits'][0],max=10.,typeHint=float,OnLeave=NewLim) 6134 6078 limitBox.Add(highLim,0,WACV) … … 6146 6090 6147 6091 backBox = wx.wx.BoxSizer(wx.HORIZONTAL) 6148 backBox.Add(wx.StaticText(G2frame.data Display,label=' Background slope: '),0,WACV)6149 slope = G2G.ValidatedTxtCtrl(G2frame.data Display,peaks['Background'][1],1,nDig=(10,3),6092 backBox.Add(wx.StaticText(G2frame.dataWindow,label=' Background slope: '),0,WACV) 6093 slope = G2G.ValidatedTxtCtrl(G2frame.dataWindow,peaks['Background'][1],1,nDig=(10,3), 6150 6094 min=-4.*np.pi,max=0.,typeHint=float,OnLeave=NewBack) 6151 6095 backBox.Add(slope,0,WACV) 6152 refbk = wx.CheckBox(parent=G2frame.data Display,label=' Refine?')6096 refbk = wx.CheckBox(parent=G2frame.dataWindow,label=' Refine?') 6153 6097 refbk.SetValue(peaks['Background'][2]) 6154 6098 refbk.Bind(wx.EVT_CHECKBOX, OnRefBack) … … 6188 6132 rowLabels = range(len(peaks['Peaks'])) 6189 6133 peakTable = G2G.Table(peaks['Peaks'],rowLabels=rowLabels,colLabels=colLabels,types=Types) 6190 PDFPeaks = G2G.GSGrid(G2frame.data Display)6134 PDFPeaks = G2G.GSGrid(G2frame.dataWindow) 6191 6135 PDFPeaks.SetTable(peakTable,False) 6192 6136 PDFPeaks.SetMargins(0,0) … … 6197 6141 6198 6142 peakBox = wx.BoxSizer(wx.VERTICAL) 6199 peakBox.Add(wx.StaticText(G2frame.data Display,label=' PDF Peaks:'),0,WACV)6143 peakBox.Add(wx.StaticText(G2frame.dataWindow,label=' PDF Peaks:'),0,WACV) 6200 6144 peakBox.Add(PDFPeaks,0,WACV) 6201 6145 … … 6218 6162 olddata.update(copy.deepcopy(peaks)) 6219 6163 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id, 'PDF Peaks'),olddata) 6220 Status.SetStatusText('PDF peaks copied')6164 G2frame.GetStatusBar().SetStatusText('PDF peaks copied') 6221 6165 finally: 6222 6166 dlg.Destroy() … … 6276 6220 wx.CallAfter(UpdatePDFPeaks,G2frame,peaks,data) 6277 6221 6278 if G2frame.dataDisplay: 6279 G2frame.dataFrame.Clear() 6280 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.PDFPksMenu) 6281 if not G2frame.dataFrame.GetStatusBar(): 6282 Status = G2frame.dataFrame.CreateStatusBar() 6283 G2frame.dataDisplay = wx.Panel(G2frame.dataFrame) 6222 G2frame.dataFrame.ClearData() 6223 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.PDFPksMenu) 6284 6224 G2frame.dataFrame.Bind(wx.EVT_MENU, OnCopyPDFPeaks, id=G2gd.wxID_PDFCOPYPEAKS) 6285 6225 G2frame.dataFrame.Bind(wx.EVT_MENU, OnFitPDFpeaks, id=G2gd.wxID_PDFPKSFIT) … … 6288 6228 mainSizer = wx.BoxSizer(wx.VERTICAL) 6289 6229 mainSizer.Add((5,5),0) 6290 mainSizer.Add(wx.StaticText(G2frame.data Display,label=' PDF peak fit controls:'),0,WACV)6230 mainSizer.Add(wx.StaticText(G2frame.dataWindow,label=' PDF peak fit controls:'),0,WACV) 6291 6231 mainSizer.Add((5,5),0) 6292 6232 mainSizer.Add(limitSizer(),0,WACV) … … 6297 6237 mainSizer.Add(peakSizer()) 6298 6238 mainSizer.Layout() 6299 G2frame.data Display.SetSizer(mainSizer)6300 Size =mainSizer.Fit(G2frame.dataFrame)6301 G2frame. dataFrame.setSizePosLeft(Size)6239 G2frame.dataWindow.SetSizer(mainSizer) 6240 mainSizer.Fit(G2frame.dataFrame) 6241 G2frame.SetDataSize() 6302 6242 -
TabularUnified branch/2frame/GSASIIrestrGUI.py ¶
r2840 r2888 60 60 return 61 61 phasedata = Phases[phaseName] 62 tabIndex = {}63 62 if phaseName not in data: 64 63 data[phaseName] = {} … … 190 189 191 190 def OnAddRestraint(event): 192 page = G2frame. dataDisplay.GetSelection()193 if 'Bond' in G2frame. dataDisplay.GetPageText(page):191 page = G2frame.restrBook.GetSelection() 192 if 'Bond' in G2frame.restrBook.GetPageText(page): 194 193 AddBondRestraint(restrData['Bond']) 195 elif 'Angle' in G2frame. dataDisplay.GetPageText(page):194 elif 'Angle' in G2frame.restrBook.GetPageText(page): 196 195 AddAngleRestraint(restrData['Angle']) 197 elif 'Plane' in G2frame. dataDisplay.GetPageText(page):196 elif 'Plane' in G2frame.restrBook.GetPageText(page): 198 197 AddPlaneRestraint(restrData['Plane']) 199 elif 'Chem' in G2frame. dataDisplay.GetPageText(page):198 elif 'Chem' in G2frame.restrBook.GetPageText(page): 200 199 AddChemCompRestraint(restrData['ChemComp']) 201 elif 'Texture' in G2frame. dataDisplay.GetPageText(page):200 elif 'Texture' in G2frame.restrBook.GetPageText(page): 202 201 AddTextureRestraint(restrData['Texture']) 203 202 204 203 def OnAddAARestraint(event): 205 page = G2frame. dataDisplay.GetSelection()206 if 'Bond' in G2frame. dataDisplay.GetPageText(page):204 page = G2frame.restrBook.GetSelection() 205 if 'Bond' in G2frame.restrBook.GetPageText(page): 207 206 AddAABondRestraint(restrData['Bond']) 208 elif 'Angle' in G2frame. dataDisplay.GetPageText(page):207 elif 'Angle' in G2frame.restrBook.GetPageText(page): 209 208 AddAAAngleRestraint(restrData['Angle']) 210 elif 'Plane' in G2frame. dataDisplay.GetPageText(page):209 elif 'Plane' in G2frame.restrBook.GetPageText(page): 211 210 AddAAPlaneRestraint(restrData['Plane']) 212 elif 'Chiral' in G2frame. dataDisplay.GetPageText(page):211 elif 'Chiral' in G2frame.restrBook.GetPageText(page): 213 212 AddAAChiralRestraint(restrData['Chiral']) 214 elif 'Torsion' in G2frame. dataDisplay.GetPageText(page):213 elif 'Torsion' in G2frame.restrBook.GetPageText(page): 215 214 AddAATorsionRestraint(restrData['Torsion']) 216 elif 'Rama' in G2frame. dataDisplay.GetPageText(page):215 elif 'Rama' in G2frame.restrBook.GetPageText(page): 217 216 AddAARamaRestraint(restrData['Rama']) 218 217 … … 858 857 UpdateBondRestr(bondRestData) 859 858 860 #BondRestr.DestroyChildren()861 if BondRestr.GetSizer():862 BondRestr.GetSizer().Clear(True)859 BondRestr.DestroyChildren() 860 # if BondRestr.GetSizer(): 861 # BondRestr.GetSizer().Clear(True) 863 862 mainSizer = wx.BoxSizer(wx.VERTICAL) 864 863 mainSizer.Add((5,5),0) … … 937 936 BondRestr.SetSize(Size) 938 937 BondRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 939 G2frame.dataFrame.setSizePosLeft(Size)940 938 941 939 def UpdateAngleRestr(angleRestData): … … 990 988 UpdateAngleRestr(angleRestData) 991 989 992 #AngleRestr.DestroyChildren()993 if AngleRestr.GetSizer():994 AngleRestr.GetSizer().Clear(True)990 AngleRestr.DestroyChildren() 991 # if AngleRestr.GetSizer(): 992 # AngleRestr.GetSizer().Clear(True) 995 993 mainSizer = wx.BoxSizer(wx.VERTICAL) 996 994 mainSizer.Add((5,5),0) … … 1069 1067 AngleRestr.SetSize(Size) 1070 1068 AngleRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1071 G2frame.dataFrame.setSizePosLeft(Size)1072 1069 1073 1070 def UpdatePlaneRestr(planeRestData): … … 1113 1110 UpdatePlaneRestr(planeRestData) 1114 1111 1115 #PlaneRestr.DestroyChildren()1116 if PlaneRestr.GetSizer():1117 PlaneRestr.GetSizer().Clear(True)1112 PlaneRestr.DestroyChildren() 1113 # if PlaneRestr.GetSizer(): 1114 # PlaneRestr.GetSizer().Clear(True) 1118 1115 mainSizer = wx.BoxSizer(wx.VERTICAL) 1119 1116 mainSizer.Add((5,5),0) … … 1197 1194 PlaneRestr.SetSize(Size) 1198 1195 PlaneRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1199 G2frame.dataFrame.setSizePosLeft(Size)1200 1196 1201 1197 def UpdateChiralRestr(chiralRestData): … … 1250 1246 UpdateChiralRestr(chiralRestData) 1251 1247 1252 #ChiralRestr.DestroyChildren()1253 if ChiralRestr.GetSizer():1254 ChiralRestr.GetSizer().Clear(True)1248 ChiralRestr.DestroyChildren() 1249 # if ChiralRestr.GetSizer(): 1250 # ChiralRestr.GetSizer().Clear(True) 1255 1251 mainSizer = wx.BoxSizer(wx.VERTICAL) 1256 1252 mainSizer.Add((5,5),0) … … 1329 1325 ChiralRestr.SetSize(Size) 1330 1326 ChiralRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1331 G2frame.dataFrame.setSizePosLeft(Size)1332 1327 1333 1328 def UpdateTorsionRestr(torsionRestData): … … 1368 1363 wx.CallAfter(UpdateTorsionRestr,torsionRestData) 1369 1364 1370 #TorsionRestr.DestroyChildren()1371 if TorsionRestr.GetSizer():1372 TorsionRestr.GetSizer().Clear(True)1365 TorsionRestr.DestroyChildren() 1366 # if TorsionRestr.GetSizer(): 1367 # TorsionRestr.GetSizer().Clear(True) 1373 1368 mainSizer = wx.BoxSizer(wx.VERTICAL) 1374 1369 mainSizer.Add((5,5),0) … … 1451 1446 TorsionRestr.SetSize(Size) 1452 1447 TorsionRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1453 G2frame.dataFrame.setSizePosLeft(Size)1454 1448 1455 1449 def UpdateRamaRestr(ramaRestData): … … 1490 1484 UpdateRamaRestr(ramaRestData) 1491 1485 1492 #RamaRestr.DestroyChildren()1493 if RamaRestr.GetSizer():1494 RamaRestr.GetSizer().Clear(True)1486 RamaRestr.DestroyChildren() 1487 # if RamaRestr.GetSizer(): 1488 # RamaRestr.GetSizer().Clear(True) 1495 1489 mainSizer = wx.BoxSizer(wx.VERTICAL) 1496 1490 mainSizer.Add((5,5),0) … … 1575 1569 RamaRestr.SetSize(Size) 1576 1570 RamaRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1577 G2frame.dataFrame.setSizePosLeft(Size)1578 1571 1579 1572 def UpdateChemcompRestr(chemcompRestData): … … 1630 1623 UpdateChemcompRestr(chemcompRestData) 1631 1624 1632 #ChemCompRestr.DestroyChildren()1633 if ChemCompRestr.GetSizer():1634 ChemCompRestr.GetSizer().Clear(True)1625 ChemCompRestr.DestroyChildren() 1626 # if ChemCompRestr.GetSizer(): 1627 # ChemCompRestr.GetSizer().Clear(True) 1635 1628 mainSizer = wx.BoxSizer(wx.VERTICAL) 1636 1629 mainSizer.Add((5,5),0) … … 1709 1702 ChemCompRestr.SetSize(Size) 1710 1703 ChemCompRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1711 G2frame.dataFrame.setSizePosLeft(Size) 1712 1713 1704 1714 1705 def UpdateTextureRestr(textureRestData): 1715 1706 … … 1742 1733 wx.CallAfter(UpdateTextureRestr,textureRestData) 1743 1734 1744 #TextureRestr.DestroyChildren() 1745 if TextureRestr.GetSizer(): 1746 TextureRestr.GetSizer().Clear(True) 1735 TextureRestr.DestroyChildren() 1747 1736 mainSizer = wx.BoxSizer(wx.VERTICAL) 1748 1737 mainSizer.Add((5,5),0) … … 1786 1775 TextureRestr.SetSize(Size) 1787 1776 TextureRestr.SetScrollbars(10,10,Size[0]/10-4,Size[1]/10-1) 1788 G2frame.dataFrame.setSizePosLeft(Size)1789 1777 1790 1778 def OnPageChanged(event): 1791 1779 #print 'OnPageChanged' 1792 1780 page = event.GetSelection() 1793 text = G2frame. dataDisplay.GetPageText(page)1781 text = G2frame.restrBook.GetPageText(page) 1794 1782 G2frame.dataFrame.RestraintEdit.SetLabel(G2gd.wxID_RESRCHANGEVAL,'Change value') 1795 1783 if text == 'Bond': 1796 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1784 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1797 1785 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,True) 1798 1786 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,True) … … 1800 1788 UpdateBondRestr(bondRestData) 1801 1789 elif text == 'Angle': 1802 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1790 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1803 1791 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,True) 1804 1792 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,True) … … 1806 1794 UpdateAngleRestr(angleRestData) 1807 1795 elif text == 'Plane': 1808 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1796 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1809 1797 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,True) 1810 1798 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,False) … … 1812 1800 UpdatePlaneRestr(planeRestData) 1813 1801 elif text == 'Chiral': 1814 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1802 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1815 1803 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,False) 1816 1804 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,True) … … 1818 1806 UpdateChiralRestr(chiralRestData) 1819 1807 elif text == 'Torsion': 1820 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1808 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1821 1809 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,False) 1822 1810 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,False) … … 1825 1813 UpdateTorsionRestr(torsionRestData) 1826 1814 elif text == 'Ramachandran': 1827 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1815 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1828 1816 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,False) 1829 1817 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,False) … … 1833 1821 wx.CallAfter(G2plt.PlotRama,G2frame,phaseName,rama,ramaName) 1834 1822 elif text == 'Chem. comp.': 1835 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1823 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1836 1824 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,True) 1837 1825 G2frame.dataFrame.RestraintEdit.SetLabel(G2gd.wxID_RESRCHANGEVAL,'Change factor') … … 1841 1829 UpdateChemcompRestr(chemcompRestData) 1842 1830 elif text == 'Texture': 1843 G2gd.SetDataMenuBar(G2frame,G2frame.data Frame.RestraintMenu)1831 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1844 1832 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESTRAINTADD,True) 1845 1833 G2frame.dataFrame.RestraintEdit.Enable(G2gd.wxID_RESRCHANGEVAL,True) 1846 1834 textureRestData = restrData['Texture'] 1847 1835 UpdateTextureRestr(textureRestData) 1848 1849 1836 event.Skip() 1850 1837 1851 def RaisePage(event): 1852 'Respond to a "select tab" menu button' 1853 # class PseudoEvent(object): 1854 # def __init__(self,page): self.page = page 1855 # def Skip(self): pass 1856 # def GetSelection(self): return self.page 1857 try: 1858 i = tabIndex.get(event.GetId()) 1859 G2frame.dataDisplay.SetSelection(i) 1860 #OnPageChanged(PseudoEvent(i)) 1861 except ValueError: 1862 print('Unexpected event in RaisePage') 1863 1864 if G2frame.dataDisplay: 1865 G2frame.dataDisplay.Destroy() 1866 1867 G2gd.SetDataMenuBar(G2frame,G2frame.dataFrame.RestraintMenu) 1868 G2frame.dataFrame.SetLabel('restraints for '+phaseName) 1838 # def RaisePage(event): 1839 # 'Respond to a "select tab" menu button' 1840 # # class PseudoEvent(object): 1841 # # def __init__(self,page): self.page = page 1842 # # def Skip(self): pass 1843 # # def GetSelection(self): return self.page 1844 # try: 1845 # i = tabIndex.get(event.GetId()) 1846 # G2frame.restrBook.SetSelection(i) 1847 # #OnPageChanged(PseudoEvent(i)) 1848 # except ValueError: 1849 # print('Unexpected event in RaisePage') 1850 # 1851 G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.RestraintMenu) 1852 G2frame.SetLabel(G2frame.GetLabel().split('||')[0]+' || '+'restraints for '+phaseName) 1853 G2frame.dataWindow.ClearData() 1869 1854 1870 G2frame.data Frame.RestraintEdit.Enable(G2gd.wxID_RESTSELPHASE,False)1855 G2frame.dataWindow.RestraintEdit.Enable(G2gd.wxID_RESTSELPHASE,False) 1871 1856 if len(Phases) > 1: 1872 G2frame.data Frame.RestraintEdit.Enable(G2gd.wxID_RESTSELPHASE,True)1873 G2frame.data Frame.Bind(wx.EVT_MENU, OnSelectPhase, id=G2gd.wxID_RESTSELPHASE)1857 G2frame.dataWindow.RestraintEdit.Enable(G2gd.wxID_RESTSELPHASE,True) 1858 G2frame.dataWindow.Bind(wx.EVT_MENU, OnSelectPhase, id=G2gd.wxID_RESTSELPHASE) 1874 1859 G2frame.dataFrame.Bind(wx.EVT_MENU, OnAddRestraint, id=G2gd.wxID_RESTRAINTADD) 1875 1860 if 'macro' in phasedata['General']['Type']: 1876 G2frame.data Frame.RestraintEdit.Enable(G2gd.wxID_AARESTRAINTADD,True)1877 G2frame.data Frame.Bind(wx.EVT_MENU, OnAddAARestraint, id=G2gd.wxID_AARESTRAINTADD)1878 G2frame.data Frame.Bind(wx.EVT_MENU, OnPlotAARestraint, id=G2gd.wxID_AARESTRAINTPLOT)1879 G2frame. dataDisplay = G2G.GSNoteBook(parent=G2frame.dataFrame,size=G2frame.dataFrame.GetClientSize())1861 G2frame.dataWindow.RestraintEdit.Enable(G2gd.wxID_AARESTRAINTADD,True) 1862 G2frame.dataWindow.Bind(wx.EVT_MENU, OnAddAARestraint, id=G2gd.wxID_AARESTRAINTADD) 1863 G2frame.dataWindow.Bind(wx.EVT_MENU, OnPlotAARestraint, id=G2gd.wxID_AARESTRAINTPLOT) 1864 G2frame.restrBook = G2G.GSNoteBook(parent=G2frame.dataWindow,size=G2frame.dataWindow.GetClientSize()) 1880 1865 1881 1866 # clear menu and menu pointers 1882 tabIndex.clear()1883 tabcount = -11884 for i in G2frame.dataFrame.RestraintTab.GetMenuItems():1885 G2frame.dataFrame.RestraintTab.DestroyItem(i)1886 1867 1887 1868 txt = 'Bond' 1888 BondRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1889 G2frame.dataDisplay.AddPage(BondRestr,txt) 1890 item = G2frame.dataFrame.RestraintTab.Append( 1891 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1892 help='Select restraint editing tab') 1893 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1894 tabcount += 1 1895 tabIndex[item.GetId()] = tabcount 1869 BondRestr = wx.ScrolledWindow(G2frame.restrBook) 1870 G2frame.restrBook.AddPage(BondRestr,txt) 1896 1871 1897 1872 txt = 'Angle' 1898 AngleRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1899 G2frame.dataDisplay.AddPage(AngleRestr,txt) 1900 item = G2frame.dataFrame.RestraintTab.Append( 1901 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1902 help='Select restraint editing tab') 1903 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1904 tabcount += 1 1905 tabIndex[item.GetId()] = tabcount 1873 AngleRestr = wx.ScrolledWindow(G2frame.restrBook) 1874 G2frame.restrBook.AddPage(AngleRestr,txt) 1906 1875 1907 1876 txt = 'Plane' 1908 PlaneRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1909 G2frame.dataDisplay.AddPage(PlaneRestr,txt) 1910 item = G2frame.dataFrame.RestraintTab.Append( 1911 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1912 help='Select restraint editing tab') 1913 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1914 tabcount += 1 1915 tabIndex[item.GetId()] = tabcount 1877 PlaneRestr = wx.ScrolledWindow(G2frame.restrBook) 1878 G2frame.restrBook.AddPage(PlaneRestr,txt) 1916 1879 1917 1880 txt = 'Chiral' 1918 ChiralRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1919 G2frame.dataDisplay.AddPage(ChiralRestr,txt) 1920 item = G2frame.dataFrame.RestraintTab.Append( 1921 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1922 help='Select restraint editing tab') 1923 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1924 tabcount += 1 1925 tabIndex[item.GetId()] = tabcount 1881 ChiralRestr = wx.ScrolledWindow(G2frame.restrBook) 1882 G2frame.restrBook.AddPage(ChiralRestr,txt) 1926 1883 1927 1884 if 'macro' in General['Type']: 1928 1885 txt = 'Torsion' 1929 TorsionRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1930 G2frame.dataDisplay.AddPage(TorsionRestr,txt) 1931 item = G2frame.dataFrame.RestraintTab.Append( 1932 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1933 help='Select restraint editing tab') 1934 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1935 tabcount += 1 1936 tabIndex[item.GetId()] = tabcount 1886 TorsionRestr = wx.ScrolledWindow(G2frame.restrBook) 1887 G2frame.restrBook.AddPage(TorsionRestr,txt) 1937 1888 1938 1889 txt = 'Ramachandran' 1939 RamaRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1940 G2frame.dataDisplay.AddPage(RamaRestr,txt) 1941 item = G2frame.dataFrame.RestraintTab.Append( 1942 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1943 help='Select restraint editing tab') 1944 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1945 tabcount += 1 1946 tabIndex[item.GetId()] = tabcount 1890 RamaRestr = wx.ScrolledWindow(G2frame.restrBook) 1891 G2frame.restrBook.AddPage(RamaRestr,txt) 1947 1892 1948 1893 txt = 'Chem. comp.' 1949 ChemCompRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1950 G2frame.dataDisplay.AddPage(ChemCompRestr,txt) 1951 item = G2frame.dataFrame.RestraintTab.Append( 1952 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1953 help='Select restraint editing tab') 1954 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1955 tabcount += 1 1956 tabIndex[item.GetId()] = tabcount 1894 ChemCompRestr = wx.ScrolledWindow(G2frame.restrBook) 1895 G2frame.restrBook.AddPage(ChemCompRestr,txt) 1957 1896 1958 1897 if General['SH Texture']['Order']: 1959 1898 txt = 'Texture' 1960 TextureRestr = wx.ScrolledWindow(G2frame.dataDisplay) 1961 G2frame.dataDisplay.AddPage(TextureRestr,txt) 1962 item = G2frame.dataFrame.RestraintTab.Append( 1963 id=wx.ID_ANY, kind=wx.ITEM_NORMAL,text=txt, 1964 help='Select restraint editing tab') 1965 G2frame.dataFrame.Bind(wx.EVT_MENU, RaisePage,id=item.GetId()) 1966 tabcount += 1 1967 tabIndex[item.GetId()] = tabcount 1899 TextureRestr = wx.ScrolledWindow(G2frame.restrBook) 1900 G2frame.restrBook.AddPage(TextureRestr,txt) 1968 1901 1969 1902 UpdateBondRestr(restrData['Bond']) 1970 1903 1971 G2frame. dataDisplay.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged)1904 G2frame.restrBook.Bind(wx.aui.EVT_AUINOTEBOOK_PAGE_CHANGED, OnPageChanged) -
TabularUnified branch/2frame/gltext.py ¶
r2591 r2888 278 278 Destructor 279 279 """ 280 self.deleteTexture() 280 # self.deleteTexture() 281 del self._texture 281 282 282 283 #---Getters/Setters
Note: See TracChangeset
for help on using the changeset viewer.