Files
pyfa/gui/fitCommands/calc/itemRebase.py

44 lines
1.4 KiB
Python

import wx
from logbook import Logger
from service.fit import Fit
from service.market import Market
pyfalog = Logger(__name__)
class CalcRebaseItemCommand(wx.Command):
def __init__(self, fitID, containerName, position, itemID):
wx.Command.__init__(self, True, 'Rebase Item')
self.fitID = fitID
self.containerName = containerName
self.position = position
self.itemID = itemID
self.savedItemID = None
def Do(self):
pyfalog.debug('Doing rebase of item in {} at position {} to {}'.format(self.containerName, self.position, self.itemID))
fit = Fit.getInstance().getFit(self.fitID)
obj = getattr(fit, self.containerName)[self.position]
self.savedItemID = getattr(obj.item, 'ID', None)
if self.savedItemID is None:
pyfalog.warning('Unable to get old item ID')
return False
newItem = Market.getInstance().getItem(self.itemID)
if newItem is None:
pyfalog.warning('Unable to fetch new item')
return False
obj.rebase(newItem)
return True
def Undo(self):
pyfalog.debug('Undoing rebase of item in {} at position {} to {}'.format(self.containerName, self.position, self.itemID))
cmd = CalcRebaseItemCommand(
fitID=self.fitID,
containerName=self.containerName,
position=self.position,
itemID=self.savedItemID)
return cmd.Do()