Example #1
0
 public override void Undo(TreemapGenerator oTreemapGenerator)
 {
     this.AssertValid();
     base.Undo(oTreemapGenerator);
     oTreemapGenerator.Clear();
     oTreemapGenerator.Nodes.Add(this.m_oInnerNode);
 }
Example #2
0
 /// <summary>
 /// Undoes this zoom action.
 /// </summary>
 ///
 /// <param name="oTreemapGenerator">
 /// TreemapGenerator owned by the TreemapControl.
 /// </param>
 public override void Undo(TreemapGenerator oTreemapGenerator)
 {
     AssertValid();
     base.Undo(oTreemapGenerator);
     oTreemapGenerator.Clear();
     oTreemapGenerator.Nodes.Add(m_oOriginalTopLevelNode);
 }
        //*************************************************************************
        //  Methods
        //*************************************************************************
        public TreemapPanel(Form parent)
        {
            //set parent for callback
            m_ParentForm = parent;

            // Create the treemap drawing engine.
            m_TreemapGenerator = new TreemapGenerator();

            // We want to do owner drawing, so handle the DrawItem event.
            m_TreemapGenerator.DrawItem +=
                new TreemapGenerator.TreemapDrawItemEventHandler(DrawItem);

            m_Graphics = null;
            m_nodes = new ArrayList();

            // Setup the treemap
            InitTree();

            // Avoid flicker while drawing.  According to "Windows Forms
            // Programming in C#," the following three styles are all required.
            this.SetStyle(ControlStyles.DoubleBuffer, true);
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.UserPaint, true);

            // Force the panel to be redrawn when it's resized.
            this.ResizeRedraw = true;
        }
Example #4
0
 /// <summary>
 /// Undoes this zoom action.
 /// </summary>
 ///
 /// <param name="oTreemapGenerator">
 /// TreemapGenerator owned by the TreemapControl.
 /// </param>
 ///
 /// <remarks>
 /// This must be overridden in the derived class, which should call this
 /// base method first and then repopulate the treemap to complete the undo.
 /// </remarks>
 public virtual void Undo(TreemapGenerator oTreemapGenerator)
 {
     AssertValid();
     if (m_oParentOfZoomedNode != null)
     {
         Debug.Assert(oTreemapGenerator.Nodes.Count == 1);
         oTreemapGenerator.Nodes[0].PrivateSetParent(m_oParentOfZoomedNode);
     }
 }
Example #5
0
        /// <summary>
        /// Redoes this zoom action.
        /// </summary>
        ///
        /// <param name="oTreemapGenerator">
        /// TreemapGenerator owned by the TreemapControl.
        /// </param>
        ///
        /// <remarks>
        /// This must be overridden in the derived class, which should call this
        /// base method first and then repopulate the treemap to complete the
        /// reversal.
        /// </remarks>
        public void Redo(TreemapGenerator oTreemapGenerator)
        {
            AssertValid();
            Nodes nodes = oTreemapGenerator.Nodes;

            if (m_oZoomedNode == null)
            {
                m_oZoomActionHistoryList.RedoOriginalTopLevel(oTreemapGenerator);
                return;
            }
            oTreemapGenerator.Clear();
            nodes.Add(m_oZoomedNode);
        }
Example #6
0
        public void Redo(TreemapGenerator oTreemapGenerator)
        {
            this.AssertValid();
            Nodes nodes = oTreemapGenerator.Nodes;

            if (this.m_oZoomedNode == null)
            {
                this.m_oZoomActionHistoryList.RedoOriginalTopLevel(oTreemapGenerator);
            }
            else
            {
                oTreemapGenerator.Clear();
                nodes.Add(this.m_oZoomedNode);
            }
        }
Example #7
0
        /// <summary>
        /// Repopulates the treemap with its original top-level nodes.
        /// </summary>
        ///
        /// <param name="oTreemapGenerator">
        /// TreemapGenerator owned by the TreemapControl.
        /// </param>
        ///
        /// <remarks>
        /// Do not call this if <see cref="M:Microsoft.Research.CommunityTechnologies.TreemapNoDoc.ZoomActionHistoryList.SetOriginalTopLevelInfo(Microsoft.Research.CommunityTechnologies.Treemap.Node[],System.Single)" /> has not been
        /// called.
        /// </remarks>
        public void RedoOriginalTopLevel(TreemapGenerator oTreemapGenerator)
        {
            Debug.Assert(oTreemapGenerator != null);
            AssertValid();
            oTreemapGenerator.Clear();
            Nodes nodes = oTreemapGenerator.Nodes;

            Debug.Assert(m_aoOriginalTopLevelNodes != null);
            Debug.Assert(m_aoOriginalTopLevelNodes.Length > 0);
            Debug.Assert(m_fOriginalTopLevelEmptySpaceSizeMetric != float.MinValue);
            oTreemapGenerator.BeginUpdate();
            Node[] aoOriginalTopLevelNodes = m_aoOriginalTopLevelNodes;
            foreach (Node node in aoOriginalTopLevelNodes)
            {
                nodes.Add(node);
            }
            nodes.EmptySpace.SizeMetric = m_fOriginalTopLevelEmptySpaceSizeMetric;
            oTreemapGenerator.EndUpdate();
        }
Example #8
0
        public void RedoOriginalTopLevel(TreemapGenerator oTreemapGenerator)
        {
            Debug.Assert(oTreemapGenerator != null);
            this.AssertValid();
            oTreemapGenerator.Clear();
            Nodes nodes = oTreemapGenerator.Nodes;

            Debug.Assert(this.m_aoOriginalTopLevelNodes != null);
            Debug.Assert(this.m_aoOriginalTopLevelNodes.Length > 0);
            Debug.Assert(this.m_fOriginalTopLevelEmptySpaceSizeMetric != -3.40282347E+38f);
            oTreemapGenerator.BeginUpdate();
            Node[] aoOriginalTopLevelNodes = this.m_aoOriginalTopLevelNodes;
            for (int i = 0; i < aoOriginalTopLevelNodes.Length; i++)
            {
                Node node = aoOriginalTopLevelNodes[i];
                nodes.Add(node);
            }
            nodes.EmptySpace.SizeMetric = this.m_fOriginalTopLevelEmptySpaceSizeMetric;
            oTreemapGenerator.EndUpdate();
        }
Example #9
0
 public override void Undo(TreemapGenerator oTreemapGenerator)
 {
     this.AssertValid();
     base.Undo(oTreemapGenerator);
     this.m_oZoomActionHistoryList.RedoOriginalTopLevel(oTreemapGenerator);
 }