private RepositoryTreeNode EnsureServerOf(Uri uri) { Uri serverUri; RepositoryTreeNode serverNode = FindServer(uri, out serverUri); if (serverNode == null) { serverNode = new RepositoryTreeNode(serverUri, true); serverNode.Text = serverUri.ToString(); if (IconMapper != null) { serverNode.IconIndex = IconMapper.GetSpecialIcon(SpecialIcon.Server); } if (serverNode.Text.ToString() == "file:///") { serverNode.IconIndex = IconMapper.GetSpecialFolderIcon(Environment.SpecialFolder.MyComputer); serverNode.Text = RepositoryStrings.LocalRepositories; } SortedAddNode(RootNode.Nodes, serverNode); if (!RootNode.IsExpanded) { RootNode.Expand(); } } return(serverNode); }
/// <summary> /// The ensure the repository root /// </summary> /// <param name="uri">Always the repository root</param> /// <returns></returns> private RepositoryTreeNode EnsureRoot(Uri uri) { EnsureServerOf(uri); Uri serverUri; Uri nUri = SvnTools.GetNormalizedUri(uri); RepositoryTreeNode serverNode = FindServer(uri, out serverUri); if (serverNode == null) { return(null); } if (!serverNode.IsExpanded && IsLoading(nUri)) { serverNode.LoadExpand(); } foreach (RepositoryTreeNode reposRoot in serverNode.Nodes) { if (reposRoot.NormalizedUri == nUri) { return(reposRoot); } } // uri is always the repos root here RepositoryTreeNode rtn = new RepositoryTreeNode(new SvnOrigin(uri, uri)); rtn.Text = uri.GetComponents(UriComponents.Path, UriFormat.SafeUnescaped); if (IconMapper != null) { rtn.IconIndex = IconMapper.GetSpecialIcon(SpecialIcon.Db); } serverNode.Nodes.Add(rtn); if (!_nodeMap.ContainsKey(rtn.NormalizedUri)) { _nodeMap.Add(rtn.NormalizedUri, rtn); } if (!serverNode.IsExpanded || IsLoading(nUri)) { serverNode.LoadExpand(); } return(rtn); }
private RepositoryTreeNode CreateRootNode() { RepositoryTreeNode rootNode; rootNode = new RepositoryTreeNode(null, true); rootNode.Text = RepositoryStrings.RootName; if (IconMapper != null) { rootNode.IconIndex = IconMapper.GetSpecialIcon(SpecialIcon.Servers); } SortedAddNode(Nodes, rootNode); return(rootNode); }