| 8 | |
| 9 | |
| 10 | class CalcChangeModuleSpoolCommand(wx.Command): |
| 11 | |
| 12 | def __init__(self, fitID, projected, position, spoolType, spoolAmount): |
| 13 | wx.Command.__init__(self, True, 'Change Module Spool') |
| 14 | self.fitID = fitID |
| 15 | self.projected = projected |
| 16 | self.position = position |
| 17 | self.spoolType = spoolType |
| 18 | self.spoolAmount = spoolAmount |
| 19 | self.savedSpoolType = None |
| 20 | self.savedSpoolAmount = None |
| 21 | |
| 22 | def Do(self): |
| 23 | pyfalog.debug('Doing change of module spoolup at position {} to {} type {} amount on fit {}'.format(self.position, self.spoolType, self.spoolAmount, self.fitID)) |
| 24 | fit = Fit.getInstance().getFit(self.fitID) |
| 25 | container = fit.modules if not self.projected else fit.projectedModules |
| 26 | mod = container[self.position] |
| 27 | if mod.isEmpty: |
| 28 | pyfalog.warning('Attempt to change spoolup for empty module') |
| 29 | return False |
| 30 | self.savedSpoolType = mod.spoolType |
| 31 | self.savedSpoolAmount = mod.spoolAmount |
| 32 | if self.spoolType == self.savedSpoolType and self.spoolAmount == self.savedSpoolAmount: |
| 33 | return False |
| 34 | mod.spoolType = self.spoolType |
| 35 | mod.spoolAmount = self.spoolAmount |
| 36 | return True |
| 37 | |
| 38 | def Undo(self): |
| 39 | pyfalog.debug('Undoing change of module spoolup at position {} to {} type {} amount on fit {}'.format(self.position, self.spoolType, self.spoolAmount, self.fitID)) |
| 40 | cmd = CalcChangeModuleSpoolCommand( |
| 41 | fitID=self.fitID, |
| 42 | projected=self.projected, |
| 43 | position=self.position, |
| 44 | spoolType=self.savedSpoolType, |
| 45 | spoolAmount=self.savedSpoolAmount) |
| 46 | return cmd.Do() |