public override void StartResearch()
        {
            stepNumber = 0;
            if (DrawObj != null)
            {
                DrawObj.StepNumber = stepNumber;
            }

            Debug.Assert(MWindow.Start.Content.ToString() == "Start");
            MWindow.Start.Content = "Stop";


            // *tmp
            //StepCount = 3;
            //StepCount = 4;

            MWindow.Initial.IsEnabled  = false;
            MWindow.Final.IsEnabled    = true;
            MWindow.Next.IsEnabled     = true;
            MWindow.Previous.IsEnabled = false;
            MWindow.Save.IsEnabled     = true;

            if ((bool)MWindow.Flat.IsChecked)
            {
                if (DrawObj != null)
                {
                    HierarchicDraw hierDraw = DrawObj as HierarchicDraw;
                    hierDraw.IsFlat = true;
                }
            }

            DrawObj.DrawInitial();
        }
        public void OnInitialButtonClick()
        {
            stepNumber                     = 0;
            DrawObj.StepNumber             = stepNumber;
            MWindow.TextBoxStepNumber.Text = stepNumber.ToString();
            MWindow.mainCanvas.Children.Clear();
            DrawObj.DrawInitial();

            MWindow.Initial.IsEnabled  = false;
            MWindow.Final.IsEnabled    = true;
            MWindow.Next.IsEnabled     = true;
            MWindow.Previous.IsEnabled = false;
        }
 public override void OnWindowSizeChanged()
 {
     if (DrawObj != null)
     {
         if (stepNumber == 0 && StepCount != 0)
         {
             DrawObj.DrawInitial();
         }
         else if (stepNumber == StepCount - 1 && StepCount != 0)
         {
             DrawObj.DrawFinal();
         }
         else
         {
             DrawObj.DrawInitial();
             for (int i = 0; i <= stepNumber; ++i)
             {
                 DrawObj.DrawNext(i);
             }
         }
     }
 }