Changeset 1884 for trunk/GSASIIddataGUI.py
- Timestamp:
- Jun 9, 2015 4:02:06 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIddataGUI.py
r1878 r1884 18 18 ''' 19 19 import wx 20 import math21 import copy22 import time23 import sys24 20 import GSASIIpath 25 21 GSASIIpath.SetVersionNumber("$Revision$") … … 781 777 return flackSizer 782 778 779 def twinSizer(): 780 781 def OnAddTwin(event): 782 twinMat = np.array([[1,0,0],[0,1,0],[0,0,1]]) 783 twinVal = [1.0,False] 784 UseList[G2frame.hist]['Twins'].append([twinMat,twinVal]) 785 addtwin.SetValue(False) 786 wx.CallLater(100,RepaintHistogramInfo) 787 788 def OnMat(event): 789 Obj = event.GetEventObject() 790 it,im = Indx[Obj.GetId()] 791 newMat = Obj.GetValue().split() 792 try: 793 uvw = [int(newMat[i]) for i in range(3)] 794 except ValueError: 795 uvw = UseList[G2frame.hist]['Twins'][it][0][im] 796 UseList[G2frame.hist]['Twins'][it][0][im] = uvw 797 Obj.SetValue('%d %d %d'%(uvw[0],uvw[1],uvw[2])) 798 799 def OnTwinVal(event): 800 Obj = event.GetEventObject() 801 it = Indx[Obj.GetId()] 802 try: 803 val = float(Obj.GetValue()) 804 if 0. > val > 1.:\ 805 raise ValueError 806 except ValueError: 807 val = UseList[G2frame.hist]['Twins'][it][1][0] 808 UseList[G2frame.hist]['Twins'][it][1][0] = val 809 Obj.SetValue('%.3f'%(val)) 810 811 def OnTwinRef(event): 812 Obj = event.GetEventObject() 813 it = Indx[Obj.GetId()] 814 UseList[G2frame.hist]['Twins'][it][1][1] = Obj.GetValue() 815 816 def OnTwinDel(event): 817 Obj = event.GetEventObject() 818 it = Indx[Obj.GetId()] 819 del UseList[G2frame.hist]['Twins'][it] 820 wx.CallLater(100,RepaintHistogramInfo) 821 822 twinsizer = wx.BoxSizer(wx.VERTICAL) 823 topsizer = wx.BoxSizer(wx.HORIZONTAL) 824 topsizer.Add(wx.StaticText(DData,wx.ID_ANY,' Merohedral/pseudomerohedral twins: '),0,WACV) 825 addtwin = wx.CheckBox(DData,wx.ID_ANY,label=' Add Twin Law') 826 addtwin.Bind(wx.EVT_CHECKBOX, OnAddTwin) 827 topsizer.Add(addtwin,0,WACV) 828 twinsizer.Add(topsizer) 829 Indx = {} 830 for it,Twin in enumerate(UseList[G2frame.hist]['Twins']): 831 twinMat,twinVal = Twin 832 matSizer = wx.BoxSizer(wx.HORIZONTAL) 833 matSizer.Add(wx.StaticText(DData,-1,' Twin Law: '),0,WACV) 834 Style = wx.TE_READONLY 835 if it: 836 Style = wx.TE_PROCESS_ENTER 837 for im,Mat in enumerate(twinMat): 838 mat = wx.TextCtrl(DData,wx.ID_ANY,'%3d %3d %3d'%(Mat[0],Mat[1],Mat[2]), 839 style=Style) 840 if it: 841 Indx[mat.GetId()] = [it,im] 842 mat.Bind(wx.EVT_TEXT_ENTER,OnMat) 843 mat.Bind(wx.EVT_KILL_FOCUS,OnMat) 844 matSizer.Add(mat,0,WACV|wx.LEFT,5) 845 twinsizer.Add(matSizer,0,WACV|wx.LEFT,5) 846 valSizer = wx.BoxSizer(wx.HORIZONTAL) 847 valSizer.Add(wx.StaticText(DData,-1,label=' Twin element fraction:'),0,WACV) 848 twinval = wx.TextCtrl(DData,-1,'%.3f'%(Twin[1][0]),style=wx.TE_PROCESS_ENTER) 849 Indx[twinval.GetId()] = it 850 twinval.Bind(wx.EVT_TEXT_ENTER,OnTwinVal) 851 twinval.Bind(wx.EVT_KILL_FOCUS,OnTwinVal) 852 valSizer.Add(twinval,0,WACV) 853 if it: 854 twinref = wx.CheckBox(DData,wx.ID_ANY,label=' Refine?') 855 Indx[twinref.GetId()] = it 856 twinref.SetValue(Twin[1][1]) 857 twinref.Bind(wx.EVT_CHECKBOX, OnTwinRef) 858 valSizer.Add(twinref,0,WACV) 859 twindel = wx.CheckBox(DData,wx.ID_ANY,label=' Delete?') 860 Indx[twindel.GetId()] = it 861 twindel.Bind(wx.EVT_CHECKBOX, OnTwinDel) 862 valSizer.Add(twindel,0,WACV) 863 twinsizer.Add(valSizer,0,WACV|wx.LEFT,5) 864 return twinsizer 865 783 866 def OnSelect(event): 784 867 G2frame.hist = keyList[select.GetSelection()] … … 938 1021 if 'Flack' not in UseList[G2frame.hist]: 939 1022 UseList[G2frame.hist]['Flack'] = [0.0,False] 1023 if 'Twins' not in UseList[G2frame.hist]: 1024 UseList[G2frame.hist]['Twins'] = [[np.array([[1,0,0],[0,1,0],[0,0,1]]),[1.0,False]],] 940 1025 #end patch 941 1026 bottomSizer.Add(ExtSizer('HKLF'),0,WACV|wx.BOTTOM,5) … … 943 1028 if not SGData['SGInv']: #not operational yet - no test data 944 1029 bottomSizer.Add(FlackSizer(),0,WACV|wx.BOTTOM,5) 1030 bottomSizer.Add(twinSizer(),0,WACV|wx.BOTTOM,5) 945 1031 return bottomSizer 946 1032
Note: See TracChangeset
for help on using the changeset viewer.