Ejemplo n.º 1
0
            public static CmdObject Create(ICommand cmd, object userData)
            {
                CmdObject cmdObject = ReferencePool.Acquire <CmdObject>();

                cmdObject.Cmd      = cmd;
                cmdObject.UserData = userData;
                return(cmdObject);
            }
Ejemplo n.º 2
0
        public void ExecuteCmd(ICommand cmd, string group, object userData)
        {
            LinkedList <CmdObject> cmdList;

            if (!m_CmdDic.TryGetValue(group, out cmdList))
            {
                cmdList = new LinkedList <CmdObject>();
                m_CmdDic.Add(group, cmdList);
            }
            CmdObject cmdObject = CmdObject.Create(cmd, userData);

            cmdList.AddLast(cmdObject);

            cmd.Execute(userData);
        }
Ejemplo n.º 3
0
        public void Undo(string group, object userData)
        {
            LinkedList <CmdObject> cmdList;

            if (!m_CmdDic.TryGetValue(group, out cmdList))
            {
                return;
            }
            if (cmdList.Count > 0)
            {
                CmdObject cmdObject = cmdList.Last.Value;
                cmdObject.Cmd.Undo(cmdObject.UserData, userData);
                cmdList.RemoveLast();
                ReferencePool.Release(cmdObject);
            }
        }