示例#1
0
 private void HandleExpandChanging(object sender, JetListViewNodeEventArgs e)
 {
     if (!e.Node.Expanded)
     {
         _lastExpandingNode = e.Node;
     }
 }
示例#2
0
        public bool FindResourceNode(IResource res)
        {
            ArrayList parentStack = new ArrayList();
            IResource parent      = res;

            do
            {
                parentStack.Insert(0, parent);
                parent = parent.GetLinkProp(_parentProp);
                if (parent == null)
                {
                    return(false);
                }
            } while(parent != _rootResource);

            JetListViewNode node = null;

            foreach (IResource parentRes in parentStack)
            {
                node = _listView.NodeCollection.NodeFromItem(node, parentRes);
                if (node == null)
                {
                    break;
                }

                if (parentRes == res)
                {
                    return(true);
                }

                node.Expanded = true;
            }
            return(false);
        }
示例#3
0
        [Test] public void ClickWithNoSelection()
        {
            JetListViewNode item = _nodeCollection.Add("Item1");

            _model.HandleMouseDown(null, Keys.None);
            Assert.IsFalse(_model.IsNodeFocused(item));
        }
示例#4
0
        public bool AcceptNode(JetListViewNode node)
        {
            IResource res = (IResource)node.Data;

            if (res.Type == FilterManagerProps.ConditionResName ||
                res.Type == FilterManagerProps.ConditionTemplateResName)
            {
                return(UnusedConditions.IndexOf(res.Id) >= 0);
            }
            else
            if (res.Type == FilterManagerProps.ConditionGroupResName)
            {
                IResourceList condInGroup = res.GetLinksOfType(FilterManagerProps.ConditionResName, Core.Props.Parent).Union
                                                (res.GetLinksOfType(FilterManagerProps.ConditionTemplateResName, Core.Props.Parent));
                foreach (IResource cond in condInGroup)
                {
                    string appResType = cond.GetStringProp(Core.Props.ContentType);
                    if (ResourceTypeHelper.IsResourceTypeActive(appResType) &&
                        ResTypesIntersect(appResType, UsedResTypes))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
示例#5
0
        [Test] public void RowBounds()
        {
            _nodeCollection.Add("Test");
            _nodeCollection.Add("Test2");
            _groupProvider.SetGroup("Test2", "Test");

            IEnumerator enumerator = _groupCollection.GetFullEnumerator();

            enumerator.MoveNext();
            GroupHeaderNode groupHeaderNode = (GroupHeaderNode)enumerator.Current;

            enumerator.MoveNext();
            JetListViewNode testNode = (JetListViewNode)enumerator.Current;

            enumerator.MoveNext();
            JetListViewNode test2Node = (JetListViewNode)enumerator.Current;

            int startY, endY;

            Assert.IsTrue(_rowListRenderer.GetRowBounds(groupHeaderNode, out startY, out endY));
            Assert.AreEqual(0, startY);
            Assert.AreEqual(10, endY);

            Assert.IsTrue(_rowListRenderer.GetRowBounds(testNode, out startY, out endY));
            Assert.AreEqual(10, startY);
            Assert.AreEqual(30, endY);

            Assert.IsTrue(_rowListRenderer.GetRowBounds(test2Node, out startY, out endY));
            Assert.AreEqual(30, startY);
            Assert.AreEqual(50, endY);
        }
示例#6
0
        [Test] public void TopNodeOverwrite()
        {
            _nodeCollection.Add("Test");
            _nodeCollection.Add("Test2");
            _groupProvider.SetGroup("Test2", "Test");

            IEnumerator enumerator = _groupCollection.GetFullEnumerator();

            enumerator.MoveNext();
            GroupHeaderNode groupHeaderNode = (GroupHeaderNode)enumerator.Current;

            enumerator.MoveNext();
            JetListViewNode testNode = (JetListViewNode)enumerator.Current;

            enumerator.MoveNext();
            JetListViewNode test2Node = (JetListViewNode)enumerator.Current;

            enumerator = _groupCollection.GetDirectionalEnumerator(test2Node, MoveDirection.Down);
            // this could overwrite top node of group to test2Node, and subsequent iteration would
            // return incorrect results
            enumerator.MoveNext();

            enumerator = _groupCollection.GetDirectionalEnumerator(groupHeaderNode, MoveDirection.Down);
            VerifyGroupHeader(enumerator, "Test", true);
            VerifyNode(enumerator, "Test");
        }
示例#7
0
        public bool SelectResource(IResource res)
        {
            if (res == null)
            {
                return(true);
            }

            JetListViewNode node = _listView.NodeCollection.NodeFromItem(res);

            if (node == null)
            {
                if (!FindResourceNode(res))
                {
                    return(false);
                }
                node = _listView.NodeCollection.NodeFromItem(res);
            }
            if (node != null && !node.FiltersAccept)
            {
                return(false);
            }

            if (_listView.Selection.Count == 1 && _listView.Selection [0] == res)
            {
                return(true);
            }
            _listView.Selection.SelectSingleItem(res);
            return(true);
        }
示例#8
0
        [Test] public void CategoriesInWorkspace()
        {
            IResource category1 = CategoryManager.CreateCategory("Category1", Core.CategoryManager.RootCategory);
            IResource category2 = CategoryManager.CreateCategory("Category2", category1);
            IResource category3 = CategoryManager.CreateCategory("Category3", Core.CategoryManager.RootCategory);
            IResource category4 = CategoryManager.CreateCategory("Category4", category3);

            _workspaceManager.AddResourceToWorkspaceRecursive(_workspace, category1);
            _workspaceManager.AddResourceToWorkspace(_workspace, category3);

            _treePane.RootResource = Core.ResourceTreeManager.ResourceTreeRoot;
            _treePane.Populate();
            _treePane.SetActiveWorkspace(_workspace);
            Assert.AreEqual(1, _treePane.ResourceTree.JetListView.Nodes.Count);
            JetListViewNode categoriesNode = _treePane.ResourceTree.JetListView.Nodes [0];

            Assert.AreEqual("Categories", categoriesNode.Data.ToString());

            categoriesNode.Expanded = true;
            Assert.AreEqual(2, categoriesNode.Nodes.Count);

            JetListViewNode cat1Node = categoriesNode.Nodes [0];

            Assert.AreEqual("Category1", cat1Node.Data.ToString());
            cat1Node.Expanded = true;
            Assert.AreEqual(1, cat1Node.Nodes.Count);

            JetListViewNode cat3Node = categoriesNode.Nodes [1];

            Assert.AreEqual("Category3", cat3Node.Data.ToString());
            cat3Node.Expanded = true;
            Assert.IsFalse(cat3Node.Nodes [0].FiltersAccept);
        }
示例#9
0
        [Test] public void TestMouseDown()
        {
            JetListViewNode node = _nodeCollection.Add("Test");

            _rowRenderer.HandleMouseDown(node, 10, 20, MouseButtons.Left, Keys.None);
            Assert.AreEqual(new Point(10, 3), _previewColumn.LastMouseDownPoint);
        }
示例#10
0
        private static JetListViewNode AddListViewNode(ChildNodeCollection nodes, ConversationNode node)
        {
            JetListViewNode lvNode = nodes.Add(node.Resource);

            node.LvNode = lvNode;
            return(node.LvNode);
        }
示例#11
0
        [Test] public void CompressIndent()  // OM-8539
        {
            SetupTreeStructureColumn();
            MockJetListViewColumn col = new MockJetListViewColumn();

            col.Width     = 20;
            col.FixedSize = true;
            _columnCollection.Add(col);

            MockJetListViewColumn col2 = new MockJetListViewColumn();

            col2.Width = 30;
            _columnCollection.Add(col2);

            MockJetListViewColumn col3 = new MockJetListViewColumn();

            col3.Width = 30;
            _columnCollection.Add(col3);

            JetListViewNode node = _nodeCollection.Add("Test");

            _rowRenderer.DrawRow(null, new Rectangle(0, 0, 100, 20), node, RowState.None);
            Assert.AreEqual(new Rectangle(20, 0, 20, 20), col.LastDrawItemRect);

            JetListViewNode child = _nodeCollection.Add("Child", node);

            _rowRenderer.DrawRow(null, new Rectangle(0, 0, 100, 20), child, RowState.None);
            Assert.AreEqual(new Rectangle(40, 0, 10, 20), col.LastDrawItemRect);
            Assert.AreEqual(new Rectangle(50, 0, 30, 20), col3.LastDrawItemRect);
        }
示例#12
0
        public void RemoveWrongParent()
        {
            JetListViewNode node = _nodeCollection.Add("Item1", null);

            _nodeCollection.Add("Item11", node);
            _nodeCollection.Remove("Item11", null);
        }
示例#13
0
        [Test] public void VirtualChildren()
        {
            JetListViewNode node = _nodeCollection.Add("Item1");

            node.HasChildren = true;
            Assert.AreEqual(CollapseState.Collapsed, node.CollapseState);
        }
示例#14
0
        [Test] public void RemoveItem()
        {
            JetListViewNode node = _nodeCollection.Add("Item1", null);

            _nodeCollection.Remove("Item1", null);
            Assert.AreEqual(0, _nodeCollection.Nodes.Count);
        }
示例#15
0
        public override string GetToolTip(JetListViewNode node, Rectangle rc, ref bool needPlace)
        {
            IResource res     = (IResource)node.Data;
            string    toolTip = null;

            if (_itemToolTipCallback != null)
            {
                toolTip = _itemToolTipCallback(node.Data);
            }

            RichText richText = null;

            if (OwnerControl != null && OwnerControl.AutoToolTips)
            {
                richText = GetRichText(res);
            }
            if (richText != null && richText.GetSize().Width > rc.Width)
            {
                if (toolTip == null || toolTip.Length == 0)
                {
                    toolTip = richText.Text;
                }
                else
                {
                    toolTip = richText.Text + " (" + toolTip + ")";
                }
            }
            else
            {
                needPlace = false;
            }
            return(toolTip);
        }
示例#16
0
        [Test] public void LastItem()
        {
            JetListViewNode node1  = _nodeCollection.Add("Item1", null);
            JetListViewNode node3  = _nodeCollection.Add("Item2", null);
            JetListViewNode node22 = _nodeCollection.Add("Item22", node3);

            Assert.AreEqual(node22, _nodeCollection.LastNode);
        }
示例#17
0
        [Test] public void NodeLevel()
        {
            JetListViewNode node  = _nodeCollection.Add("Item1");
            JetListViewNode node2 = _nodeCollection.Add("Item11", node);

            Assert.AreEqual(0, node.Level);
            Assert.AreEqual(1, node2.Level);
        }
示例#18
0
        [Test] public void NodeIndexer()
        {
            JetListViewNode node1  = _nodeCollection.Add("Item1", null);
            JetListViewNode node11 = _nodeCollection.Add("Item11", node1);

            Assert.AreEqual(node1, _nodeCollection.Nodes [0]);
            Assert.AreEqual(node11, _nodeCollection.Nodes [0].Nodes [0]);
        }
示例#19
0
        [Test] public void TestDrawRow()
        {
            Rectangle       rc   = new Rectangle(0, 0, 100, 27);
            JetListViewNode node = _nodeCollection.Add("Test");

            _rowRenderer.DrawRow(null, rc, node, RowState.None);
            Assert.AreEqual(new Rectangle(0, 17, 100, 10), _previewColumn.LastDrawItemRect);
        }
示例#20
0
 public IEnumerator EnumerateItemsBackward(JetListViewNode node)
 {
     if (node == null)
     {
         node = _jetListView.Nodes[0];
     }
     return(_jetListView.NodeCollection.EnumerateNodesBackward(node));
 }
示例#21
0
        [Test] public void NodeAddedEvent()
        {
            _nodeCollection.NodeAdded += new JetListViewNodeEventHandler(HandleNodeEvent);
            JetListViewNode node = _nodeCollection.Add("Item1", null);

            Assert.AreEqual(1, _eventNodes.Count);
            Assert.AreEqual(node, _eventNodes [0]);
        }
示例#22
0
        [Test] public void TestDirectionalEnumeratorFromNode()
        {
            JetListViewNode testNode   = _nodeCollection.Add("Test");
            IEnumerator     enumerator = _groupCollection.GetDirectionalEnumerator(testNode, MoveDirection.Down);

            VerifyNode(enumerator, "Test");
            Assert.IsFalse(enumerator.MoveNext());
        }
示例#23
0
        [Test] public void HandleMouseDown()
        {
            _nodeCollection.Add("Item1", null);
            JetListViewNode item2 = _nodeCollection.Add("Item2", null);

            _rowListRenderer.HandleMouseDown(10, 30, MouseButtons.Left, Keys.None);
            Assert.AreEqual(new Point(10, 13), _rowRenderer.LastMouseDownPoint);
            Assert.AreEqual(item2, _rowRenderer.LastMouseDownNode);
        }
示例#24
0
        [Test] public void InvalidateOnChildCountChange()
        {
            JetListViewNode node = _nodeCollection.Add("Parent");

            _rowListRenderer.Invalidate += new InvalidateEventHandler(_rowListRenderer_Invalidate);
            _nodeCollection.Add("Child", node);

            Assert.AreEqual(1, _rowInvalidates.Count);
        }
示例#25
0
        [Test] public void GetRowAt()
        {
            JetListViewNode item  = _nodeCollection.Add("Item1", null);
            JetListViewNode item2 = _nodeCollection.Add("Item2", null);

            Assert.AreEqual(item, _rowListRenderer.GetRowAt(10));
            Assert.AreEqual(item2, _rowListRenderer.GetRowAt(20));
            Assert.IsNull(_rowListRenderer.GetRowAt(40));
        }
示例#26
0
        private void VerifyNode(IEnumerator enumerator, object data)
        {
            Assert.IsTrue(enumerator.MoveNext());
            Assert.IsNotNull(enumerator.Current, "Expected node but found null");
            JetListViewNode itemNode = enumerator.Current as JetListViewNode;

            Assert.IsNotNull(itemNode, "Expected JetListViewNode but found " + enumerator.Current.ToString());
            Assert.AreEqual(data, itemNode.Data);
        }
示例#27
0
        [Test] public void NoSelectionChangeOnKeyUp()
        {
            JetListViewNode item1 = _nodeCollection.Add("Item1");

            _model.HandleKeyDown(Keys.Down);
            _model.SelectionStateChanged += new ViewNodeStateChangeEventHandler(OnSelectionStateChanged);
            _model.HandleKeyDown(Keys.Down);
            Assert.AreEqual(0, _selectionStateChanges.Count);
        }
示例#28
0
        [Test] public void NoSelectionChangeOnClickSelected()
        {
            JetListViewNode item = _nodeCollection.Add("Item1", null);

            _model.HandleMouseDown(item, Keys.None);
            _model.SelectionStateChanged += new ViewNodeStateChangeEventHandler(OnSelectionStateChanged);
            _model.HandleMouseDown(item, Keys.None);
            Assert.AreEqual(0, _selectionStateChanges.Count);
        }
示例#29
0
        [Test] public void MouseSelect()
        {
            JetListViewNode item = _nodeCollection.Add("Item1", null);

            Assert.IsFalse(_model.IsNodeSelected(item));
            _model.HandleMouseDown(item, Keys.None);
            Assert.IsTrue(_model.IsNodeSelected(item));
            Assert.IsTrue(_model.IsNodeFocused(item));
        }
示例#30
0
        [Test] public void ProcessEndKeyWithNoSelection()
        {
            _nodeCollection.Add("Item1");
            JetListViewNode item2 = _nodeCollection.Add("Item2");

            _model.HandleKeyDown(Keys.End);
            Assert.IsTrue(_model.IsNodeSelected(item2));
            Assert.IsTrue(_model.IsNodeFocused(item2));
        }