Restore removed dummies on all commands which can deal with t3c subsystems

This commit is contained in:
DarkPhoenix
2019-04-30 13:50:10 +03:00
parent fa2bceaff9
commit 63a599ca85
13 changed files with 71 additions and 43 deletions

View File

@@ -3,7 +3,7 @@ import wx
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
from service.fit import Fit
@@ -14,13 +14,14 @@ class GuiAddLocalModuleCommand(wx.Command):
self.internalHistory = InternalCommandHistory()
self.fitID = fitID
self.itemID = itemID
self.savedRemovedDummies = None
def Do(self):
cmd = CalcAddLocalModuleCommand(fitID=self.fitID, newModInfo=ModuleInfo(itemID=self.itemID))
success = self.internalHistory.submit(cmd)
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
wx.PostEvent(
gui.mainFrame.MainFrame.getInstance(),
GE.FitChanged(fitID=self.fitID, action='modadd', typeID=self.itemID)
@@ -29,8 +30,10 @@ class GuiAddLocalModuleCommand(wx.Command):
return success
def Undo(self):
success = self.internalHistory.undoAll()
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(

View File

@@ -4,7 +4,7 @@ import eos.db
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localReplace import CalcReplaceLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
from service.fit import Fit
@@ -17,6 +17,7 @@ class GuiChangeLocalModuleMetasCommand(wx.Command):
self.positions = positions
self.newItemID = newItemID
self.relacedItemIDs = None
self.savedRemovedDummies = None
def Do(self):
sFit = Fit.getInstance()
@@ -44,7 +45,7 @@ class GuiChangeLocalModuleMetasCommand(wx.Command):
success = self.internalHistory.submitBatch(*commands)
eos.db.commit()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
events = []
if success and self.replacedItemIDs:
events.append(GE.FitChanged(fitID=self.fitID, action='moddel', typeID=self.replacedItemIDs))
@@ -57,9 +58,11 @@ class GuiChangeLocalModuleMetasCommand(wx.Command):
return success
def Undo(self):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
eos.db.commit()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
events = []

View File

@@ -3,7 +3,7 @@ import wx
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localChangeStates import CalcChangeLocalModuleStatesCommand
from gui.fitCommands.helpers import InternalCommandHistory
from gui.fitCommands.helpers import InternalCommandHistory, restoreRemovedDummies
from service.fit import Fit
@@ -16,6 +16,7 @@ class GuiChangeLocalModuleStatesCommand(wx.Command):
self.mainPosition = mainPosition
self.positions = positions
self.click = click
self.savedRemovedDummies = None
def Do(self):
cmd = CalcChangeLocalModuleStatesCommand(
@@ -26,13 +27,15 @@ class GuiChangeLocalModuleStatesCommand(wx.Command):
success = self.internalHistory.submit(cmd)
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitID=self.fitID))
return success
def Undo(self):
success = self.internalHistory.undoAll()
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitID=self.fitID))

View File

@@ -3,7 +3,7 @@ import wx
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localClone import CalcCloneLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory
from gui.fitCommands.helpers import InternalCommandHistory, restoreRemovedDummies
from service.fit import Fit
@@ -16,6 +16,7 @@ class GuiCloneLocalModuleCommand(wx.Command):
self.srcPosition = srcPosition
self.dstPosition = dstPosition
self.savedItemID = None
self.savedRemovedDummies = None
def Do(self):
if self.srcPosition == self.dstPosition:
@@ -25,7 +26,7 @@ class GuiCloneLocalModuleCommand(wx.Command):
success = self.internalHistory.submit(cmd)
fit = sFit.getFit(self.fitID)
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
self.savedItemID = fit.modules[self.srcPosition].itemID
if success and self.savedItemID is not None:
event = GE.FitChanged(fitID=self.fitID, action='modadd', typeID=self.savedItemID)
@@ -35,8 +36,10 @@ class GuiCloneLocalModuleCommand(wx.Command):
return success
def Undo(self):
success = self.internalHistory.undoAll()
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
if success and self.savedItemID is not None:

View File

