Populate the itemView with items when a marketGroup is selected.

Note: We're using a treeview instead of a listView here, because it looks exactly like we want out of the box.
This commit is contained in:
cncfanatics
2010-08-15 21:15:45 +02:00
parent 313836bd7a
commit 9093748407
2 changed files with 36 additions and 3 deletions

View File

@@ -29,6 +29,21 @@ class Market():
return cls.instance
def getItems(self, id):
"""
Get the items contained in the marketGroup with the passed id.
Returns a list, where each element is a tuple container:
the id, the name, the icon
"""
items = []
group = eos.db.getMarketGroup(id)
for item in group.items:
icon = item.icon.iconFile if item.icon else ""
items.append((item.ID, item.name, icon))
return items
def getChildren(self, id):
"""
Get the children of the group or marketGroup with the passed id.

View File

@@ -46,9 +46,12 @@ class MarketBrowser(wx.Panel):
self.marketRoot = self.marketView.AddRoot("Market")
self.itemRoot = self.itemView.AddRoot("Market")
self.marketImageList = wx.ImageList(24, 24)
self.marketImageList = wx.ImageList(16, 16)
self.marketView.SetImageList(self.marketImageList)
self.itemImageList = wx.ImageList(16, 16)
self.itemView.SetImageList(self.itemImageList)
cMarket = controller.Market.getInstance()
root = cMarket.getMarketRoot()
@@ -60,6 +63,7 @@ class MarketBrowser(wx.Panel):
#Bind our lookup method to when the tree gets expanded
self.marketView.Bind(wx.EVT_TREE_ITEM_EXPANDING, self.expandLookup)
self.marketView.Bind(wx.EVT_TREE_SEL_CHANGED, self.selectionMade)
def expandLookup(self, event):
root = event.Item
@@ -69,11 +73,25 @@ class MarketBrowser(wx.Panel):
#A DUMMY! Keeeel!!! EBUL DUMMY MUST DIAF!
self.marketView.Delete(child)
rootId = self.marketView.GetPyData(root)
#Add 'real stoof!' instead
for id, name, iconFile, more in cMarket.getChildren(rootId):
for id, name, iconFile, more in cMarket.getChildren(self.marketView.GetPyData(root)):
if iconFile: iconId = self.marketImageList.Add(bitmapLoader.getBitmap(iconFile, "pack"))
else: iconId = -1
childId = self.marketView.AppendItem(root, name, iconId, data=wx.TreeItemData(id))
if more:
self.marketView.AppendItem(childId, "dummy")
def selectionMade(self, event):
self.itemView.DeleteChildren(self.itemRoot)
self.itemImageList.RemoveAll()
root = event.Item
if self.marketView.GetChildrenCount(root) != 0:
return
cMarket = controller.Market.getInstance()
for id, name, iconFile in cMarket.getItems(self.marketView.GetPyData(root)):
if iconFile: iconId = self.itemImageList.Add(bitmapLoader.getBitmap(iconFile, "pack"))
else: iconId = -1
self.itemView.AppendItem(self.itemRoot, name, iconId, data=wx.TreeItemData(id))