def testFilteringHead(self): self.objectListView.SetFilter(Filter.Head(1)) self.objectListView.SetObjects(self.persons) self.assertEqual(len(self.objectListView.GetFilteredObjects()), 1) self.assertEqual(self.objectListView.GetFilteredObjects()[0], self.persons[0]) self.objectListView.SetFilter(None)
def re_fill_list(self): a = P4Rm() self.Freeze() if a.db_nb_line is not -1: self.list.SortBy(0, ascending=False) self.list.SetFilter(Filter.Head(a.db_nb_line)) else: self.list.SetFilter(None) self.list.RepopulateList() self.Thaw()
class DataBasePanel(scrolled.ScrolledPanel): def __init__(self, parent, statusbar): scrolled.ScrolledPanel.__init__(self, parent) self.statusbar = statusbar self.parent = parent self.list = FastObjectListView(self, sortable=True, style=wx.LC_REPORT | wx.SUNKEN_BORDER, size=(950, 350)) self.list.handleStandardKeys = False self.list.SetEmptyListMsg("This database has no rows") self.list.SetEmptyListMsgFont( wx.FFont(24, wx.DEFAULT, faceName="Tekton")) self.width_date = 170 self.width = 100 self.width_model = 130 self.check_date = 0 self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected, self.list) self.Bind(wx.EVT_LIST_COL_CLICK, self.OnItemSelected, self.list) mastersizer = wx.BoxSizer(wx.HORIZONTAL) mastersizer.Add(self.list, 0, wx.ALL, 5) pub.subscribe(self.fill_list, pubsub_fill_list_DB) pub.subscribe(self.re_fill_list, pubsub_update_db_nb_line) self.SetSizer(mastersizer) self.Layout() self.SetAutoLayout(1) self.SetupScrolling() self.initialize_list() c = DataBaseUse() c.initialize_database() def initialize_list(self): temp = [] ic_ = prog_icon_curve.GetBitmap() ImageIndex = self.list.AddImages(ic_) self.list.AddNamedImages("date", ic_) for i in range(len(headercolumnname) - 1): if i == 0: temp.append( ColumnDefn(headercolumnname[i], "center", self.width_date, valueGetter=databasename[0], imageGetter=ImageIndex, maximumWidth=self.width_date)) else: temp.append( ColumnDefn(headercolumnname[i], "center", self.width, valueGetter=databasename[i], maximumWidth=self.width)) i += 1 temp.append( ColumnDefn(headercolumnname[i], "center", self.width_model, valueGetter=databasename[i], maximumWidth=self.width_model)) self.list.SetColumns(temp) def fill_list(self, case, l): a = P4Rm() self.Freeze() if case == 0: self.list.SetObjects(l) elif case == 1: self.list.AddObject(l) pub.sendMessage(pubsub_refill_list_name_DB) pub.sendMessage(pubsub_search_combobox_DB) objects = self.list.GetObjects() self.list.SortBy(0, ascending=False) if a.db_nb_line is not -1: self.list.SetFilter(Filter.Head(a.db_nb_line)) self.list.RepopulateList() else: self.list.SetFilter(None) self.list.RefreshObjects(objects) self.Thaw()