63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
import wx
|
|
|
|
import gui.mainFrame
|
|
from gui.contextMenu import ContextMenuSingle
|
|
from service.market import Market
|
|
|
|
_t = wx.GetTranslation
|
|
|
|
|
|
class JumpToMarketItem(ContextMenuSingle):
|
|
def __init__(self):
|
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
|
|
|
def display(self, callingWindow, srcContext, mainItem):
|
|
validContexts = ("marketItemMisc", "fittingModule",
|
|
"fittingCharge", "droneItem",
|
|
"implantItem", "boosterItem",
|
|
"projectedModule", "projectedDrone",
|
|
"projectedCharge", "cargoItem",
|
|
"implantItemChar", "fighterItem",
|
|
"projectedFighter")
|
|
|
|
if srcContext not in validContexts or mainItem is None:
|
|
return False
|
|
|
|
if mainItem is None or getattr(mainItem, "isEmpty", False):
|
|
return False
|
|
|
|
sMkt = Market.getInstance()
|
|
item = getattr(mainItem, "item", mainItem)
|
|
isMutated = getattr(mainItem, "isMutated", False)
|
|
mktGrp = sMkt.getMarketGroupByItem(item)
|
|
if mktGrp is None and isMutated:
|
|
mktGrp = sMkt.getMarketGroupByItem(mainItem.baseItem)
|
|
|
|
# 1663 is Special Edition Festival Assets, we don't have root group for it
|
|
if mktGrp is None or mktGrp.ID == 1663:
|
|
return False
|
|
|
|
doit = not mainItem.isEmpty if srcContext == "fittingModule" else True
|
|
return doit
|
|
|
|
def getText(self, callingWindow, itmContext, mainItem):
|
|
return _t("{0} Market Group").format(itmContext if itmContext is not None else _t("Item"))
|
|
|
|
def activate(self, callingWindow, fullContext, mainItem, i):
|
|
srcContext = fullContext[0]
|
|
if srcContext in ("fittingCharge", "projectedCharge"):
|
|
item = mainItem.charge
|
|
elif hasattr(mainItem, "item"):
|
|
if getattr(mainItem, "isMutated", False):
|
|
item = mainItem.baseItem
|
|
else:
|
|
item = mainItem.item
|
|
else:
|
|
item = mainItem
|
|
|
|
self.mainFrame.notebookBrowsers.SetSelection(0)
|
|
self.mainFrame.marketBrowser.jump(item)
|
|
|
|
|
|
JumpToMarketItem.register()
|