Files
pyfa/gui/builtinContextMenus/itemMarketJump.py
2020-06-23 15:55:16 +08:00

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()