Changeset 2451 for trunk/GSASIIgrid.py


Ignore:
Timestamp:
Aug 25, 2016 3:10:53 PM (7 years ago)
Author:
vondreele
Message:

Add target atom type selection to sphere of enclosure

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r2450 r2451  
    330330    :param general: general data (includes drawing data)
    331331    :param atoms: drawing atoms data
     332    :param indx: list of selected atoms (may be empty)
    332333   
    333334    '''
     
    341342        self.Sphere = 1.0
    342343        self.centers = []
     344        self.atomTypes = [[item,True] for item in self.General['AtomTypes']]
    343345       
    344346        self.Draw()
     
    356358                pass
    357359            radius.SetValue('%.3f'%(self.Sphere))
     360           
     361        def OnAtomType(event):
     362            Obj = event.GetEventObject()
     363            id = Ind[Obj.GetId()]
     364            self.atomTypes[id][1] = Obj.GetValue()
    358365       
    359366        self.panel.Destroy()
     
    384391        sphereSizer.Add(radius,0,WACV)
    385392        mainSizer.Add(sphereSizer,0,WACV)
     393        mainSizer.Add(wx.StaticText(self.panel,label=' Target selected atoms:'),0,WACV)
     394        atSizer = wx.BoxSizer(wx.HORIZONTAL)
     395        Ind = {}
     396        for i,item in enumerate(self.atomTypes):
     397            atm = wx.CheckBox(self.panel,label=item[0])
     398            atm.SetValue(item[1])
     399            atm.Bind(wx.EVT_CHECKBOX, OnAtomType)
     400            Ind[atm.GetId()] = i
     401            atSizer.Add(atm,0,WACV)
     402        mainSizer.Add(atSizer,0,WACV)
    386403       
    387404        OkBtn = wx.Button(self.panel,-1,"Ok")
     
    402419       
    403420    def GetSelection(self):
    404         return self.centers,self.Sphere
     421        used = []
     422        for atm in self.atomTypes:
     423            if atm[1]:
     424                used.append(str(atm[0]))
     425        return self.centers,self.Sphere,used
    405426
    406427    def OnOk(self,event):
Note: See TracChangeset for help on using the changeset viewer.