diff -r 09d0bc6970b5 -r c724ac229181 src/FingersDance.ActionFactory/ActionFactory.cs --- a/src/FingersDance.ActionFactory/ActionFactory.cs Mon Sep 14 17:43:41 2009 +0200 +++ b/src/FingersDance.ActionFactory/ActionFactory.cs Mon Sep 14 23:49:47 2009 +0200 @@ -3,25 +3,23 @@ using System.Linq; using System.Text; using FingersDance.Control.Player; -using FingersDance.Actions; namespace FingersDance.ActionFactory { public class ActionFactory { - private Dictionary actionDict = new Dictionary(); + private static ActionGenerator _Factory; public ActionFactory() + { } + + public ActionGenerator GetGenerator() { - actionDict.Add("ActionPlayMedia", typeof(FingersDance.Actions.ActionPlayMedia)); - actionDict.Add("ActionShowMessage", typeof(FingersDance.Actions.ActionShowMessage)); - actionDict.Add("ActionOpenMedia", typeof(FingersDance.Actions.ActionOpenMedia)); - actionDict.Add("ActionStopMedia", typeof(FingersDance.Actions.ActionStopMedia)); - } - - public ActionBase GetAction(string T, object Args) - { - return (ActionBase)Activator.CreateInstance(actionDict[T]); + if (_Factory == null) + { + _Factory = new ActionGenerator(); + } + return _Factory; } } }