def __init__( self, title, selections, prompt, single_select=0, parent=None, pre_lb_cb=None, post_lb_cb=None, ac_cb=None ): self.choices = [] wrestlerData = {} for i in range(1, len(selections) + 1): wrestlerData[i] = selections[i - 1] wxDialog.__init__(self, parent, -1, title, pos=wxDefaultPosition) dlgSzr = wxBoxSizer(wxVERTICAL) dlgSzr.Add(wxStaticText(self, -1, prompt), 0, wxALIGN_CENTER | wxEXPAND | wxALL, border=10) if pre_lb_cb: # Allow a widget to be inserted before the listbox dlgSzr.Add(pre_lb_cb(self), 0, wxALIGN_CENTER) styleopts = wxLC_REPORT | wxSUNKEN_BORDER | wxLC_VRULES if single_select: styleopts = styleopts | wxLC_SINGLE_SEL self.listCtrl = JowstListCtrl(self, -1, size=(300, 300), style=styleopts) self.listCtrl.parent = self self.populateListCtrl(wrestlerData) self.itemDataMap = wrestlerData wxColumnSorterMixin.__init__(self, 2) self.SortListItems(0, True) if ac_cb: self.ac_cb = ac_cb EVT_LEFT_DCLICK(self.listCtrl, self._showActionCard) dlgSzr.Add(self.listCtrl, 0, wxALIGN_CENTER | wxEXPAND | wxALL, border=10) if post_lb_cb: # Allow a widget to be inserted after the listbox dlgSzr.Add(post_lb_cb(self), 0, wxALIGN_CENTER) buttSzr = wxBoxSizer(wxHORIZONTAL) buttSzr.Add(wxButton(self, wxID_OK, "OK"), 0, wxEXPAND) buttSzr.Add((10, 0)) buttSzr.Add(wxButton(self, wxID_CANCEL, "Cancel"), 0, wxEXPAND) dlgSzr.Add(buttSzr, 0, wxALIGN_CENTER | wxALL, border=5) EVT_LIST_ITEM_SELECTED(self, self.listCtrl.GetId(), self.OnItemSelected) EVT_LIST_ITEM_DESELECTED(self, self.listCtrl.GetId(), self.OnItemDeselected) dlgSzr.Fit(self) self.SetSizer(dlgSzr) self.SetAutoLayout(1) self.Layout() self.Center()
self.list.SetStringItem(i, 8, "%s" % (data[8])) self.list.SetStringItem(i, 9, "%s" % (data[9])) self.list.SetStringItem(i, 10, "%s" % (data[10])) self.list.SetStringItem(i, 11, "%s" % (data[12])) self.list.SetItemData(x, key) i = i + 1 self.list.SetColumnWidth(0, 200) self.list.SetColumnWidth(1, 100) self.list.SetColumnWidth(2, 40) self.list.SetColumnWidth(5, 45) self.list.SetColumnWidth(8, 50) wxColumnSorterMixin.__init__(self, 9) self.SortListItems(0, True) EVT_LIST_ITEM_ACTIVATED(self, self.list.GetId(), self.onSelectItem) def getColumnText(self, index, col): item = self.list.GetItem(index, col) return item.GetText() def removeItem(self, index): self.lastSearchModified = True self.list.DeleteItem(index) return true def onSelectItem(self, event): currentItem = event.m_itemIndex m_item = inventoried_merchandise(self.getColumnText(currentItem, 10))
class BrowseInventoryPopup(wxDialog, wxColumnSorterMixin): def GetListCtrl(self): return self.list def __init__(self, parent, queryTerms): self.parent = parent self.queryTerms = queryTerms wxDialog.__init__(self, parent, -1, "Inventory Browser") self.SetSize((800, 600)) tID = wxNewId() self.list = InventoryListCtrl( self, tID, style=wxLC_REPORT | wxSUNKEN_BORDER | wxLC_EDIT_LABELS #| wxLC_NO_HEADER #| wxLC_VRULES | wxLC_HRULES ) self.list.InsertColumn(0, "Title") self.list.InsertColumn(1, "Author") self.list.InsertColumn(2, "Price") self.list.InsertColumn(3, "Publisher") self.list.InsertColumn(4, "Status") self.list.InsertColumn(5, "ISBN") self.list.InsertColumn(6, "Distributor") self.list.InsertColumn(7, "Notes") self.list.InsertColumn(8, "ID") self.list.InsertColumn(9, "Kind") inv = self.parent.inventory.getInventory(self.queryTerms) self.itemDataMap = inv i = 0 items = inv.items() for x in range(len(items)): key, data = items[x] data_3 = data[3] if not (type(data_3) in types.StringTypes): data_3 = data_3.tostring() data_6 = data[6] if not (type(data_6) in types.StringTypes): try: data_6 = data_6.tostring() except AttributeError, TypeError: data_6 = "" self.list.InsertStringItem(i, data[0]) self.list.SetStringItem(i, 1, data[1]) self.list.SetStringItem(i, 2, str(data[2])) self.list.SetStringItem(i, 3, data_3) self.list.SetStringItem(i, 4, data[4]) self.list.SetStringItem(i, 5, data[5]) self.list.SetStringItem(i, 6, data[6]) self.list.SetStringItem(i, 7, "%s" % (data[7])) self.list.SetStringItem(i, 8, "%s" % (data[8])) self.list.SetStringItem(i, 9, "%s" % (data[9])) self.list.SetItemData(x, key) i = i + 1 self.list.SetColumnWidth(0, 200) self.list.SetColumnWidth(1, 100) self.list.SetColumnWidth(2, 40) self.list.SetColumnWidth(5, 35) self.list.SetColumnWidth(8, 50) wxColumnSorterMixin.__init__(self, 9) self.SortListItems(0, True) EVT_LIST_ITEM_ACTIVATED(self, self.list.GetId(), self.onSelectItem)
self.list.SetStringItem(i,5,data[5]) self.list.SetStringItem(i,6,data[6]) self.list.SetStringItem(i,7,"%s" % (data[7])) self.list.SetStringItem(i,8,"%s" % (data[8])) self.list.SetStringItem(i,9,"%s" % (data[9])) self.list.SetItemData(x,key) i=i+1 self.list.SetColumnWidth(0, 200) self.list.SetColumnWidth(1, 100) self.list.SetColumnWidth(2, 40) self.list.SetColumnWidth(5, 35) self.list.SetColumnWidth(8, 50) wxColumnSorterMixin.__init__(self, 9) self.SortListItems(0, True) EVT_LIST_ITEM_ACTIVATED(self,self.list.GetId(), self.onSelectItem) def getColumnText(self, index, col): item = self.list.GetItem(index, col) return item.GetText() def removeItem(self,index): self.lastSearchModified = True self.list.DeleteItem(index) return true def onSelectItem(self,event): currentItem = event.m_itemIndex m_item=inventoried_merchandise(self.getColumnText(currentItem, 9))