예제 #1
0
 public void Restart(bool isFinish)
 {
     history.AddHistoryItem(new HistoryItem(Game, Code, Step, isFinish));
     DataGridHistory.Items.Clear();
     foreach (HistoryItem hi in history.GetHistoryItems)
     {
         DataGridHistory.Items.Add(hi);
     }
     steps.Clear();
     GenerateNewGame();
 }
예제 #2
0
        public CellSetData PerformMemberAction(PerformMemberActionArgs args)
        {
            if (args != null)
            {
                switch (args.Action)
                {
                case MemberActionType.Expand:
                case MemberActionType.Collapse:
                case MemberActionType.DrillDown:
                case MemberActionType.DrillUp:
                    // Удаляем все элементы истории, стоящие за текущим
                    History.CutRight();
                    HistoryItem clone = null;
                    if (History.CurrentHistoryItem != null)
                    {
                        // Клонируем текущий элемент истории чтобы действие добавлялось уже в клон
                        clone = (HistoryItem)(History.CurrentHistoryItem.Clone());
                    }
                    else
                    {
                        // Добавляем пустой элемент истории
                        HistoryItem first = new HistoryItem();
                        History.AddHistoryItem(first);

                        clone = new HistoryItem();
                    }

                    History.AddHistoryItem(clone);
                    break;
                }

                switch (args.Action)
                {
                case MemberActionType.Expand:
                    ExpandMember(args);
                    break;

                case MemberActionType.Collapse:
                    CollapseMember(args);
                    break;

                case MemberActionType.DrillDown:
                    DrillDownMember(args);
                    break;

                case MemberActionType.DrillUp:
                    DrillUpMember(args);
                    break;
                }
            }
            return(RefreshQuery());
        }
예제 #3
0
파일: Document.cs 프로젝트: juanjp600/cbre
        /// <summary>
        /// Performs the action, adds it to the history stack, and optionally updates the display lists
        /// </summary>
        /// <param name="name">The name of the action, for history purposes</param>
        /// <param name="action">The action to perform</param>
        public void PerformAction(string name, IAction action)
        {
            try {
                action.Perform(this);
            } catch (Exception ex) {
                var st     = new StackTrace();
                var frames = st.GetFrames() ?? new StackFrame[0];
                var msg    = "Action exception: " + name + " (" + action + ")";
                foreach (var frame in frames)
                {
                    var method = frame.GetMethod();
                    msg += "\r\n    " + method.ReflectedType.FullName + "." + method.Name;
                }
                Logging.Logger.ShowException(new Exception(msg, ex), "Error performing action");
            }

            var history = new HistoryAction(name, action);

            History.AddHistoryItem(history);
        }