# Copyright (C) 2009, Tutorius.org # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA from ..actions import * class ChainAction(Action): actions = TAddonListProperty() """Utility class to allow executing actions in a specific order""" def __init__(self, actions=[]): """ChainAction(action1, ... ) builds a chain of actions""" Action.__init__(self) self.actions = actions def do(self,**kwargs): """do() each action in the chain""" for act in self.actions: act.do(**kwargs) def undo(self): """undo() each action in the chain, starting with the last""" for act in reversed(self.actions): act.undo() __action__ = { 'name': 'ChainAction', 'display_name' : 'Chain of actions', 'icon' : 'chain', 'class' : ChainAction, 'mandatory_props' : ['actions'], 'test' : True }