Add support for delayed changing of text in columns via a delayedText

method that will get called if getText returns false
This commit is contained in:
cncfanatics
2010-10-26 12:49:50 +02:00
parent 50020159bb
commit ab58df372e
3 changed files with 18 additions and 9 deletions

View File

@@ -20,6 +20,7 @@
from gui.viewColumn import ViewColumn from gui.viewColumn import ViewColumn
from gui import bitmapLoader from gui import bitmapLoader
import service import service
from util import formatAmount
class ModulePrice(ViewColumn): class ModulePrice(ViewColumn):
name = "Module Price" name = "Module Price"
@@ -33,15 +34,16 @@ class ModulePrice(ViewColumn):
def getText(self, mod): def getText(self, mod):
itemPrice = None return False if mod.item is not None else ""
def delayedText(self, mod, display, colItem):
def callback(requests): def callback(requests):
itemPrice = requests[0].price price = requests[0].price
colItem.SetText(formatAmount(price, 3, 3, 9) if price is not None else "")
service.Market.getInstance().getPrices([mod.ID], callback) display.SetItem(colItem)
if itemPrice is not None:
return "%.0f" % itemPrice
else: service.Market.getInstance().getPrices([mod.item.ID], callback)
return ""
def getImageId(self, mod): def getImageId(self, mod):
return -1 return -1

View File

@@ -127,6 +127,10 @@ class Display(wx.ListCtrl):
oldText = colItem.GetText() oldText = colItem.GetText()
oldImageId = colItem.GetImage() oldImageId = colItem.GetImage()
newText = col.getText(st) newText = col.getText(st)
if newText is False:
col.delayedText(st, self, colItem)
newText = ""
newImageId = col.getImageId(st) newImageId = col.getImageId(st)
colItem.SetText(newText) colItem.SetText(newText)

View File

@@ -54,4 +54,7 @@ class ViewColumn(object):
def getParameters(self): def getParameters(self):
raise NotImplementedError() raise NotImplementedError()
from gui.builtinViewColumns import * def delayedText(self, display, colItem):
raise NotImplementedError()
from gui.builtinViewColumns import *