@@ -4,7 +4,7 @@ import eos.db
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
from service.fit import Fit
@@ -15,6 +15,7 @@ class GuiFillWithNewLocalModulesCommand(wx.Command):
self.internalHistory = InternalCommandHistory()
self.fitID = fitID
self.itemID = itemID
self.savedRemovedDummies = None
def Do(self):
info = ModuleInfo(itemID=self.itemID)
@@ -27,7 +28,7 @@ class GuiFillWithNewLocalModulesCommand(wx.Command):
eos.db.commit()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
success = added_modules > 0
wx.PostEvent(
gui.mainFrame.MainFrame.getInstance(),
@@ -37,9 +38,11 @@ class GuiFillWithNewLocalModulesCommand(wx.Command):
return success
def Undo(self):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
eos.db.commit()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(

View File

@@ -4,7 +4,7 @@ import eos.db
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
from service.fit import Fit
@@ -16,6 +16,7 @@ class GuiFillWithClonedLocalModulesCommand(wx.Command):
self.fitID = fitID
self.position = position
self.savedItemID = None
self.savedRemovedDummies = None
def Do(self):
sFit = Fit.getInstance()
@@ -31,7 +32,7 @@ class GuiFillWithClonedLocalModulesCommand(wx.Command):
added_modules += 1
eos.db.commit()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
success = added_modules > 0
wx.PostEvent(
gui.mainFrame.MainFrame.getInstance(),
@@ -41,9 +42,11 @@ class GuiFillWithClonedLocalModulesCommand(wx.Command):
return success
def Undo(self):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
eos.db.commit()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(

View File

@@ -3,7 +3,7 @@ import wx
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
from service.fit import Fit
@@ -18,21 +18,24 @@ class GuiImportLocalMutatedModuleCommand(wx.Command):
baseItemID=baseItem.ID,
mutaplasmidID=mutaplasmid.ID,
mutations=mutations)
self.savedRemovedDummies = None
def Do(self):
cmd = CalcAddLocalModuleCommand(fitID=self.fitID, newModInfo=self.newModInfo)
success = self.internalHistory.submit(cmd)
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
wx.PostEvent(
gui.mainFrame.MainFrame.getInstance(),
GE.FitChanged(fitID=self.fitID, action='modadd', typeID=self.newModInfo.itemID))
return success
def Undo(self):
success = self.internalHistory.undoAll()
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(

View File

@@ -3,7 +3,7 @@ import wx
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localRemove import CalcRemoveLocalModulesCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, restoreRemovedDummies
from service.fit import Fit
@@ -15,6 +15,7 @@ class GuiRemoveLocalModuleCommand(wx.Command):
self.fitID = fitID
self.positions = positions
self.savedTypeIDs = None
self.savedRemovedDummies = None
def Do(self):
sFit = Fit.getInstance()
@@ -23,7 +24,7 @@ class GuiRemoveLocalModuleCommand(wx.Command):
cmd = CalcRemoveLocalModulesCommand(fitID=self.fitID, positions=self.positions)
success = self.internalHistory.submit(cmd)
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
wx.PostEvent(
gui.mainFrame.MainFrame.getInstance(),
GE.FitChanged(fitID=self.fitID, action='moddel', typeID=self.savedTypeIDs)
@@ -32,8 +33,10 @@ class GuiRemoveLocalModuleCommand(wx.Command):
return success
def Undo(self):
success = self.internalHistory.undoAll()
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(

View File

@@ -3,9 +3,8 @@ import wx
import eos.db
import gui.mainFrame
from gui import globalEvents as GE
from gui.fitCommands.calc.module.localAdd import CalcAddLocalModuleCommand
from gui.fitCommands.calc.module.localReplace import CalcReplaceLocalModuleCommand
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo
from gui.fitCommands.helpers import InternalCommandHistory, ModuleInfo, restoreRemovedDummies
from service.fit import Fit
@@ -17,6 +16,7 @@ class GuiReplaceLocalModuleCommand(wx.Command):
self.fitID = fitID
self.itemID = itemID
self.positions = positions
self.savedRemovedDummies = None
def Do(self):
results = []
@@ -27,7 +27,7 @@ class GuiReplaceLocalModuleCommand(wx.Command):
eos.db.commit()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
self.savedRemovedDummies = sFit.fill(self.fitID)
wx.PostEvent(
gui.mainFrame.MainFrame.getInstance(),
GE.FitChanged(fitID=self.fitID, action='modadd', typeID=self.itemID)
@@ -36,9 +36,11 @@ class GuiReplaceLocalModuleCommand(wx.Command):
return success
def Undo(self):
sFit = Fit.getInstance()
fit = sFit.getFit(self.fitID)
restoreRemovedDummies(fit, self.savedRemovedDummies)
success = self.internalHistory.undoAll()
eos.db.commit()
sFit = Fit.getInstance()
sFit.recalc(self.fitID)
sFit.fill(self.fitID)
wx.PostEvent(