public void Save()
        {
            if (autoCommitChanges)
            {
                return;
            }

            if (group.Name != groupCopy.Name)
            {
                group.Name = groupCopy.Name;
            }

            foreach (Stetic.Wrapper.Action actionCopy in groupCopy.Actions)
            {
                Stetic.Wrapper.Action action = (Stetic.Wrapper.Action)actionCopyMap [actionCopy];
                if (action != null)
                {
                    action.CopyFrom(actionCopy);
                }
                else
                {
                    action = actionCopy.Clone();
                    actionCopyMap [actionCopy] = action;
                    group.Actions.Add(action);
                }
            }

            ArrayList todelete = new ArrayList();

            foreach (Stetic.Wrapper.Action actionCopy in actionCopyMap.Keys)
            {
                if (!groupCopy.Actions.Contains(actionCopy))
                {
                    todelete.Add(actionCopy);
                }
            }

            foreach (Stetic.Wrapper.Action actionCopy in todelete)
            {
                Stetic.Wrapper.Action action = (Stetic.Wrapper.Action)actionCopyMap [actionCopy];
                group.Actions.Remove(action);
                actionCopyMap.Remove(actionCopy);
            }
            Modified = false;
        }
        void Load(Stetic.Wrapper.ActionGroup group)
        {
            if (autoCommitChanges)
            {
                groupCopy = group;
            }
            else
            {
                actionCopyMap.Clear();

                groupCopy      = new Stetic.Wrapper.ActionGroup();
                groupCopy.Name = group.Name;

                foreach (Stetic.Wrapper.Action action in group.Actions)
                {
                    Stetic.Wrapper.Action dupaction = action.Clone();
                    groupCopy.Actions.Add(dupaction);
                    actionCopyMap [dupaction] = action;
                }
                groupCopy.SignalAdded   += new Stetic.SignalEventHandler(OnSignalAdded);
                groupCopy.SignalChanged += new Stetic.SignalChangedEventHandler(OnSignalChanged);
            }
        }