def __init__(self, input, fontsize, *attrs): wx.grid.PyGridTableBase.__init__(self) self.input = input self.iterator = ipipe.xiter(input) self.items = [] self.attrs = [ipipe.upgradexattr(attr) for attr in attrs] self._displayattrs = self.attrs[:] self._displayattrset = set(self.attrs) self._sizing = False self.fontsize = fontsize self._fetch(1)
def __init__(self, input, fontsize, *attrs): wx.grid.PyGridTableBase.__init__(self) self.input = input self.iterator = ipipe.xiter(input) self.items = [] self.attrs = [ipipe.upgradexattr(attr) for attr in attrs] self._displayattrs = self.attrs[:] self._displayattrset = set(self.attrs) self.fontsize = fontsize self._fetch(1) self.timer = wx.Timer() self.timer.Bind(wx.EVT_TIMER, self.refresh_content)
def refresh_content(self, event): msg = wx.grid.GridTableMessage(self, wx.grid.GRIDTABLE_NOTIFY_ROWS_DELETED, 0, self.GetNumberRows()) self.GetView().ProcessTableMessage(msg) self.iterator = ipipe.xiter(self.input) self.items = [] self.attrs = [] # _append will calculate new displayattrs self._fetch(1) # fetch one... if self.items: msg = wx.grid.GridTableMessage(self, wx.grid.GRIDTABLE_NOTIFY_ROWS_APPENDED, 1) self.GetView().ProcessTableMessage(msg) self.GetValue(0, 0) # and trigger "fetch next 20" item = self.items[0] self.GetView().AutoSizeColumns(False) panel = self.GetView().GetParent() nb = panel.GetParent() current = nb.GetSelection() if nb.GetPage(current) == panel: self.GetView().set_footer(item)