diff --git a/gui/builtinStatsViews/priceViewFull.py b/gui/builtinStatsViews/priceViewFull.py index f392d31aa..b4800c4ce 100644 --- a/gui/builtinStatsViews/priceViewFull.py +++ b/gui/builtinStatsViews/priceViewFull.py @@ -18,6 +18,7 @@ #=============================================================================== import wx +import gui.mainFrame from gui.statsView import StatsView from gui import builtinStatsViews from gui.bitmapLoader import BitmapLoader @@ -74,30 +75,51 @@ class PriceViewFull(StatsView): self.priceChoice = wx.Choice(contentPanel, choices=Price.systemsList.keys()) contentSizer.Add(self.priceChoice, 1, wx.RIGHT | wx.LEFT, 3) self.priceChoice.SetStringSelection("Jita") + self.priceChoice.Bind(wx.EVT_CHOICE, self.priceSelection) + + def priceSelection(self, event): Price.currentSystemId = Price.systemsList.get(self.priceChoice.GetString(self.priceChoice.GetSelection())) + mainFrame = gui.mainFrame.MainFrame.getInstance() + sFit = service.Fit.getInstance() + fit = sFit.getFit(mainFrame.getActiveFit()) + + typeIDs = self.fitItemsList(fit) + + sMkt = service.Market.getInstance() + sMkt.getPrices(typeIDs, Price.invalidPrices) + + self.refreshPanel(fit); + + + def fitItemsList(self, fit): + # Compose a list of all the data we need & request it + typeIDs = [] + typeIDs.append(fit.ship.item.ID) + + for mod in fit.modules: + if not mod.isEmpty: + typeIDs.append(mod.itemID) + + for drone in fit.drones: + for _ in xrange(drone.amount): + typeIDs.append(drone.itemID) + + for fighter in fit.fighters: + for _ in xrange(fighter.amountActive): + typeIDs.append(fighter.itemID) + + for cargo in fit.cargo: + for _ in xrange(cargo.amount): + typeIDs.append(cargo.itemID) + + return typeIDs + def refreshPanel(self, fit): if fit is not None: self.fit = fit - # Compose a list of all the data we need & request it - typeIDs = [] - typeIDs.append(fit.ship.item.ID) - for mod in fit.modules: - if not mod.isEmpty: - typeIDs.append(mod.itemID) - - for drone in fit.drones: - for _ in xrange(drone.amount): - typeIDs.append(drone.itemID) - - for fighter in fit.fighters: - for _ in xrange(fighter.amountActive): - typeIDs.append(fighter.itemID) - - for cargo in fit.cargo: - for _ in xrange(cargo.amount): - typeIDs.append(cargo.itemID) + typeIDs = self.fitItemsList(fit) sMkt = service.Market.getInstance() sMkt.getPrices(typeIDs, self.processPrices) diff --git a/service/price.py b/service/price.py index 8215a46d9..0a3b3b53d 100644 --- a/service/price.py +++ b/service/price.py @@ -37,7 +37,12 @@ class Price(): "Hek": 30002053 } - currentSystemId = systemsList.get("Jita") + currentSystemId = "" + + @classmethod + def invalidPrices(self, prices): + for price in prices: + price.time = 0 @classmethod def fetchPrices(cls, prices):