]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/GridDragable.py
move wxPython to new trunk
[wxWidgets.git] / wxPython / demo / GridDragable.py
diff --git a/wxPython/demo/GridDragable.py b/wxPython/demo/GridDragable.py
deleted file mode 100644 (file)
index 8f375b8..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-
-import  wx
-import  wx.grid             as  gridlib
-import  wx.lib.gridmovers   as  gridmovers
-
-#---------------------------------------------------------------------------
-
-class CustomDataTable(gridlib.PyGridTableBase):
-    def __init__(self, log):
-        gridlib.PyGridTableBase.__init__(self)
-        self.log = log
-
-        self.identifiers = ['id','ds','sv','pr','pl','op','fx','ts']
-
-        self.rowLabels = ['Row1','Row2','Row3']
-
-        self.colLabels = {'id':'ID','ds':'Description','sv':'Severity',
-                          'pr':'Priority','pl':'Platform','op':'Opened?',
-                          'fx':'Fixed?','ts':'Tested?'}
-
-        self.data = [{'id':1010,
-                      'ds':"The foo doesn't bar",
-                      'sv':"major",
-                      'pr':1,
-                      'pl':'MSW',
-                      'op':1,
-                      'fx':1,
-                      'ts':1
-                      },
-                     {'id':1011,
-                      'ds':"I've got a wicket in my wocket",
-                      'sv':"wish list",
-                      'pr':2,
-                      'pl':'other',
-                      'op':0,
-                      'fx':0,
-                      'ts':0
-                      },
-                     {'id':1012,
-                      'ds':"Rectangle() returns a triangle",
-                      'sv':"critical",
-                      'pr':5,
-                      'pl':'all',
-                      'op':0,
-                      'fx':0,
-                      'ts':0
-                      }
-                     ]
-
-    #--------------------------------------------------
-    # required methods for the wxPyGridTableBase interface
-
-    def GetNumberRows(self):
-        return len(self.data)
-
-    def GetNumberCols(self):
-        return len(self.identifiers)
-
-    def IsEmptyCell(self, row, col):
-        id = self.identifiers[col]
-        return not self.data[row][id]
-
-    def GetValue(self, row, col):
-        id = self.identifiers[col]
-        return self.data[row][id]
-
-    def SetValue(self, row, col, value):
-        id = self.identifiers[col]
-        self.data[row][id] = value
-
-    #--------------------------------------------------
-    # Some optional methods
-
-    # Called when the grid needs to display column labels
-    def GetColLabelValue(self, col):
-        id = self.identifiers[col]
-        return self.colLabels[id]
-
-    # Called when the grid needs to display row labels
-    def GetRowLabelValue(self,row):
-        return self.rowLabels[row]
-
-    #--------------------------------------------------
-    # Methods added for demo purposes.
-
-    # The physical moving of the cols/rows is left to the implementer.
-    # Because of the dynamic nature of a wxGrid the physical moving of
-    # columns differs from implementation to implementation
-
-    # Move the column
-    def MoveColumn(self,frm,to):
-        grid = self.GetView()
-
-        if grid:
-            # Move the identifiers
-            old = self.identifiers[frm]
-            del self.identifiers[frm]
-
-            if to > frm:
-                self.identifiers.insert(to-1,old)
-            else:
-                self.identifiers.insert(to,old)
-
-            # Notify the grid
-            grid.BeginBatch()
-            msg = gridlib.GridTableMessage(
-                    self, gridlib.GRIDTABLE_NOTIFY_COLS_DELETED, frm, 1
-                    )
-                    
-            grid.ProcessTableMessage(msg)
-            
-            msg = gridlib.GridTableMessage(
-                    self, gridlib.GRIDTABLE_NOTIFY_COLS_INSERTED, to, 1
-                    )
-
-            grid.ProcessTableMessage(msg)
-            grid.EndBatch()
-
-    # Move the row
-    def MoveRow(self,frm,to):
-        grid = self.GetView()
-
-        if grid:
-            # Move the rowLabels and data rows
-            oldLabel = self.rowLabels[frm]
-            oldData = self.data[frm]
-            del self.rowLabels[frm]
-            del self.data[frm]
-
-            if to > frm:
-                self.rowLabels.insert(to-1,oldLabel)
-                self.data.insert(to-1,oldData)
-            else:
-                self.rowLabels.insert(to,oldLabel)
-                self.data.insert(to,oldData)
-
-            # Notify the grid
-            grid.BeginBatch()
-
-            msg = gridlib.GridTableMessage(
-                    self, gridlib.GRIDTABLE_NOTIFY_ROWS_DELETED, frm, 1
-                    )
-
-            grid.ProcessTableMessage(msg)
-
-            msg = gridlib.GridTableMessage(
-                    self, gridlib.GRIDTABLE_NOTIFY_ROWS_INSERTED, to, 1
-                    )
-
-            grid.ProcessTableMessage(msg)
-            grid.EndBatch()
-
-
-#---------------------------------------------------------------------------
-
-
-class DragableGrid(gridlib.Grid):
-    def __init__(self, parent, log):
-        gridlib.Grid.__init__(self, parent, -1)
-
-        table = CustomDataTable(log)
-
-        # The second parameter means that the grid is to take ownership of the
-        # table and will destroy it when done.  Otherwise you would need to keep
-        # a reference to it and call it's Destroy method later.
-        self.SetTable(table, True)
-
-        # Enable Column moving
-        gridmovers.GridColMover(self)
-        self.Bind(gridmovers.EVT_GRID_COL_MOVE, self.OnColMove, self)
-
-        # Enable Row moving
-        gridmovers.GridRowMover(self)
-        self.Bind(gridmovers.EVT_GRID_ROW_MOVE, self.OnRowMove, self)
-
-    # Event method called when a column move needs to take place
-    def OnColMove(self,evt):
-        frm = evt.GetMoveColumn()       # Column being moved
-        to = evt.GetBeforeColumn()      # Before which column to insert
-        self.GetTable().MoveColumn(frm,to)
-
-    # Event method called when a row move needs to take place
-    def OnRowMove(self,evt):
-        frm = evt.GetMoveRow()          # Row being moved
-        to = evt.GetBeforeRow()         # Before which row to insert
-        self.GetTable().MoveRow(frm,to)
-
-#---------------------------------------------------------------------------
-
-class TestFrame(wx.Frame):
-    def __init__(self, parent, log):
-        wx.Frame.__init__(self, parent, -1, "Custom Table, data driven Grid  Demo", size=(640,480))
-        grid = DragableGrid(self, log)
-
-
-#---------------------------------------------------------------------------
-
-if __name__ == '__main__':
-    import sys
-    app = wx.PySimpleApp()
-    frame = TestFrame(None, sys.stdout)
-    frame.Show(True)
-    app.MainLoop()
-
-#---------------------------------------------------------------------------