diff -r 31e63e25b4cc -r 64beb9e9c749 controls/CustomTable.py --- a/controls/CustomTable.py Mon Aug 21 20:17:19 2017 +0000 +++ b/controls/CustomTable.py Mon Aug 21 23:22:58 2017 +0300 @@ -30,8 +30,9 @@ else: ROW_HEIGHT = 28 + class CustomTable(wx.grid.PyGridTableBase): - + """ A custom wx.grid.Grid Table using user supplied data """ @@ -47,10 +48,10 @@ # see if the table has changed size self._rows = self.GetNumberRows() self._cols = self.GetNumberCols() - + def GetNumberCols(self): return len(self.colnames) - + def GetNumberRows(self): return len(self.data) @@ -66,11 +67,11 @@ def GetValue(self, row, col): if row < self.GetNumberRows(): return self.data[row].get(self.GetColLabelValue(col, False), "") - + def SetValue(self, row, col, value): if col < len(self.colnames): self.data[row][self.GetColLabelValue(col, False)] = value - + def GetValueByName(self, row, colname): if row < self.GetNumberRows(): return self.data[row].get(colname) @@ -91,10 +92,10 @@ (self._cols, self.GetNumberCols(), wx.grid.GRIDTABLE_NOTIFY_COLS_DELETED, wx.grid.GRIDTABLE_NOTIFY_COLS_APPENDED), ]: if new < current: - msg = wx.grid.GridTableMessage(self,delmsg,new,current-new) + msg = wx.grid.GridTableMessage(self, delmsg, new, current-new) grid.ProcessTableMessage(msg) elif new > current: - msg = wx.grid.GridTableMessage(self,addmsg,new-current) + msg = wx.grid.GridTableMessage(self, addmsg, new-current) grid.ProcessTableMessage(msg) self.UpdateValues(grid) grid.EndBatch() @@ -125,33 +126,33 @@ row_highlights = self.Highlights.get(row, {}) for col in range(self.GetNumberCols()): colname = self.GetColLabelValue(col, False) - + grid.SetReadOnly(row, col, True) grid.SetCellEditor(row, col, None) grid.SetCellRenderer(row, col, None) - + highlight_colours = row_highlights.get(colname.lower(), [(wx.WHITE, wx.BLACK)])[-1] grid.SetCellBackgroundColour(row, col, highlight_colours[0]) grid.SetCellTextColour(row, col, highlight_colours[1]) self.ResizeRow(grid, row) - + def ResizeRow(self, grid, row): if grid.GetRowSize(row) < ROW_HEIGHT: grid.SetRowMinimalHeight(row, ROW_HEIGHT) grid.AutoSizeRow(row, False) - + def SetData(self, data): self.data = data - + def GetData(self): return self.data - + def GetCurrentIndex(self): return self.CurrentIndex - + def SetCurrentIndex(self, index): self.CurrentIndex = index - + def AppendRow(self, row_content): self.data.append(row_content)