public void Init(Rect rect, BackendData backendData)
 {
   if (this.m_TreeView != null)
     return;
   this.m_BackendData = backendData;
   TreeViewState treeViewState = new TreeViewState();
   treeViewState.columnWidths = new float[6]
   {
     250f,
     90f,
     93f,
     98f,
     74f,
     78f
   };
   this.m_TreeView = new TreeView(this.m_EditorWindow, treeViewState);
   ITreeViewGUI gui = (ITreeViewGUI) new TestGUI(this.m_TreeView);
   ITreeViewDragging dragging = (ITreeViewDragging) new TestDragging(this.m_TreeView, this.m_BackendData);
   ITreeViewDataSource data = !this.m_Lazy ? (ITreeViewDataSource) new TestDataSource(this.m_TreeView, this.m_BackendData) : (ITreeViewDataSource) new LazyTestDataSource(this.m_TreeView, this.m_BackendData);
   this.m_TreeView.Init(rect, data, gui, dragging);
   this.m_ColumnHeader = new TreeViewColumnHeader();
   this.m_ColumnHeader.columnWidths = treeViewState.columnWidths;
   this.m_ColumnHeader.minColumnWidth = 30f;
   this.m_ColumnHeader.columnRenderer += new System.Action<int, Rect>(this.OnColumnRenderer);
 }
 private void AddVisibleChildrenRecursive(BackendData.Foo source, TreeViewItem dest)
 {
   if (this.IsExpanded(source.id))
   {
     if (source.children == null || source.children.Count <= 0)
       return;
     dest.children = new List<TreeViewItem>(source.children.Count);
     for (int index = 0; index < source.children.Count; ++index)
     {
       BackendData.Foo child = source.children[index];
       dest.children.Add((TreeViewItem) new FooTreeViewItem(child.id, dest.depth + 1, dest, child.name, child));
       ++this.itemCounter;
       this.AddVisibleChildrenRecursive(child, dest.children[index]);
     }
   }
   else
   {
     if (!source.hasChildren)
       return;
     dest.children = new List<TreeViewItem>()
     {
       new TreeViewItem(-1, -1, (TreeViewItem) null, string.Empty)
     };
   }
 }
 private void TestTreeWithCustomItemHeights()
 {
   Rect rect = new Rect(0.0f, 0.0f, this.position.width, this.position.height);
   if (this.m_TreeViewWithCustomHeight == null)
   {
     this.m_BackendData2 = new BackendData();
     this.m_BackendData2.GenerateData(300);
     this.m_TreeViewWithCustomHeight = new TreeViewTestWithCustomHeight((EditorWindow) this, this.m_BackendData2, rect);
   }
   this.m_TreeViewWithCustomHeight.OnGUI(rect);
 }
 private static void GetParentsBelowRecursive(BackendData.Foo item, HashSet<int> parentIDs)
 {
   if (!item.hasChildren)
     return;
   parentIDs.Add(item.id);
   using (List<BackendData.Foo>.Enumerator enumerator = item.children.GetEnumerator())
   {
     while (enumerator.MoveNext())
       BackendData.GetParentsBelowRecursive(enumerator.Current, parentIDs);
   }
 }
Example #5
0
        protected override HashSet <int> GetParentsAbove(int id)
        {
            HashSet <int> intSet = new HashSet <int>();

            for (BackendData.Foo foo = BackendData.FindNodeRecursive(this.m_Backend.root, id); foo != null; foo = foo.parent)
            {
                if (foo.parent != null)
                {
                    intSet.Add(foo.parent.id);
                }
            }
            return(intSet);
        }
