private void DeterminePlugins() { tbPlugins.TabPages.Clear(); CacheItemNode node = (CacheItemNode)file_browser.SelectedNode; foreach (IPlugin p in Plugins.Plugins) { if (p.Classifications != null) { if (p.Classifications.Archives.Length != 0 && !p.Classifications.Archives.Any(node.Archive.Equals)) { continue; } if (p.Classifications.SubArchives.Length != 0 && !p.Classifications.SubArchives.Any(node.SubArchive.Equals)) { continue; } if (p.Classifications.Filenames.Length != 0) { bool found = false; foreach (string s in p.Classifications.Filenames) { if (node.Name.ToLower() == s.ToLower()) { found = true; break; } } if (!found) { continue; } } if (p.Classifications.FileExtensions.Length != 0) { int ext = node.Name.LastIndexOf("."); if (ext == -1) { continue; } string s = node.Name.Substring(ext + 1).ToLower(); bool found = false; foreach (string e in p.Classifications.FileExtensions) { if (e.ToLower() != s) { continue; } found = true; break; } if (!found) { continue; } } } p.Cache = Cache; p.Data = new DataBuffer(GetNodeData(node)); p.Node = node; PluginTabPage page = new PluginTabPage(p.Name, p); foreach (Control c in p.Controls) { page.Controls.Add(c); } if (p.Dominant) { tbPlugins.TabPages.Insert(0, page); } else { tbPlugins.TabPages.Add(page); } } tbPlugins.SelectedIndex = (tbPlugins.TabPages.Count > 0 ? 0 : -1); file_browser.Focus(); tbPlugins_SelectedIndexChanged(this, null); }
private void DeterminePlugins() { tbPlugins.TabPages.Clear(); CacheItemNode node = (CacheItemNode)file_browser.SelectedNode; foreach (IPlugin p in Plugins.Plugins) { if (p.Classifications != null) { if (p.Classifications.Archives.Length != 0 && !p.Classifications.Archives.Any(node.Archive.Equals)) continue; if (p.Classifications.SubArchives.Length != 0 && !p.Classifications.SubArchives.Any(node.SubArchive.Equals)) continue; if (p.Classifications.Filenames.Length != 0) { bool found = false; foreach (string s in p.Classifications.Filenames) { if (node.Name.ToLower() == s.ToLower()) { found = true; break; } } if (!found) continue; } if (p.Classifications.FileExtensions.Length != 0) { int ext = node.Name.LastIndexOf("."); if (ext == -1) continue; string s = node.Name.Substring(ext + 1).ToLower(); bool found = false; foreach (string e in p.Classifications.FileExtensions) { if (e.ToLower() != s) continue; found = true; break; } if (!found) continue; } } p.Cache = Cache; p.Data = new DataBuffer(GetNodeData(node)); p.Node = node; PluginTabPage page = new PluginTabPage(p.Name, p); foreach (Control c in p.Controls) page.Controls.Add(c); if (p.Dominant) tbPlugins.TabPages.Insert(0, page); else tbPlugins.TabPages.Add(page); } tbPlugins.SelectedIndex = (tbPlugins.TabPages.Count > 0 ? 0 : -1); file_browser.Focus(); tbPlugins_SelectedIndexChanged(this, null); }