public async Task ActiveViewInHierarchy() { var controller = new TestController(); await controller.Initialize(null, null); var view = await controller.GetDocumentView(); Assert.AreEqual(view, view.ActiveViewInHierarchy); var attached1 = new DocumentViewContent(c => Task.FromResult <Control> (null)); var attached2 = new DocumentViewContent(c => Task.FromResult <Control> (null)); view.AttachedViews.Add(attached1); view.AttachedViews.Add(attached2); Assert.AreEqual(view, view.ActiveViewInHierarchy); attached1.SetActive(); Assert.AreEqual(attached1, view.ActiveViewInHierarchy); Assert.AreEqual(attached1, attached1.ActiveViewInHierarchy); Assert.AreEqual(attached2, attached2.ActiveViewInHierarchy); attached2.SetActive(); Assert.AreEqual(attached2, view.ActiveViewInHierarchy); Assert.AreEqual(attached1, attached1.ActiveViewInHierarchy); Assert.AreEqual(attached2, attached2.ActiveViewInHierarchy); }
protected override Task <DocumentView> OnInitializeView() { View1.ContentVisibleChanged += (s, a) => View1_VisibleChangeEvents++; View2.ContentVisibleChanged += (s, a) => View2_VisibleChangeEvents++; View3.ContentVisibleChanged += (s, a) => View3_VisibleChangeEvents++; Container.SupportedModes = DocumentViewContainerMode.Tabs | DocumentViewContainerMode.HorizontalSplit | DocumentViewContainerMode.VerticalSplit; Container.CurrentMode = Mode; Container.Views.Add(View1); Container.Views.Add(View2); Container.Views.Add(View3); View2.SetActive(); return(Task.FromResult <DocumentView> (Container)); }
public void ActiveViewInHierarchy2() { var root = new DocumentViewContainer() { Title = "root" }; root.IsRoot = true; Assert.IsNull(root.ActiveViewInHierarchy); Assert.IsNull(root.ActiveView); var attached1 = new DocumentViewContent(c => Task.FromResult <Control> (null)) { Title = "attached1" }; root.AttachedViews.Add(attached1); Assert.IsNull(root.ActiveView); Assert.IsNull(root.ActiveViewInHierarchy); var view1 = new DocumentViewContent(c => Task.FromResult <Control> (null)) { Title = "view1" }; root.Views.Add(view1); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(view1, root.ActiveViewInHierarchy); Assert.AreEqual(view1, view1.ActiveViewInHierarchy); attached1.SetActive(); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(attached1, root.ActiveViewInHierarchy); root.SetActive(); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(view1, root.ActiveViewInHierarchy); var view2 = new DocumentViewContent(c => Task.FromResult <Control> (null)) { Title = "view2" }; root.Views.Add(view2); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(view1, root.ActiveViewInHierarchy); Assert.AreEqual(view2, view2.ActiveViewInHierarchy); var container = new DocumentViewContainer(); root.Views.Add(container); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(view1, root.ActiveViewInHierarchy); Assert.IsNull(container.ActiveViewInHierarchy); var subView1 = new DocumentViewContent(c => Task.FromResult <Control> (null)) { Title = "subView1" }; container.Views.Add(subView1); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(view1, root.ActiveViewInHierarchy); Assert.AreEqual(subView1, container.ActiveView); Assert.AreEqual(subView1, container.ActiveViewInHierarchy); Assert.AreEqual(subView1, subView1.ActiveViewInHierarchy); var subView2 = new DocumentViewContent(c => Task.FromResult <Control> (null)) { Title = "subView2" }; container.Views.Add(subView2); Assert.AreEqual(view1, root.ActiveView); Assert.AreEqual(view1, root.ActiveViewInHierarchy); Assert.AreEqual(subView1, container.ActiveView); Assert.AreEqual(subView1, container.ActiveViewInHierarchy); Assert.AreEqual(subView2, subView2.ActiveViewInHierarchy); container.SetActive(); Assert.AreEqual(container, root.ActiveView); Assert.AreEqual(subView1, root.ActiveViewInHierarchy); Assert.AreEqual(subView1, container.ActiveViewInHierarchy); subView2.SetActive(); Assert.AreEqual(subView2, root.ActiveViewInHierarchy); Assert.AreEqual(subView2, container.ActiveViewInHierarchy); view2.SetActive(); Assert.AreEqual(view2, root.ActiveViewInHierarchy); Assert.AreEqual(subView2, container.ActiveViewInHierarchy); subView1.SetActive(); Assert.AreEqual(view2, root.ActiveViewInHierarchy); Assert.AreEqual(subView1, container.ActiveViewInHierarchy); container.SetActive(); Assert.AreEqual(subView1, root.ActiveViewInHierarchy); Assert.AreEqual(subView1, container.ActiveViewInHierarchy); }