Example #6
0
 public HashSet <int> GetParentsBelow(int id)
 {
     BackendData.Foo foo = BackendData.FindItemRecursive(this.root, id);
     if (foo == null)
     {
         return(new HashSet <int>());
     }
     if (this.m_RecursiveFindParentsBelow)
     {
         return(this.GetParentsBelowRecursive(foo));
     }
     return(this.GetParentsBelowStackBased(foo));
 }
 private void AddChildrenRecursive(BackendData.Foo source, TreeViewItem dest)
 {
   if (!source.hasChildren)
     return;
   dest.children = new List<TreeViewItem>(source.children.Count);
   for (int index = 0; index < source.children.Count; ++index)
   {
     BackendData.Foo child = source.children[index];
     dest.children.Add((TreeViewItem) new FooTreeViewItem(child.id, dest.depth + 1, dest, child.name, child));
     ++this.itemCounter;
     this.AddChildrenRecursive(child, dest.children[index]);
   }
 }
 public TreeViewTestWithCustomHeight(EditorWindow editorWindow, BackendData backendData, Rect rect)
 {
   this.m_BackendData = backendData;
   TreeViewState treeViewState = new TreeViewState();
   this.m_TreeView = new TreeView(editorWindow, treeViewState);
   TestGUICustomItemHeights customItemHeights = new TestGUICustomItemHeights(this.m_TreeView);
   TestDragging testDragging = new TestDragging(this.m_TreeView, this.m_BackendData);
   TestDataSource testDataSource1 = new TestDataSource(this.m_TreeView, this.m_BackendData);
   TestDataSource testDataSource2 = testDataSource1;
   System.Action action = testDataSource2.onVisibleRowsChanged + new System.Action(((TreeViewGUIWithCustomItemsHeights) customItemHeights).CalculateRowRects);
   testDataSource2.onVisibleRowsChanged = action;
   this.m_TreeView.Init(rect, (ITreeViewDataSource) testDataSource1, (ITreeViewGUI) customItemHeights, (ITreeViewDragging) testDragging);
   testDataSource1.SetExpanded(testDataSource1.root, true);
 }
        public TreeViewTestWithCustomHeight(EditorWindow editorWindow, BackendData backendData, Rect rect)
        {
            this.m_BackendData = backendData;
            TreeViewState treeViewState = new TreeViewState();

            this.m_TreeView = new TreeView(editorWindow, treeViewState);
            TestGUICustomItemHeights testGUICustomItemHeights = new TestGUICustomItemHeights(this.m_TreeView);
            TestDragging             dragging       = new TestDragging(this.m_TreeView, this.m_BackendData);
            TestDataSource           testDataSource = new TestDataSource(this.m_TreeView, this.m_BackendData);
            TestDataSource           expr_51        = testDataSource;

            expr_51.onVisibleRowsChanged = (Action)Delegate.Combine(expr_51.onVisibleRowsChanged, new Action(testGUICustomItemHeights.CalculateRowRects));
            this.m_TreeView.Init(rect, testDataSource, testGUICustomItemHeights, dragging);
            testDataSource.SetExpanded(testDataSource.root, true);
        }
Example #10
0
 private static void GetParentsBelowRecursive(BackendData.Foo item, HashSet <int> parentIDs)
 {
     if (!item.hasChildren)
     {
         return;
     }
     parentIDs.Add(item.id);
     using (List <BackendData.Foo> .Enumerator enumerator = item.children.GetEnumerator())
     {
         while (enumerator.MoveNext())
         {
             BackendData.GetParentsBelowRecursive(enumerator.Current, parentIDs);
         }
     }
 }
        public TreeViewTestWithCustomHeight(EditorWindow editorWindow, BackendData backendData, Rect rect)
        {
            this.m_BackendData = backendData;
            TreeViewState treeViewState = new TreeViewState();

            this.m_TreeView = new TreeView(editorWindow, treeViewState);
            TestGUICustomItemHeights customItemHeights = new TestGUICustomItemHeights(this.m_TreeView);
            TestDragging             testDragging      = new TestDragging(this.m_TreeView, this.m_BackendData);
            TestDataSource           testDataSource1   = new TestDataSource(this.m_TreeView, this.m_BackendData);
            TestDataSource           testDataSource2   = testDataSource1;

            System.Action action = testDataSource2.onVisibleRowsChanged + new System.Action(((TreeViewGUIWithCustomItemsHeights)customItemHeights).CalculateRowRects);
            testDataSource2.onVisibleRowsChanged = action;
            this.m_TreeView.Init(rect, (ITreeViewDataSource)testDataSource1, (ITreeViewGUI)customItemHeights, (ITreeViewDragging)testDragging);
            testDataSource1.SetExpanded(testDataSource1.root, true);
        }
 private void TestLargeTreesWithFixedItemHeightAndPingingAndFraming()
 {
   Rect rect1 = new Rect(0.0f, 0.0f, this.position.width / 2f, this.position.height);
   Rect rect2 = new Rect(this.position.width / 2f, 0.0f, this.position.width / 2f, this.position.height);
   if (this.m_TreeViewTest == null)
   {
     this.m_BackendData = new BackendData();
     this.m_BackendData.GenerateData(1000000);
     this.m_TreeViewTest = new TreeViewTest((EditorWindow) this, false);
     this.m_TreeViewTest.Init(rect1, this.m_BackendData);
     this.m_TreeViewTest2 = new TreeViewTest((EditorWindow) this, true);
     this.m_TreeViewTest2.Init(rect2, this.m_BackendData);
   }
   this.m_TreeViewTest.OnGUI(rect1);
   this.m_TreeViewTest2.OnGUI(rect2);
   EditorGUI.DrawRect(new Rect(rect1.xMax - 1f, 0.0f, 2f, this.position.height), new Color(0.4f, 0.4f, 0.4f, 0.8f));
 }
        public TreeViewTestWithCustomHeight(EditorWindow editorWindow, BackendData backendData, Rect rect)
        {
            TestDataSource source;

            this.m_BackendData = backendData;
            TreeViewState treeViewState = new TreeViewState();

            this.m_TreeView = new TreeView(editorWindow, treeViewState);
            TestGUICustomItemHeights gui      = new TestGUICustomItemHeights(this.m_TreeView);
            TestDragging             dragging = new TestDragging(this.m_TreeView, this.m_BackendData);

            source = new TestDataSource(this.m_TreeView, this.m_BackendData)
            {
                onVisibleRowsChanged = (Action)Delegate.Combine(source.onVisibleRowsChanged, new Action(gui.CalculateRowRects))
            };
            this.m_TreeView.Init(rect, source, gui, dragging);
            source.SetExpanded(source.root, true);
        }
