public void Restore(TreeMapPane pane)
            {
                if (m_SelectedItem != null)
                {
                    if (pane.m_TreeMap.HasMetric(m_SelectedItem))
                    {
                        pane.OpenMetricData(m_SelectedItem, true);
                    }
                    else
                    {
                        pane.ShowAllObjects(m_SelectedItem, true);
                    }
                }
                else if (m_GroupName != null)
                {
                    Treemap.Group group = pane.m_TreeMap.FindGroup(m_GroupName);

                    if (group != null)
                    {
                        pane.OnClickGroup(group);
                    }
                    else
                    {
                        pane.ShowAllObjects(null, true);
                    }
                }

                pane.m_EventListener.OnRepaint();
            }
            public History(TreeMapPane pane)
            {
                Mode = pane.m_UIState.CurrentMode;

                if (pane.m_TreeMap.SelectedItem != null)
                {
                    m_SelectedItem = pane.m_TreeMap.SelectedItem._metric;
                    m_GroupName    = m_SelectedItem.GetGroupName();
                }
                else if (pane.m_TreeMap.SelectedGroup != null)
                {
                    m_GroupName = pane.m_TreeMap.SelectedGroup._name;
                }
            }