/// <summary>
        /// Computes the changes related to this event
        /// </summary>
        /// <param name="apply">Indicates that the changes should be applied directly</param>
        public override bool ComputeChanges(bool apply)
        {
            bool retVal = base.ComputeChanges(apply);

            if (retVal)
            {
                Explanation         = new Interpreter.ExplanationPart(Action);
                Explanation.Message = "Action " + Action.Name;
                Interpreter.InterpretationContext context = new Interpreter.InterpretationContext(Instance);
                Changes = new ChangeList();
                Action.GetChanges(context, Changes, Explanation, apply);
                Changes.CheckChanges(Action);
                Message = Explanation.ToString();
            }

            return(retVal);
        }
        /// <summary>
        /// Computes the changes related to this event
        /// </summary>
        /// <param name="apply">Indicates that the changes should be applied directly</param>
        public override bool ComputeChanges(bool apply)
        {
            bool retVal = base.ComputeChanges(apply);

            if (retVal)
            {
                Explanation = new Interpreter.ExplanationPart(Action);
                Explanation.Message = "Action " + Action.Name;
                Interpreter.InterpretationContext context = new Interpreter.InterpretationContext(Instance);
                Changes = new ChangeList();
                Action.GetChanges(context, Changes, Explanation, apply);
                Changes.CheckChanges(Action);
                Message = Explanation.ToString();
            }

            return retVal;
        }