예제 #1
0
 public void EnsureNodeTracked(HierarchicalNode node)
 {
     if (!this.expansionStates.ContainsKey(node))
     {
         this.expansionStates.Add(node, node.IsExpanded);
     }
 }
예제 #2
0
 public SearchTransaction(string filter, HierarchicalNode root)
 {
     this.blockExpansionRecording = true;
     this.expansionStates         = new Dictionary <HierarchicalNode, bool>();
     this.GetExpansionStatesForProjectItems(root.Children);
     this.UpdateFilterString(filter);
 }
예제 #3
0
 protected override void ExpandAllParents()
 {
     for (HierarchicalNode i = base.Parent; i != null && i is ProjectItemNode; i = i.Parent)
     {
         i.IsExpanded = true;
     }
 }
예제 #4
0
        public override int CompareTo(HierarchicalNode treeItem)
        {
            ProjectNode projectNode = treeItem as ProjectNode;

            if (projectNode == null)
            {
                return(0);
            }
            return(AlphabeticThenNumericComparer.Compare(this.DisplayName, projectNode.DisplayName, CultureInfo.CurrentCulture));
        }
예제 #5
0
 internal void OnRenamed()
 {
     if (base.Parent != null)
     {
         HierarchicalNode parent = base.Parent;
         parent.RemoveChild(this);
         parent.AddChild(this);
     }
     base.OnPropertyChanged("DisplayName");
     base.OnPropertyChanged("FullPath");
     base.OnPropertyChanged("ToolTip");
 }
예제 #6
0
 private void ProjectItemNode_IsExpandedChanged(object sender, EventArgs e)
 {
     if (base.ProjectPane.SearchTransaction != null)
     {
         HierarchicalNode hierarchicalNode = sender as HierarchicalNode;
         if (hierarchicalNode.IsExpanded)
         {
             base.ProjectPane.SearchTransaction.ExpandNode(hierarchicalNode);
             return;
         }
         base.ProjectPane.SearchTransaction.CollapseNode(hierarchicalNode);
     }
 }
예제 #7
0
        private void ProjectItem_ParentChanged(object sender, EventArgs e)
        {
            IProjectItem parent = this.ProjectItem.Parent;

            if (parent == null)
            {
                base.Parent.RemoveChild(this);
                this.projectNode.AddChild(this);
                return;
            }
            HierarchicalNode hierarchicalNode = this.projectNode.FindItemNode(parent);

            base.Parent.RemoveChild(this);
            hierarchicalNode.AddChild(this);
        }
예제 #8
0
 private void ToggleNode(HierarchicalNode node, bool isExpanded)
 {
     if (!this.blockExpansionRecording)
     {
         this.expansionStates[node] = isExpanded;
         ProjectItemNode projectItemNode = node as ProjectItemNode;
         if (projectItemNode != null)
         {
             if (projectItemNode.Parent != null)
             {
                 this.ToggleNode(projectItemNode.Parent, true);
                 return;
             }
             this.ToggleNode(projectItemNode.ProjectNode, true);
         }
     }
 }
예제 #9
0
        internal virtual void AddItemNode(IProjectItem item)
        {
            ProjectItemNode  projectItemNode  = ProjectItemNode.Create(item, base.ProjectPane, this);
            HierarchicalNode hierarchicalNode = this;

            if (item.Parent != null)
            {
                IProjectItem parent = item.Parent;
                if (parent != null)
                {
                    ProjectItemNode projectItemNode1 = this.FindItemNode(parent);
                    if (projectItemNode1 != null)
                    {
                        hierarchicalNode = projectItemNode1;
                    }
                }
            }
            hierarchicalNode.AddChild(projectItemNode);
        }
예제 #10
0
        public override int CompareTo(HierarchicalNode treeItem)
        {
            ProjectItemNode projectItemNode = treeItem as ProjectItemNode;

            if (projectItemNode == null)
            {
                return(-1);
            }
            if (this.ProjectItem is FolderStandIn)
            {
                return(-1);
            }
            if (projectItemNode.ProjectItem is FolderStandIn)
            {
                return(1);
            }
            IDocumentType item = base.Services.DocumentTypeManager().DocumentTypes[DocumentTypeNamesHelper.Folder];

            if (this.ProjectItem.DocumentType == item)
            {
                if (projectItemNode.ProjectItem.DocumentType != item)
                {
                    return(-1);
                }
                return(AlphabeticThenNumericComparer.Compare(this.DisplayName, projectItemNode.DisplayName, CultureInfo.CurrentCulture));
            }
            if (projectItemNode.ProjectItem.DocumentType == item)
            {
                return(1);
            }
            try
            {
                if (Microsoft.Expression.Framework.Documents.PathHelper.GetSafeExtension(this.FullPath) == Microsoft.Expression.Framework.Documents.PathHelper.GetSafeExtension(projectItemNode.FullPath))
                {
                    int num = AlphabeticThenNumericComparer.Compare(Path.GetFileNameWithoutExtension(this.FullPath), Path.GetFileNameWithoutExtension(projectItemNode.FullPath), CultureInfo.CurrentCulture);
                    return(num);
                }
            }
            catch (ArgumentException argumentException)
            {
            }
            return(ProjectPathHelper.CompareForDisplay(this.DisplayName, projectItemNode.DisplayName, CultureInfo.CurrentCulture));
        }
예제 #11
0
        public void ExpressInterestInNode(HierarchicalNode node)
        {
            ProjectItemNode projectItemNode = node as ProjectItemNode;

            if (projectItemNode != null)
            {
                HierarchicalNode parent = projectItemNode.Parent;
                if (parent == null)
                {
                    if (!projectItemNode.ProjectItem.IsReference)
                    {
                        parent = projectItemNode.ProjectNode;
                    }
                    else
                    {
                        parent = projectItemNode.ProjectNode.ReferencesFolder;
                    }
                }
                this.ExpandNode(parent);
            }
        }
예제 #12
0
 public override int CompareTo(HierarchicalNode treeItem)
 {
     return(0);
 }
예제 #13
0
 public void ExpandNode(HierarchicalNode node)
 {
     this.ToggleNode(node, true);
 }
예제 #14
0
 public void CollapseNode(HierarchicalNode node)
 {
     this.ToggleNode(node, false);
 }
예제 #15
0
 protected void AddSortedItemNode(HierarchicalNode node)
 {
     base.AddChild(node);
 }