Example #14
0
        private void TestLargeTreesWithFixedItemHeightAndPingingAndFraming()
        {
            Rect rect  = new Rect(0f, 0f, base.position.width / 2f, base.position.height);
            Rect rect2 = new Rect(base.position.width / 2f, 0f, base.position.width / 2f, base.position.height);

            if (this.m_TreeViewTest == null)
            {
                this.m_BackendData = new BackendData();
                this.m_BackendData.GenerateData(0xf4240);
                bool lazy = false;
                this.m_TreeViewTest = new TreeViewTest(this, lazy);
                this.m_TreeViewTest.Init(rect, this.m_BackendData);
                lazy = true;
                this.m_TreeViewTest2 = new TreeViewTest(this, lazy);
                this.m_TreeViewTest2.Init(rect2, this.m_BackendData);
            }
            this.m_TreeViewTest.OnGUI(rect);
            this.m_TreeViewTest2.OnGUI(rect2);
            EditorGUI.DrawRect(new Rect(rect.xMax - 1f, 0f, 2f, base.position.height), new Color(0.4f, 0.4f, 0.4f, 0.8f));
        }
Example #15
0
        public void Init(Rect rect, BackendData backendData)
        {
            if (this.m_TreeView != null)
            {
                return;
            }
            this.m_BackendData = backendData;
            TreeViewState treeViewState = new TreeViewState();

            treeViewState.columnWidths = new float[]
            {
                250f,
                90f,
                93f,
                98f,
                74f,
                78f
            };
            this.m_TreeView = new TreeView(this.m_EditorWindow, treeViewState);
            ITreeViewGUI        gui      = new TestGUI(this.m_TreeView);
            ITreeViewDragging   dragging = new TestDragging(this.m_TreeView, this.m_BackendData);
            ITreeViewDataSource data;

            if (this.m_Lazy)
            {
                data = new LazyTestDataSource(this.m_TreeView, this.m_BackendData);
            }
            else
            {
                data = new TestDataSource(this.m_TreeView, this.m_BackendData);
            }
            this.m_TreeView.Init(rect, data, gui, dragging);
            this.m_ColumnHeader = new TreeViewColumnHeader();
            this.m_ColumnHeader.columnWidths   = treeViewState.columnWidths;
            this.m_ColumnHeader.minColumnWidth = 30f;
            TreeViewColumnHeader expr_D5 = this.m_ColumnHeader;

            expr_D5.columnRenderer = (Action <int, Rect>)Delegate.Combine(expr_D5.columnRenderer, new Action <int, Rect>(this.OnColumnRenderer));
        }
 private HashSet<int> GetParentsBelowStackBased(BackendData.Foo searchFromThis)
 {
   Stack<BackendData.Foo> fooStack = new Stack<BackendData.Foo>();
   fooStack.Push(searchFromThis);
   HashSet<int> intSet = new HashSet<int>();
   while (fooStack.Count > 0)
   {
     BackendData.Foo foo = fooStack.Pop();
     if (foo.hasChildren)
     {
       intSet.Add(foo.id);
       using (List<BackendData.Foo>.Enumerator enumerator = foo.children.GetEnumerator())
       {
         while (enumerator.MoveNext())
         {
           BackendData.Foo current = enumerator.Current;
           fooStack.Push(current);
         }
       }
     }
   }
   return intSet;
 }
