def METHOD_NAME(self):
    if self.proposedState is None:
        return False
    results = []
    needRecalc = True
    if self.pModPositions:
        cmd = CalcChangeProjectedModuleStatesCommand(
            fitID=self.fitID,
            positions=self.pModPositions,
            proposedState=self.proposedState)
        results.append(self.internalHistory.submit(cmd))
        needRecalc = cmd.needsGuiRecalc
    for pDroneItemID in self.pDroneItemIDs:
        cmd = CalcChangeProjectedDroneStateCommand(
            fitID=self.fitID,
            itemID=pDroneItemID,
            state=False if self.proposedState == 'inactive' else True)
        results.append(self.internalHistory.submit(cmd))
        needRecalc = True
    for pFighterPosition in self.pFighterPositions:
        cmd = CalcChangeProjectedFighterStateCommand(
            fitID=self.fitID,
            position=pFighterPosition,
            state=False if self.proposedState == 'inactive' else True)
        results.append(self.internalHistory.submit(cmd))
        needRecalc = True
    for pFitID in self.pFitIDs:
        cmd = CalcChangeProjectedFitStateCommand(
            fitID=self.fitID,
            projectedFitID=pFitID,
            state=False if self.proposedState == 'inactive' else True)
        results.append(self.internalHistory.submit(cmd))
        needRecalc = cmd.needsGuiRecalc
    success = any(results)
    sFit = Fit.getInstance()
    if needRecalc:
        eos.db.flush()
        sFit.recalc(self.fitID)
    sFit.fill(self.fitID)
    eos.db.commit()
    wx.PostEvent(gui.mainFrame.MainFrame.getInstance(), GE.FitChanged(fitIDs=(self.fitID,)))
    return success