Changeset 22


Ignore:
Timestamp:
Feb 1, 2010 3:02:37 PM (12 years ago)
Author:
vondreel
Message:

more single crystal plot stuff

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r21 r22  
    256256        self.PDevent = []
    257257        self.IMevent = []
     258        self.SCevent = []
     259        self.Sngl = 0
    258260
    259261    def OnSize(self,event):
     
    350352                    finally:
    351353                        wx.EndBusyCursor()
     354                self.PatternTree.Expand(Id)
     355                self.PatternTree.SelectItem(Id)
    352356                self.NewPlot = True
    353357                self.PlotPatterns()
     
    355359        finally:
    356360            dlg.Destroy()
    357         self.PatternTree.Expand(self.root)
    358361       
    359362    def OnReadPowderPeaks(self,event):
     
    381384                self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[])             
    382385                self.NewPlot = True
     386                self.PatternTree.Expand(Id)
    383387        finally:
    384388            dlg.Destroy()
     
    414418                        Data = copy.copy(self.imageDefault)
    415419                        Data['refine'] = [False,False,False,False,False]
     420                        Data['showLines'] = True
    416421                    else:
    417422                        Data['color'] = 'binary'
     
    434439                    self.Image = Id
    435440                    self.PlotImage()
     441                    self.PatternTree.SelectItem(Id)
     442                    self.PatternTree.Expand(Id)
    436443        finally:
    437             dlg.Destroy()       
     444            dlg.Destroy()
    438445       
    439446    def OnSnglReadMenu(self,event):
     
    451458                wx.BeginBusyCursor()
    452459                try:
     460                    Data = {}
    453461                    names = ['Type','Lam']
    454                     HKLref = G2IO.GetHKLData(filename)
    455                     Id = self.PatternTree.AppendItem(parentId=self.root,text='SXTL '+ospath.basename(filename))
    456                     self.PatternTree.SetItemPyData(Id,[filename,HKLref])
     462                    HKLref,HKLmin,HKLmax,FoMax,ifFc = G2IO.GetHKLData(filename)
     463                    Id = self.PatternTree.AppendItem(parent=self.root,text='SXTL '+ospath.basename(filename))
     464                    self.PatternTree.SetItemPyData(Id,HKLref)
    457465                    Sub = self.PatternTree.AppendItem(Id,text='Instrument Parameters')
    458466                    data = ['SXC',1.5428,]
    459467                    self.PatternTree.SetItemPyData(Sub,[tuple(data),data,names])
     468                    Data['Type'] = 'Fosq'
     469                    Data['ifFc'] = ifFc
     470                    Data['HKLmax'] = HKLmax
     471                    Data['HKLmin'] = HKLmin
     472                    Data['FoMax'] = FoMax
     473                    Data['Zone'] = '001'
     474                    Data['Layer'] = 0
     475                    Data['Scale'] = 1.0
     476                    Data['log-lin'] = 'lin'                   
     477                    self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='HKL Plot Controls'),Data)
     478                    self.PatternTree.SelectItem(Id)
     479                    self.PatternTree.Expand(Id)
     480                    self.Sngl = Id
    460481                finally:
    461482                    wx.EndBusyCursor()   
    462483        finally:
    463484            dlg.Destroy()
    464         self.PatternTree.Expand(self.root)
    465485       
    466486    class SumDialog(wx.Dialog):
     
    619639                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Index Peak List'),[])
    620640                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Unit Cells List'),[])             
     641                        self.PatternTree.SelectItem(Id)
    621642                   
    622643                    self.PlotPatterns()
     
    684705                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Comments'),Comments)
    685706                        self.PatternTree.SetItemPyData(self.PatternTree.AppendItem(Id,text='Image Controls'),Data)                                           
     707                        self.PatternTree.SelectItem(Id)
    686708                    self.PickId = Id
    687709                    self.Image = Id
     
    11481170        self.RefineCell.Enable(True)
    11491171        self.IndexPeaks.Enable(True)
     1172       
     1173    def ClearEventList(self,eventList):
     1174        if eventList:
     1175            for i in range(len(eventList)):
     1176                self.pdplot.canvas.mpl_disconnect(eventList[i])
     1177        return []
    11501178
    11511179    def PlotPeakWidths(self):
     
    11721200        try:
    11731201            self.pdplot.clear()
     1202            self.IMevent = self.ClearEventList(self.IMevent)
     1203            self.PDevent = self.ClearEventList(self.PDevent)
     1204            self.SCevent = self.ClearEventList(self.SCevent)
    11741205            self.pdplot.canvas.set_window_title('Peak Widths')
    11751206        except:
     
    12391270
    12401271        def OnImMotion(event):
     1272            self.pdplot.canvas.SetToolTipString('')
    12411273            if event.xdata:
    12421274                item = self.itemPicked
    12431275                if item and self.PatternTree.GetItemText(self.PickId) == 'Image Controls':
    1244                     xpos = event.xdata
    1245                     if xpos:                                        #avoid out of frame mouse position
    1246                         ypos = event.ydata
     1276                    if 'Text' in str(item) and Data['refine'][0]:
     1277                        self.pdplot.canvas.SetToolTipString('%8.3f %8.3fmm'%(event.xdata/scalex,event.ydata/scaley))
     1278                    else:
    12471279                        xcent,ycent = Data['center']
    1248                         xpos -= xcent*scalex
    1249                         ypos -= ycent*scaley
    1250                         if 'Text' in str(item) and Data['refine'][0]:
    1251                             self.pdplot.canvas.SetToolTipString('%8.3f %8.3fmm'%(event.xdata/scalex,event.ydata/scaley))
    1252                         else:
    1253                             if 'line2' in  str(item) or 'line3' in str(item) and not Data['fullIntegrate']:
    1254                                 ang = int(atan2d(-ypos,xpos))
    1255                                 self.pdplot.canvas.SetToolTipString('%6d deg'%(ang))
    1256                             else:
    1257                                 radius = math.sqrt(xpos**2+ypos**2)
    1258                                 self.pdplot.canvas.SetToolTipString('%8.3fmm'%(radius/scalex))                           
     1280                        xpos = event.xdata-xcent*scalex
     1281                        ypos = event.ydata-ycent*scaley
     1282                        if 'line2' in  str(item) or 'line3' in str(item) and not Data['fullIntegrate']:
     1283                            ang = int(atan2d(-ypos,xpos))
     1284                            self.pdplot.canvas.SetToolTipString('%6d deg'%(ang))
     1285                        elif 'line0' in  str(item) or 'line1' in str(item):
     1286                            radius = math.sqrt(xpos**2+ypos**2)
     1287                            self.pdplot.canvas.SetToolTipString('%8.3fmm'%(radius/scalex))                           
    12591288                else:
    1260                     size = len(self.ImageZ)
    1261                     xpos = int(event.xdata)*self.imScale
    1262                     ypos = int(event.ydata)*self.imScale
    1263                     if (0 < xpos < size) and (0 < ypos < size):     #avoid out of image position
    1264                         z = self.ImageZ[ypos][xpos]
    1265                         self.pdplot.canvas.SetToolTipString('%6d'%(z))
     1289                    self.pdplot.canvas.SetToolTipString('%6d'%(self.ImageZ[int(event.ydata)*self.imScale] \
     1290                        [int(event.xdata)*self.imScale]))
    12661291
    12671292        def OnImPlotKeyPress(event):
     
    13391364            self.itemPicked = None
    13401365           
    1341 
    13421366        newPlot = False
    13431367        self.NewPlot = True
     
    13471371            self.pdplot.canvas.toolbar.set_history_buttons()
    13481372            self.pdplot.canvas.set_window_title('2D Powder Image')
    1349             if self.PDevent:
    1350                 for i in range(len(self.PDevent)):
    1351                     self.pdplot.canvas.mpl_disconnect(self.PDevent[i])
    1352                 self.PDevent = []
     1373            self.PDevent = self.ClearEventList(self.PDevent)
     1374            self.SCevent = self.ClearEventList(self.SCevent)
    13531375        except:
    13541376            self.pdplot = pylab.figure(facecolor='white')
     
    14201442            pylab.show()
    14211443        else:                       #1st plot
    1422             pylab.draw()
    1423        
     1444            pylab.draw()       
    14241445               
    14251446    def PlotPatterns(self):
     
    15251546            self.pdplot.canvas.toolbar.set_history_buttons()
    15261547            self.pdplot.canvas.set_window_title('Powder Patterns')
    1527             if self.IMevent:
    1528                 for i in range(len(self.IMevent)):
    1529                     self.pdplot.canvas.mpl_disconnect(self.IMevent[i])
    1530                 self.IMevent = []
     1548            self.IMevent = self.ClearEventList(self.IMevent)
     1549            self.SCevent = self.ClearEventList(self.SCevent)
    15311550        except:
    15321551            self.pdplot = pylab.figure(facecolor='white')
     
    16461665            pylab.draw()
    16471666       
     1667    def PlotSngl(self):
     1668        from matplotlib.patches import Circle
     1669
     1670        def OnSCMotion(event):
     1671            xpos = event.xdata
     1672            if xpos:
     1673                xpos = round(xpos)                                        #avoid out of frame mouse position
     1674                ypos = round(event.ydata)
     1675                zpos = Data['Layer']
     1676                if '100' in Data['Zone']:
     1677                    self.pdplot.canvas.SetToolTipString('(%3d,%3d,%3d)'%(zpos,xpos,ypos))
     1678                elif '010' in Data['Zone']:
     1679                    self.pdplot.canvas.SetToolTipString('(%3d,%3d,%3d)'%(xpos,zpos,ypos))
     1680                elif '001' in Data['Zone']:
     1681                    self.pdplot.canvas.SetToolTipString('(%3d,%3d,%3d)'%(xpos,ypos,zpos))
     1682                   
     1683        def OnSCPick(event):
     1684#            print str(event.artist).split('(')
     1685            pass
     1686                   
     1687        try:
     1688            if self.NewPlot:
     1689                self.pdplot.clear()
     1690            self.pdplot.canvas.toolbar.set_history_buttons()
     1691            self.pdplot.canvas.set_window_title('Structure Factors')
     1692            self.IMevent = self.ClearEventList(self.IMevent)
     1693            self.PDevent = self.ClearEventList(self.PDevent)
     1694        except:
     1695            self.pdplot = pylab.figure(facecolor='white')
     1696            self.pdplot.clear()
     1697            self.pdplot.canvas.set_window_title('Structure Factors')
     1698            self.NewPlot = True
     1699        if not self.SCevent:
     1700            self.SCevent.append(self.pdplot.canvas.mpl_connect('pick_event', OnSCPick))
     1701            self.SCevent.append(self.pdplot.canvas.mpl_connect('motion_notify_event', OnSCMotion))
     1702        PickId = self.PickId
     1703        ax = self.pdplot.add_subplot(111)
     1704        ax.set_aspect(aspect='equal')
     1705        HKLref = self.PatternTree.GetItemPyData(self.Sngl)
     1706        Data = self.PatternTree.GetItemPyData( \
     1707            G2gd.GetPatternTreeItemId(self,self.Sngl, 'HKL Plot Controls'))
     1708
     1709        Type = Data['Type']           
     1710        scale = Data['Scale']
     1711        HKLmax = Data['HKLmax']
     1712        HKLmin = Data['HKLmin']
     1713        FosqMax = Data['FoMax']
     1714        FoMax = math.sqrt(FosqMax)
     1715        ifFc = Data['ifFc']
     1716        xlabel = ['k, h=','h, k=','h, l=']
     1717        ylabel = ['l','l','k']
     1718        zones = ['100','010','001']
     1719        pzone = [[1,2],[0,2],[0,1]]
     1720        izone = zones.index(Data['Zone'])
     1721        for h,k,l,Fosq,sig,Fcsq,x,x,x in HKLref:
     1722            H = [h,k,l]
     1723            if H[izone] == Data['Layer']:
     1724                B = 0
     1725                if Type == 'Fosq':
     1726                    A = scale*Fosq/FosqMax
     1727                    B = scale*Fcsq/FosqMax
     1728                    C = abs(A-B)
     1729                elif Type == 'Fo':
     1730                    A = scale*math.sqrt(max(0,Fosq))/FoMax
     1731                    B = scale*math.sqrt(max(0,Fcsq))/FoMax
     1732                    C = abs(A-B)
     1733                elif Type == '|DFsq|/sig':
     1734                    A = abs(Fosq-Fcsq)/(scale*sig)
     1735                elif Type == '|DFsq|>sig':
     1736                    A = abs(Fosq-Fcsq)/(scale*sig)
     1737                    if A < 1.0: A = 0                   
     1738                elif Type == '|DFsq|>3sig':
     1739                    A = abs(Fosq-Fcsq)/(scale*sig)
     1740                    if A < 3.0: A = 0                   
     1741                xy = (H[pzone[izone][0]],H[pzone[izone][1]])
     1742                ax.add_artist(Circle(xy,radius=A,ec='g',fc='w'))
     1743                if B:
     1744                    ax.add_artist(Circle(xy,radius=B,ec='b',fc='w',picker=3))
     1745                    radius = C
     1746                    if radius > 0:
     1747                        if A > B:
     1748                            ax.add_artist(Circle(xy,radius=radius,ec='r',fc='r'))
     1749                        else:                   
     1750                            ax.add_artist(Circle(xy,radius=radius,ec='g',fc='g'))
     1751                   
     1752        ax.set_xlabel(xlabel[izone]+str(Data['Layer']),fontsize=12)
     1753        ax.set_ylabel(ylabel[izone],fontsize=12)
     1754        ax.set_xlim((HKLmin[pzone[izone][0]],HKLmax[pzone[izone][0]]))
     1755        ax.set_ylim((HKLmin[pzone[izone][1]],HKLmax[pzone[izone][1]]))
     1756
     1757        if self.NewPlot:
     1758            pylab.show()
     1759            self.NewPlot = False
     1760        else:                       #1st plot
     1761            pylab.draw()
    16481762       
    16491763    def ErrorDialog(self,title,message):
  • trunk/GSASIIIO.py

    r12 r22  
    162162    File = open(filename,'Ur')
    163163    HKLref = []
     164    HKLmin = [1000,1000,1000]
     165    HKLmax = [0,0,0]
     166    FoMax = 0
     167    ifFc = False
    164168    S = File.readline()
    165     while S:
    166         h,k,l,Fo,sigFo = S.split()
    167         HKLref.append([h,k,l,Fo,sigFo,0,0,0,0])                 #room for Fc, Fcp, Fcpp & phase
    168         S = File.readline()
     169    while '#' in S[0]:        #get past comments if any
     170        S = File.readline()       
     171    if '_' in S:         #cif style .hkl file
     172        while 'loop_' not in S:         #skip preliminaries if any - can't have 'loop_' in them!
     173            S = File.readline()       
     174        S = File.readline()             #get past 'loop_' line
     175        pos = 0
     176        hpos = kpos = lpos = Fosqpos = Fcsqpos = sigpos = -1
     177        while S:
     178            if '_' in S:
     179                if 'index_h' in S:
     180                    hpos = pos
     181                elif 'index_k' in S:
     182                    kpos = pos
     183                elif 'index_l' in S:
     184                    lpos = pos
     185                elif 'F_squared_meas' in S:
     186                    Fosqpos = pos
     187                elif 'F_squared_calc' in S:
     188                    Fcsqpos = pos
     189                elif 'F_squared_sigma' in S:
     190                    sigpos = pos
     191                pos += 1
     192            else:
     193                data = S.split()
     194                if data:                    #avoid blank lines
     195                    h = int(data[hpos])
     196                    k = int(data[kpos])
     197                    l = int(data[lpos])
     198                    Fosq = float(data[Fosqpos])
     199                    if sigpos != -1:
     200                        sigFosq = float(data[sigpos])
     201                    else:
     202                        sigFosq = 1.
     203                    if Fcsqpos != -1:
     204                        Fcsq = float(data[Fcsqpos])
     205                        if Fcsq:
     206                            ifFc = True
     207                    else:
     208                        Fcsq = 0.
     209                       
     210                    HKLmin = [min(h,HKLmin[0]),min(k,HKLmin[1]),min(l,HKLmin[2])]
     211                    HKLmax = [max(h,HKLmax[0]),max(k,HKLmax[1]),max(l,HKLmax[2])]
     212                    FoMax = max(FoMax,Fosq)
     213                    HKLref.append([h,k,l,Fosq,sigFosq,Fcsq,0,0,0])                 #room for Fc, Fcp, Fcpp & phase
     214            S = File.readline()
     215    else:                   #dumb h,k,l,Fo,sigFo .hkl file
     216        while S:
     217            h,k,l,Fo,sigFo = S.split()
     218            h = int(h)
     219            k = int(k)
     220            l = int(l)
     221            Fo = float(Fo)
     222            sigFo = float(sigFo)
     223            HKLmin = [min(h,HKLmin[0]),min(k,HKLmin[1]),min(l,HKLmin[2])]
     224            HKLmax = [max(h,HKLmax[0]),max(k,HKLmax[1]),max(l,HKLmax[2])]
     225            FoMax = max(FoMax,Fo)
     226            HKLref.append([h,k,l,Fo**2,2.*Fo*sigFo,0,0,0,0])                 #room for Fc, Fcp, Fcpp & phase
     227            S = File.readline()
    169228    File.close()
    170     return HKLref
     229    return HKLref,HKLmin,HKLmax,FoMax,ifFc
    171230
    172231def GetPowderData(filename,Pos,Bank,DataType):
  • trunk/GSASIIgrid.py

    r21 r22  
    7373        self.selectedRow = 0
    7474       
    75     def setSizePosLeft(self,xWidth,yWidth):
     75    def setSizePosLeft(self,Width):
    7676        screenSize = wx.DisplaySize()
    77         self.SetSize(wx.Size(xWidth,yWidth))
    78         self.SetPosition(wx.Point(screenSize[0]-xWidth,250))
     77        self.SetSize(Width)
     78        self.SetPosition(wx.Point(screenSize[0]-Width[0],250))
    7979       
    8080    def Clear(self):
     
    325325        self.PlotPatterns()
    326326           
    327     self.dataFrame.setSizePosLeft(650,350)
    328327    self.PickTable = []
    329328    rowLabels = []
     
    352351    self.dataDisplay.SetMargins(0,0)
    353352    self.dataDisplay.AutoSizeColumns(False)
     353    self.dataFrame.setSizePosLeft([650,350])
    354354       
    355355def UpdateBackgroundGrid(self,data):
     
    379379        self.PatternTree.SetItemPyData(BackId,data)
    380380                 
    381     self.dataFrame.setSizePosLeft(700,150)
     381    self.dataFrame.setSizePosLeft([700,150])
    382382    maxTerm = 7
    383383    self.BackTable = []
     
    403403    if self.dataDisplay:
    404404        self.dataDisplay.Destroy()
    405     self.dataFrame.setSizePosLeft(250,150)
     405    self.dataFrame.setSizePosLeft([250,150])
    406406    LimitId = GetPatternTreeItemId(self,self.PatternId, 'Limits')
    407407    def RefreshLimitsGrid(event):
     
    434434        Ka2 = True
    435435        Xwid = 800       
    436     self.dataFrame.setSizePosLeft(Xwid,150)
     436    self.dataFrame.setSizePosLeft([Xwid,150])
    437437    InstId = GetPatternTreeItemId(self,self.PatternId, 'Instrument Parameters')
    438438    def RefreshInstrumentGrid(event):
     
    536536    if self.dataDisplay:
    537537        self.dataDisplay.Destroy()
    538     self.dataFrame.setSizePosLeft(500,300)
     538    self.dataFrame.setSizePosLeft([500,300])
    539539    inst = self.PatternTree.GetItemPyData(GetPatternTreeItemId(self,self.PatternId, 'Instrument Parameters'))[1]
    540540    self.IndexPeaksTable = []
     
    682682    controls,bravais,cells,dmin = data
    683683    if cells:
    684         self.dataFrame.setSizePosLeft(900,320)
     684        self.dataFrame.setSizePosLeft([900,320])
    685685    else:
    686         self.dataFrame.setSizePosLeft(280,320)
     686        self.dataFrame.setSizePosLeft([280,320])
    687687    if len(controls) < 13:
    688688        controls.append(G2cmp.calc_V(G2cmp.cell2A(controls[6:12])))
     
    779779        self.RefineCell.Enable(False)
    780780       
     781def UpdateHKLControls(self,data):
     782   
     783    def OnScaleSlider(event):
     784        scale = int(scaleSel.GetValue())/1000.
     785        scaleSel.SetValue(int(scale*1000.))
     786        data['Scale'] = scale*10.
     787        self.NewPlot = True
     788        self.PlotSngl()
     789       
     790    def OnLayerSlider(event):
     791        layer = layerSel.GetValue()
     792        data['Layer'] = layer
     793        self.NewPlot = True
     794        self.PlotSngl()
     795       
     796    def OnSelZone(event):
     797        data['Zone'] = zoneSel.GetValue()
     798        self.NewPlot = True
     799        self.PlotSngl()
     800       
     801    def OnSelType(event):
     802        data['Type'] = typeSel.GetValue()
     803        self.NewPlot = True
     804        self.PlotSngl()
     805       
     806    def SetStatusLine():
     807        Status.SetStatusText("look at me!!!")
     808                                     
     809    if self.dataDisplay:
     810        self.dataDisplay.Destroy()
     811    Status = self.dataFrame.CreateStatusBar()
     812    SetStatusLine()
     813    zones = ['100','010','001']
     814    HKLmax = data['HKLmax']
     815    HKLmin = data['HKLmin']
     816    if data['ifFc']:
     817        typeChoices = ['Fosq','Fo','|DFsq|/sig','|DFsq|>sig','|DFsq|>3sig']
     818    else:
     819        typeChoices = ['Fosq','Fo']
     820    self.dataDisplay = wx.Panel(self.dataFrame)
     821    mainSizer = wx.BoxSizer(wx.VERTICAL)
     822    mainSizer.Add((5,10),0)
     823   
     824    scaleSizer = wx.BoxSizer(wx.HORIZONTAL)
     825    scaleSizer.Add(wx.StaticText(parent=self.dataDisplay,label=' Scale'),0,
     826        wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
     827    scaleSel = wx.Slider(parent=self.dataDisplay,maxValue=1000,minValue=100,
     828        style=wx.SL_HORIZONTAL,value=int(data['Scale']*100))
     829    scaleSizer.Add(scaleSel,1,wx.EXPAND|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL)
     830    scaleSel.Bind(wx.EVT_SLIDER, OnScaleSlider)
     831    mainSizer.Add(scaleSizer,1,wx.EXPAND|wx.RIGHT)
     832   
     833    zoneSizer = wx.BoxSizer(wx.HORIZONTAL)
     834    zoneSizer.Add(wx.StaticText(parent=self.dataDisplay,label=' Zone  '),0,
     835        wx.ALIGN_CENTER_VERTICAL)
     836    zoneSel = wx.ComboBox(parent=self.dataDisplay,value=data['Zone'],choices=['100','010','001'],
     837        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     838    zoneSel.Bind(wx.EVT_COMBOBOX, OnSelZone)
     839    zoneSizer.Add(zoneSel,0,wx.ALIGN_CENTER_VERTICAL)
     840    zoneSizer.Add(wx.StaticText(parent=self.dataDisplay,label=' Plot type  '),0,
     841        wx.ALIGN_CENTER_VERTICAL)       
     842    typeSel = wx.ComboBox(parent=self.dataDisplay,value=data['Type'],choices=typeChoices,
     843        style=wx.CB_READONLY|wx.CB_DROPDOWN)
     844    typeSel.Bind(wx.EVT_COMBOBOX, OnSelType)
     845    zoneSizer.Add(typeSel,0,wx.ALIGN_CENTER_VERTICAL)
     846    zoneSizer.Add((10,0),0)   
     847    mainSizer.Add(zoneSizer,1,wx.EXPAND|wx.RIGHT)
     848       
     849    izone = zones.index(data['Zone'])
     850    layerSizer = wx.BoxSizer(wx.HORIZONTAL)
     851    layerSizer.Add(wx.StaticText(parent=self.dataDisplay,label=' Layer'),0,
     852        wx.ALIGN_CENTER_VERTICAL|wx.EXPAND)
     853    layerSel = wx.Slider(parent=self.dataDisplay,maxValue=HKLmax[izone],minValue=HKLmin[izone],
     854        style=wx.SL_HORIZONTAL|wx.SL_AUTOTICKS|wx.SL_LABELS,value=0)
     855    layerSizer.Add(layerSel,1,wx.EXPAND|wx.RIGHT|wx.ALIGN_CENTER_VERTICAL)
     856    layerSel.Bind(wx.EVT_SLIDER, OnLayerSlider)   
     857    layerSizer.Add((10,0),0)   
     858    mainSizer.Add(layerSizer,1,wx.EXPAND|wx.RIGHT)
     859
     860       
     861    mainSizer.Layout()   
     862    self.dataDisplay.SetSizer(mainSizer)
     863    self.dataDisplay.SetSize(mainSizer.Fit(self.dataFrame))
     864    self.dataFrame.setSizePosLeft(mainSizer.Fit(self.dataFrame))
     865       
    781866def UpdateImageControls(self,data):
    782867   
     
    10091094    dataSizer.Add(setDefault,0)
    10101095    setDefault.Bind(wx.EVT_CHECKBOX, OnSetDefault)
    1011     showLines.SetValue(data['setDefault'])
     1096    setDefault.SetValue(data['setDefault'])
    10121097    dataSizer.Add((5,5),0)
    10131098       
     
    10171102    self.dataDisplay.SetSizer(mainSizer)
    10181103    self.dataDisplay.SetSize(mainSizer.Fit(self.dataFrame))
    1019     self.dataFrame.setSizePosLeft(550,310)
     1104    self.dataFrame.setSizePosLeft(mainSizer.Fit(self.dataFrame))
    10201105   
    10211106def UpdatePhaseData(self,item,data,oldPage):
     
    11231208        colType = 1
    11241209        colSS = 7
    1125         self.dataFrame.setSizePosLeft(600,350)
     1210        self.dataFrame.setSizePosLeft([600,350])
    11261211        if generalData[1] =='macromolecular':
    11271212            colType = 4
     
    14301515        elif 'PWDR' in self.PatternTree.GetItemText(item):
    14311516            self.PlotPatterns()
     1517        elif 'SXTL ' in self.PatternTree.GetItemText(item):
     1518            self.Sngl = item
     1519            self.PlotSngl()
    14321520           
    14331521    elif self.PatternTree.GetItemText(parentID) == 'Phases':
     
    14431531        self.dataFrame.SetTitle('Image Controls')
    14441532        self.PickId = item
     1533        self.Image = self.PatternTree.GetItemParent(item)
    14451534        data = self.PatternTree.GetItemPyData(item)
    14461535        UpdateImageControls(self,data)
    1447         self.PlotImage()       
     1536        self.PlotImage()
     1537    elif self.PatternTree.GetItemText(item) == 'HKL Plot Controls':
     1538        self.PickId = item
     1539        self.Sngl = self.PatternTree.GetItemParent(item)
     1540        data = self.PatternTree.GetItemPyData(item)
     1541        UpdateHKLControls(self,data)
     1542        self.PlotSngl()               
    14481543    elif self.PatternTree.GetItemText(item) == 'Peak List':
    14491544        self.PatternId = self.PatternTree.GetItemParent(item)
Note: See TracChangeset for help on using the changeset viewer.