Esempio n. 1
0
        /// <summary>
        /// Undo this action
        /// </summary>
        public override void Undo()
        {
            if (Range.Rows == -1)
            {
                Logger.Log("remove rows", "attempt to undo removing all rows from the worksheet must it must be have at least one row, operation aborted.");
                return;
            }

            Worksheet.InsertRows(Range.Row, Range.Rows);

            if (backupData == null)
            {
#if DEBUG
                Logger.Log("remove rows", "no backup data");
                Debug.Assert(false, "why no backup data here?");
#else
                return;
#endif // DEBUG
            }

            // restore deleted data
            Worksheet.SetPartialGrid(Range, backupData);

            #region Restore Outlines
#if OUTLINE
            // restore outlines
            if (this.changedOutlines != null)
            {
                foreach (var changedOutlineInfo in this.changedOutlines)
                {
                    changedOutlineInfo.Key.Start = changedOutlineInfo.Value.start;
                    changedOutlineInfo.Key.Count = changedOutlineInfo.Value.count;
                }
            }

            if (this.deletedOutlines != null)
            {
                foreach (var outline in this.deletedOutlines)
                {
                    Worksheet.GroupRows(outline.Start, outline.Count);
                }
            }
#endif // OUTLINE
            #endregion             // Restore Outlines

            #region Restore Named Range
            // restore named ranges
            //if (this.changedNamedRange != null)
            //{
            //	foreach (var changedRangeInfo in this.changedNamedRange)
            //	{
            //		changedRangeInfo.Key.Row = changedRangeInfo.Value.start;
            //		changedRangeInfo.Key.Rows = changedRangeInfo.Value.count;
            //	}
            //}

            if (this.deletedNamedRanges != null)
            {
                foreach (var namedRange in this.deletedNamedRanges)
                {
                    Worksheet.AddNamedRange(namedRange);
                }
            }
            #endregion             // Restore Named Range

            #region Restore Highlight Ranges
            // restore highlight ranges
            //if (this.changedHighlightRanges != null)
            //{
            //	foreach (var changedRangeInfo in this.changedHighlightRanges)
            //	{
            //		changedRangeInfo.Key.Row = changedRangeInfo.Value.start;
            //		changedRangeInfo.Key.Rows = changedRangeInfo.Value.count;
            //	}
            //}

            if (this.deletedHighlightRanges != null)
            {
                foreach (var range in this.deletedHighlightRanges)
                {
                    Worksheet.AddHighlightRange(range);
                }
            }
            #endregion             // Restore Highlight Ranges

#if OUTLINE
            if (this.changedOutlines != null && this.changedOutlines.Count > 0)
            {
                this.Worksheet.UpdateViewportController();
            }
#endif // OUTLINE
        }