public void MainForm_Load_InitializationCode(MainForm mf)
        {
            mf.MyViewDataFactory.RootViewData = new ViewData(mf.MyDataFile)
            {
                ViewType = ViewDataType.Splitter
            };
            mf.RootViewData.SetViewPointer(mf.RootSplitterViewPointer);
            SplitterView.BuildFromViewData(mf, mf.RootViewData);
            (mf.RootViewData.View as Control).Name = "RootSplitterView";
            ClockListView clv = mf.MyClocksViewProvider.GetExistingOrNewClockListView();

            mf.RootViewData.SetFirstChild(new ViewData(mf.MyDataFile)
            {
                ViewType = ViewDataType.List,
                View     = clv
            });
            clv.MyViewData = mf.RootViewData.GetFirstChild();

            mf.InitializeLastFocusedTimersView();

            //RootSplitterViewPointer.Value = SplitterView.BuildFromViewData(this, RootViewData) as SplitterView;

            //SplitterView.SubscribeViewData(RootViewData, RootViewData.View);

            //mf.UpdateRootSplitterViewControl();
        }
        public void ViewDataTest_ViewChanged()
        {
            // Arrange
            cs_timed_silver.Properties.Settings.Default.AutoOpenLastFile = "No";
            var mf = new MainForm();

            mf.OnLoadCreateBasicViewDataWithView = false;
            mf.OnLoadUpdateViewType = false;

            mf.Show();

            Application.DoEvents();

            var vd      = new ViewData(mf.MyDataFile);
            var newView = new ClockListView(mf);

            Application.DoEvents();

            bool correct = false;

            vd.ViewChanged += delegate(object sender, EventArgs e)
            {
                correct = vd.View == newView;
            };
            vd.View = newView;

            // Act
            Application.DoEvents();

            // Assert
            Assert.IsTrue(correct, "ViewChanged called with the new view not set.");
        }
        // TODO: use ExpectedException attribute
        // test that an exception is raised
        // when there are more than 1 ViewData-s with the same View property value or
        // when there are more than 2 ViewData-s with the same ParentViewData property value
        //[TestMethod]
        public void ViewDataTest29()
        {
            throw new NotImplementedException();

            // Arrange
            cs_timed_silver.Properties.Settings.Default.AutoOpenLastFile = "No";
            var mf = new MainForm();

            mf.Show();

            ViewData vdParent = new ViewData(mf.MyDataFile)
            {
                ViewType = ViewDataType.Splitter
            };
            ISplitterPanel view = new ClockListView(mf);

            var vd1 = new ViewData(mf.MyDataFile)
            {
                Orientation    = Orientation.Horizontal,
                ParentViewData = vdParent,
                View           = view,
                ViewType       = ViewDataType.List,
                ZoomPercent    = 170
            };
            var vd2 = new ViewData(mf.MyDataFile)
            {
                Orientation    = Orientation.Horizontal,
                ParentViewData = vdParent,
                View           = view,
                ViewType       = ViewDataType.DataGrid,
                ZoomPercent    = 170
            };
            var vd3 = new ViewData(mf.MyDataFile)
            {
                Orientation    = Orientation.Horizontal,
                ParentViewData = vdParent,
                View           = view,
                ViewType       = ViewDataType.GroupList,
                ZoomPercent    = 170
            };

            // Act
            Application.DoEvents();

            // Assert
            Assert.AreEqual(Orientation.Horizontal, vd2.Orientation);
            Assert.AreEqual(vdParent, vd2.ParentViewData);
            Assert.AreEqual(view, vd2.View);
            Assert.AreEqual(ViewDataType.List, vd2.ViewType);
            Assert.AreEqual(170, vd2.ZoomPercent);
            //Assert.IsNull(vd.View, "View passed with CloneWithoutChildren method but remains in the original ViewData.");
        }
        public void ViewDataTest_MergeFrom()
        {
            // Arrange
            cs_timed_silver.Properties.Settings.Default.AutoOpenLastFile = "No";
            var mf = new MainForm();

            mf.OnLoadCreateBasicViewDataWithView = false;
            mf.OnLoadUpdateViewType = false;

            mf.Show();

            Application.DoEvents();



            var vdParent = new ViewData(mf.MyDataFile)
            {
                ViewType = ViewDataType.Splitter
            };
            ISplitterPanel view = new ClockListView(mf);

            var vd = new ViewData(mf.MyDataFile)
            {
                Orientation    = Orientation.Vertical,
                ParentViewData = null,
                View           = null,
                ViewType       = ViewDataType.DataGrid,
                ZoomPercent    = 150
            };
            var vd2 = new ViewData(mf.MyDataFile)
            {
                Orientation    = Orientation.Horizontal,
                ParentViewData = vdParent,
                View           = view,
                ViewType       = ViewDataType.List,
                ZoomPercent    = 170
            };

            vd.MergeFrom(vd2);

            // Act
            Application.DoEvents();

            // Assert
            Assert.AreEqual(Orientation.Horizontal, vd.Orientation);
            Assert.AreEqual(vdParent, vd.ParentViewData);
            Assert.AreEqual(view, vd.View);
            Assert.AreEqual(ViewDataType.List, vd.ViewType);
            Assert.AreEqual(170, vd.ZoomPercent);
            Assert.IsNull(vd2.View, "View passed with MergeFrom method but remains in the original ViewData.");
        }