/// <summary> /// Gets a ResponseBuffer by HistoryTreeNode. /// </summary> /// <param name="node"> A HistoryTreeNode to lookup.</param> /// <returns> A ResponseBuffer type.</returns> // public ResponseBuffer GetHttpSiteData(HistoryTreeNode node) // { // string uriAndPort = string.Empty; // // if ( node.Url.Port == 80 ) // { // uriAndPort = node.Url.Authority + ":" + node.Url.Port; // } // else // { // uriAndPort = node.Url.Authority; // } // // if ( _useCache ) // { // HistoryDiskInfo diskInfo = (HistoryDiskInfo)sitesIndex[uriAndPort + node.Url.AbsolutePath]; // return this.OpenResponseBuffer(diskInfo.Path); // } // else // { // return node.HttpSiteData; // } // } /// <summary> /// Loads the tree. /// </summary> /// <param name="sitesIdx"> The sites index list to load.</param> private void LoadTree(SortedList sitesIdx) { // Root nodes are simple like // asp.net, msdn.microsoft.com, www.mysite.com // they don't include / // add node to tree HistoryTreeNode rootNode=null; int i = 0; while ( i < sitesIndex.Count ) { string key = (string)sitesIndex.GetKey(i); HistoryDiskInfo hdi = (HistoryDiskInfo)sitesIndex[key]; if ( hdi.Type == HistoryDiskInfo.NodeType.Parent ) { // is a root node rootNode = new HistoryTreeNode(key,new Uri("http://" + key),null); rootNode.ImageIndex = this.IconSiteIndex; rootNode.SelectedImageIndex = this.IconSiteIndex; this.Nodes.Add(rootNode); foreach ( HistoryDiskInfo item in hdi.HistoryDiskInfoList ) { // is a child node Uri u = new Uri("http://" + item.Url); HistoryTreeNode newNode = new HistoryTreeNode(u.AbsolutePath,u,null); newNode.ImageIndex = this.IconNodeIndex; newNode.SelectedImageIndex = this.IconNodeIndex; rootNode.Nodes.Add(newNode); } } i++; } }
/// <summary> /// Adds a HistoryDiskInfo. /// </summary> /// <param name="siteUri"> The site uri.</param> /// <param name="siteData"> The ResponseBuffer data.</param> public void AddHistoryNodeDisk(Uri siteUri, ResponseBuffer siteData) { this.SuspendLayout(); //string folderName = string.Empty; string uriAndPort = string.Empty; if ( siteUri.Port == 80 ) { //folderName = siteUri.Authority + siteUri.Port; uriAndPort = siteUri.Authority + ":" + siteUri.Port; } else { //folderName = siteUri.Authority.Replace(":",""); uriAndPort = siteUri.Authority; } // string dir = recentSitesDir + @"\" + folderName; // // if ( !Directory.Exists(dir) ) // { // Directory.CreateDirectory(dir); // } // search index data for site root existence HistoryDiskInfo diskInfo = (HistoryDiskInfo)sitesIndex[uriAndPort]; int index = sitesIndex.IndexOfKey(uriAndPort); // add new to disk if ( diskInfo != null ) { HistoryTreeNode node = (HistoryTreeNode)this.Nodes[index]; // add node to tree HistoryTreeNode tn = new HistoryTreeNode(siteUri.AbsolutePath,siteUri,null); tn.ImageIndex = this.IconNodeIndex; tn.SelectedImageIndex = this.IconNodeIndex; //int i = node.Nodes.IndexOf(tn); HistoryDiskInfo hdi = new HistoryDiskInfo(); hdi.Url = uriAndPort + siteUri.AbsolutePath; if ( !diskInfo.ContainsNodeKey(hdi.Url) ) { node.Nodes.Add(tn); diskInfo.AddHistoryDiskInfo(hdi.Url, hdi); } } else { // add as root node HistoryTreeNode tn = new HistoryTreeNode(uriAndPort,siteUri,null); tn.ImageIndex = this.IconSiteIndex; tn.SelectedImageIndex = this.IconSiteIndex; // add file to disk //string filePath = UpdateRecentSite(dir,siteUri.AbsolutePath,siteData); // add node to tree HistoryTreeNode newNode = new HistoryTreeNode(siteUri.AbsolutePath,siteUri,null); newNode.ImageIndex = this.IconNodeIndex; newNode.SelectedImageIndex = this.IconNodeIndex; tn.Nodes.Add(newNode); int i = tn.Nodes.IndexOf(newNode); HistoryDiskInfo child = new HistoryDiskInfo(); child.Url = uriAndPort + siteUri.AbsolutePath; // add reference to Index data //sitesIndex.Add(uriAndPort + siteUri.AbsolutePath,hdi); this.Nodes.Add(tn); // add root reference to Index data HistoryDiskInfo parent = new HistoryDiskInfo(); parent.Url = uriAndPort; parent.Type = HistoryDiskInfo.NodeType.Parent; parent.AddHistoryDiskInfo(child.Url, child); sitesIndex.Add(uriAndPort, parent); } UpdateIndexData(); this.ResumeLayout(); }