예제 #1
0
        protected void GetStartIndex(SharpTreeNode node, out int start, out int end)
        {
            EnsureChildrenFiltered();
            for (int i = 0; i < Children.Count; i++)
            {
                if (node.GetType() == Children[i].GetType())
                {
                    start = i;
                    for (i++; i < Children.Count; i++)
                    {
                        if (node.GetType() != Children[i].GetType())
                        {
                            break;
                        }
                    }
                    end = i;
                    return;
                }
            }

            IList <Type> typeOrder = ChildTypeOrder;

            if (typeOrder != null)
            {
                int typeIndex = typeOrder.IndexOf(node.GetType());
                Debug.Assert(typeIndex >= 0);
                if (typeIndex >= 0)
                {
                    Type prevType = null;
                    for (int i = 0; i < Children.Count; i++)
                    {
                        var type = Children[i].GetType();
                        if (prevType == type)
                        {
                            continue;
                        }
                        prevType = type;
                        int index = typeOrder.IndexOf(type);
                        Debug.Assert(index >= 0);
                        if (typeIndex < index)
                        {
                            start = end = i;
                            return;
                        }
                    }
                }
            }

            start = end = Children.Count;
        }
예제 #2
0
 protected override bool IsVisible(SharpTreeNode node)
 {
     return(ILSpyPackage.ActiveHandler != null && ILSpyPackage.ActiveHandler.TargetObject != null && node != null && !(node.GetType().Name.Contains("AnalyzedTypeTreeNode")));
 }