Changeset 786


Ignore:
Timestamp:
Oct 18, 2012 10:22:27 AM (10 years ago)
Author:
vondreele
Message:

allow dragging of atoms from one part of atom list to another

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIgrid.py

    r778 r786  
    888888        #this is to satisfy structure drawing stuff in G2plt when focus changes
    889889        return None
    890                        
     890                                               
    891891################################################################################
    892892#####  Table
     
    10251025                self.data[row][col] = value
    10261026        innerSetValue(row, col, value)
    1027                
     1027
    10281028################################################################################
    10291029#####  Notebook
  • trunk/GSASIIphsGUI.py

    r781 r786  
    1010import wx
    1111import wx.grid as wg
     12import wx.lib.gridmovers as wgmove
    1213import matplotlib as mpl
    1314import math
     
    12371238                else:
    12381239                    Atoms.SelectCol(c,True)
    1239        
     1240                   
     1241        def OnRowMove(event):
     1242            frm = event.GetMoveRow()
     1243            to = event.GetBeforeRow()
     1244            print frm,to
     1245            item = atomData.pop(frm)
     1246            atomData.insert(to,item)
     1247            Paint()
     1248           
     1249        def Paint():
     1250       
     1251            table = []
     1252            rowLabels = []
     1253            for i,atom in enumerate(atomData):
     1254                table.append(atom)
     1255                rowLabels.append(str(i))
     1256            atomTable = G2gd.Table(table,rowLabels=rowLabels,colLabels=colLabels,types=Types)
     1257            Atoms.SetTable(atomTable, True)
     1258            colType = colLabels.index('Type')
     1259            colSS = colLabels.index('site sym')
     1260            colX = colLabels.index('x')
     1261            colIA = colLabels.index('I/A')
     1262            colU11 = colLabels.index('U11')
     1263            colUiso = colLabels.index('Uiso')
     1264            attr = wx.grid.GridCellAttr()
     1265            attr.SetEditor(GridFractionEditor(Atoms))
     1266            for c in range(colX,colX+3):
     1267                Atoms.SetColAttr(c, attr)
     1268            for i in range(colU11-1,colU11+6):
     1269                Atoms.SetColSize(i,50)           
     1270            for row in range(Atoms.GetNumberRows()):
     1271                Atoms.SetReadOnly(row,colType,True)
     1272                Atoms.SetReadOnly(row,colSS,True)                         #site sym
     1273                Atoms.SetReadOnly(row,colSS+1,True)                       #Mult
     1274                if Atoms.GetCellValue(row,colIA) == 'A':
     1275                    CSI = G2spc.GetCSuinel(atomData[row][colLabels.index('site sym')])
     1276                    Atoms.SetCellStyle(row,colUiso,VERY_LIGHT_GREY,True)
     1277                    Atoms.SetCellTextColour(row,colUiso,VERY_LIGHT_GREY)
     1278                    for i in range(6):
     1279                        ci = colU11+i
     1280                        Atoms.SetCellTextColour(row,ci,BLACK)
     1281                        Atoms.SetCellStyle(row,ci,VERY_LIGHT_GREY,True)
     1282                        if CSI[2][i]:
     1283                            Atoms.SetCellStyle(row,ci,WHITE,False)
     1284                else:
     1285                    Atoms.SetCellStyle(row,colUiso,WHITE,False)
     1286                    Atoms.SetCellTextColour(row,colUiso,BLACK)
     1287                    for i in range(6):
     1288                        ci = colU11+i
     1289                        Atoms.SetCellStyle(row,ci,VERY_LIGHT_GREY,True)
     1290                        Atoms.SetCellTextColour(row,ci,VERY_LIGHT_GREY)
     1291            Atoms.AutoSizeColumns(False)
     1292
    12401293        SGData = data['General']['SGData']
    12411294        G2frame.dataFrame.SetStatusText('')
    12421295        if SGData['SGPolax']:
    12431296            G2frame.dataFrame.SetStatusText('Warning: The location of the origin is arbitrary in '+SGData['SGPolax'])
    1244         table = []
    1245         rowLabels = []
    1246         for i,atom in enumerate(atomData):
    1247             table.append(atom)
    1248             rowLabels.append(str(i))
    1249         atomTable = G2gd.Table(table,rowLabels=rowLabels,colLabels=colLabels,types=Types)
    1250         Atoms.SetTable(atomTable, True)
    12511297        Atoms.Bind(wg.EVT_GRID_CELL_CHANGE, ChangeAtomCell)
    12521298        Atoms.Bind(wg.EVT_GRID_CELL_LEFT_DCLICK, AtomTypeSelect)
     
    12541300        Atoms.Bind(wg.EVT_GRID_LABEL_LEFT_CLICK, RowSelect)
    12551301        Atoms.Bind(wg.EVT_GRID_LABEL_RIGHT_CLICK, ChangeSelection)
     1302        wgmove.GridRowMover(Atoms)
     1303        Atoms.Bind(wgmove.EVT_GRID_ROW_MOVE,OnRowMove)
    12561304        Atoms.SetMargins(0,0)
    1257         Atoms.AutoSizeColumns(False)
    1258         colType = colLabels.index('Type')
    1259         colSS = colLabels.index('site sym')
    1260         colX = colLabels.index('x')
    1261         colIA = colLabels.index('I/A')
    1262         colU11 = colLabels.index('U11')
    1263         colUiso = colLabels.index('Uiso')
    1264         attr = wx.grid.GridCellAttr()
    1265         attr.SetEditor(GridFractionEditor(Atoms))
    1266         for c in range(colX,colX+3):
    1267             Atoms.SetColAttr(c, attr)
    1268         for i in range(colU11-1,colU11+6):
    1269             Atoms.SetColSize(i,50)           
    1270         for row in range(Atoms.GetNumberRows()):
    1271             Atoms.SetReadOnly(row,colType,True)
    1272             Atoms.SetReadOnly(row,colSS,True)                         #site sym
    1273             Atoms.SetReadOnly(row,colSS+1,True)                       #Mult
    1274             if Atoms.GetCellValue(row,colIA) == 'A':
    1275                 CSI = G2spc.GetCSuinel(atomData[row][colLabels.index('site sym')])
    1276                 Atoms.SetCellStyle(row,colUiso,VERY_LIGHT_GREY,True)
    1277                 Atoms.SetCellTextColour(row,colUiso,VERY_LIGHT_GREY)
    1278                 for i in range(6):
    1279                     ci = colU11+i
    1280                     Atoms.SetCellTextColour(row,ci,BLACK)
    1281                     Atoms.SetCellStyle(row,ci,VERY_LIGHT_GREY,True)
    1282                     if CSI[2][i]:
    1283                         Atoms.SetCellStyle(row,ci,WHITE,False)
    1284             else:
    1285                 Atoms.SetCellStyle(row,colUiso,WHITE,False)
    1286                 Atoms.SetCellTextColour(row,colUiso,BLACK)
    1287                 for i in range(6):
    1288                     ci = colU11+i
    1289                     Atoms.SetCellStyle(row,ci,VERY_LIGHT_GREY,True)
    1290                     Atoms.SetCellTextColour(row,ci,VERY_LIGHT_GREY)
     1305        Paint()
    12911306
    12921307    def OnAtomAdd(event):
Note: See TracChangeset for help on using the changeset viewer.