Example #17
0
 public static BackendData.Foo FindItemRecursive(BackendData.Foo item, int id)
 {
     if (item == null)
     {
         return(null);
     }
     if (item.id == id)
     {
         return(item);
     }
     if (item.children == null)
     {
         return(null);
     }
     foreach (BackendData.Foo current in item.children)
     {
         BackendData.Foo foo = BackendData.FindItemRecursive(current, id);
         if (foo != null)
         {
             return(foo);
         }
     }
     return(null);
 }
 public TestDragging(TreeView treeView, BackendData data)
   : base(treeView)
 {
   this.m_BackendData = data;
 }
Example #19
0
 public TestDragging(TreeView treeView, BackendData data) : base(treeView)
 {
     this.m_BackendData = data;
 }
 public void ReparentSelection(BackendData.Foo parentItem, BackendData.Foo insertAfterItem, List<BackendData.Foo> draggedItems)
 {
   using (List<BackendData.Foo>.Enumerator enumerator = draggedItems.GetEnumerator())
   {
     while (enumerator.MoveNext())
     {
       BackendData.Foo current = enumerator.Current;
       current.parent.children.Remove(current);
       current.parent = parentItem;
     }
   }
   if (!parentItem.hasChildren)
     parentItem.children = new List<BackendData.Foo>();
   List<BackendData.Foo> fooList = new List<BackendData.Foo>((IEnumerable<BackendData.Foo>) parentItem.children);
   int index = 0;
   if (parentItem == insertAfterItem)
   {
     index = 0;
   }
   else
   {
     int num = parentItem.children.IndexOf(insertAfterItem);
     if (num >= 0)
       index = num + 1;
     else
       Debug.LogError((object) "Did not find insertAfterItem, should be a child of parentItem!!");
   }
   fooList.InsertRange(index, (IEnumerable<BackendData.Foo>) draggedItems);
   parentItem.children = fooList;
 }
 private void AddChildrenRecursive(BackendData.Foo foo, int numChildren, bool force)
 {
   if (this.IDCounter > this.m_MaxItems || foo.depth >= 12 || !force && (double) Random.value < 0.5)
     return;
   if (foo.children == null)
     foo.children = new List<BackendData.Foo>(numChildren);
   for (int index = 0; index < numChildren; ++index)
     foo.children.Add(new BackendData.Foo("Tud" + (object) this.IDCounter, foo.depth + 1, ++this.IDCounter)
     {
       parent = foo
     });
   if (this.IDCounter > this.m_MaxItems)
     return;
   using (List<BackendData.Foo>.Enumerator enumerator = foo.children.GetEnumerator())
   {
     while (enumerator.MoveNext())
       this.AddChildrenRecursive(enumerator.Current, Random.Range(3, 15), false);
   }
 }
 public LazyTestDataSource(TreeView treeView, BackendData data)
   : base(treeView)
 {
   this.m_Backend = data;
   this.FetchData();
 }
 public static BackendData.Foo FindNodeRecursive(BackendData.Foo item, int id)
 {
   if (item == null)
     return (BackendData.Foo) null;
   if (item.id == id)
     return item;
   if (item.children == null)
     return (BackendData.Foo) null;
   using (List<BackendData.Foo>.Enumerator enumerator = item.children.GetEnumerator())
   {
     while (enumerator.MoveNext())
     {
       BackendData.Foo nodeRecursive = BackendData.FindNodeRecursive(enumerator.Current, id);
       if (nodeRecursive != null)
         return nodeRecursive;
     }
   }
   return (BackendData.Foo) null;
 }
Example #24
0
 public LazyTestDataSource(TreeView treeView, BackendData data) : base(treeView)
 {
     this.m_Backend = data;
     this.FetchData();
 }
 private HashSet<int> GetParentsBelowRecursive(BackendData.Foo searchFromThis)
 {
   HashSet<int> parentIDs = new HashSet<int>();
   BackendData.GetParentsBelowRecursive(searchFromThis, parentIDs);
   return parentIDs;
 }