예제 #1
0
        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);
        }
예제 #2
0
        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);
        }