Changeset 1549


Ignore:
Timestamp:
Oct 30, 2014 8:47:10 PM (7 years ago)
Author:
vondreele
Message:

finish GUI for incommensurate powder pattern indexing - no HKLM gen yet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwdGUI.py

    r1548 r1549  
    22122212        modS = G2spc.splitSSsym(ssopt['ssSymb'])[0]
    22132213        ssopt['ModVec'] = G2spc.SSGModCheck(Vec,modS)[0]
     2214        OnHklShow(event)
    22142215        wx.CallAfter(UpdateUnitCellsGrid,G2frame,data)
    22152216       
    22162217    def OnModVal(event):
    2217         pass
     2218        Obj = event.GetEventObject()
     2219        ObjId = Obj.GetId()
     2220        Id = Indx[ObjId]
     2221        try:
     2222            value = min(1.0,max(0.,float(Obj.GetValue())))
     2223        except ValueError:
     2224            value = ssopt['ModVec'][Id]
     2225        Obj.SetValue('%.3f'%(value))
     2226        ssopt['ModVec'][Id] = value
     2227        OnHklShow(event)
    22182228       
    22192229    def OnMoveMod(event):
    22202230        Obj = event.GetEventObject()
    2221         ObjId = cellList.index(Obj.GetId())
    2222         valObj = valDict[Obj.GetId()]
     2231        ObjId = Obj.GetId()
     2232        Id,valObj = Indx[ObjId]
    22232233        move = Obj.GetValue()*0.01
    22242234        Obj.SetValue(0)
    2225         value = float(valObj.GetValue())+move 
    2226 #        SetCellValue(valObj,ObjId,value)
    2227 #        OnHklShow(event)
     2235        value = min(1.0,max(.0,float(valObj.GetValue())+move))
     2236        valObj.SetValue('%.3f'%(value))
     2237        ssopt['ModVec'][Id] = value
     2238        OnHklShow(event)
     2239       
     2240    def OnMaxMH(event):
     2241        ssopt['maxH'] = int(maxMH.GetValue())
     2242        OnHklShow(event)
    22282243       
    22292244    def OnBravSel(event):
     
    23092324        spc = controls[13]
    23102325        SGData = G2spc.SpcGroup(spc)[1]
     2326        if ssopt['Use']:
     2327            print ssopt
     2328            SSGData = G2spc.SSpcGroup(SGData,ssopt['ssSymb'])
     2329            Vec = ssopt['ModVec']
    23112330        if 'C' in Inst['Type'][0]:
    23122331            dmin = G2lat.Pos2dsp(Inst,limits[1])
     
    26412660            littleSizer.Add(volVal,0,WACV)
    26422661    mainSizer.Add(littleSizer,0)
    2643 #ssopt = {'Use':False,'ModVec':[0,0,0.1],'maxH':1,'ssSymb':''})
    2644     if ssopt['Use']:
     2662    if ssopt['Use']:        #super lattice display
    26452663        indChoice = ['1','2','3','4',]
    26462664        SpSg = controls[13]
     
    26542672        selMG.Bind(wx.EVT_COMBOBOX, OnSelMG)
    26552673        ssSizer.Add(selMG,0,WACV)
     2674        ssSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Mod. vector: '),0,WACV)
    26562675        modS = G2spc.splitSSsym(ssopt['ssSymb'])[0]
    26572676        Vec = ssopt['ModVec']
    26582677        Vec,ifShow = G2spc.SSGModCheck(Vec,modS)
    2659         modList = []
    2660         modDict = {}
    2661         for val,show in zip(Vec,ifShow):
     2678        Indx = {}
     2679        for i,[val,show] in enumerate(zip(Vec,ifShow)):
    26622680            if show:
    26632681                valSizer = wx.BoxSizer(wx.HORIZONTAL)
    2664                 modVal = wx.TextCtrl(G2frame.dataDisplay,value=('%.3f'%(val)),style=wx.TE_PROCESS_ENTER)
     2682                modVal = wx.TextCtrl(G2frame.dataDisplay,value=('%.3f'%(val)),
     2683                    size=wx.Size(50,20),style=wx.TE_PROCESS_ENTER)
    26652684                modVal.Bind(wx.EVT_TEXT_ENTER,OnModVal)       
    26662685                modVal.Bind(wx.EVT_KILL_FOCUS,OnModVal)
     
    26722691                valSizer.Add(modSpin,0,WACV)
    26732692                ssSizer.Add(valSizer,0,WACV)
    2674                 modList.append(modVal.GetId())
    2675                 modList.append(modSpin.GetId())
    2676                 modDict[modSpin.GetId()] = modVal
     2693                Indx[modVal.GetId()] = i
     2694                Indx[modSpin.GetId()] = [i,modVal]
     2695            else:
     2696                modVal = wx.TextCtrl(G2frame.dataDisplay,value=('%.3f'%(val)),
     2697                    size=wx.Size(50,20),style=wx.TE_READONLY)
     2698                modVal.SetBackgroundColour(VERY_LIGHT_GREY)
     2699                ssSizer.Add(modVal,0,WACV)
     2700        ssSizer.Add(wx.StaticText(G2frame.dataDisplay,label=' Max. M: '),0,WACV)
     2701        maxMH = wx.ComboBox(G2frame.dataDisplay,value=str(ssopt['maxH']),
     2702            choices=indChoice,style=wx.CB_READONLY|wx.CB_DROPDOWN)
     2703        maxMH.Bind(wx.EVT_COMBOBOX, OnMaxMH)
     2704        ssSizer.Add(maxMH,0,WACV)
     2705        mainSizer.Add(ssSizer,0)
    26772706
    2678        
    2679        
    2680         mainSizer.Add(ssSizer,0)
    2681     #if super lattice add super lattice choice based on space group & modulation values
    2682     #based on super lattice choice - do refl gen following these choices as above
    2683     #then make new phase will make modulated one with these choices
    2684        
    26852707    mainSizer.Layout()   
    26862708    G2frame.dataDisplay.SetSizer(mainSizer)
Note: See TracChangeset for help on using the changeset viewer.