コード例 #1
0
ファイル: AlphabetController.cs プロジェクト: digi3e/Emu
        public override void Refresh()
        {
            ArrayList[] groups = new ArrayList[27];

            for (int i = 0; i < groups.Length; i++)
            {
                groups[i] = new ArrayList();
            }

            foreach (XmlNode game in _master)
            {
                string val = XmlBinder.Eval(game, _field);

                if (val.Length == 0)
                {
                    val = "(unnamed)";
                }

                int  i     = 0;
                char first = val.ToUpper()[0];

                if (first >= 'a' && first <= 'z')
                {
                    i = first - 'a' + 1;
                }
                else if (first >= 'A' && first <= 'Z')
                {
                    i = first - 'A' + 1;
                }

                groups[i].Add(game);
            }

            Items.Clear();

            for (int i = 0; i < groups.Length; i++)
            {
                ArrayList group = groups[i];

                if (group.Count == 0)
                {
                    continue;
                }

                string name;

                if (i == 0)
                {
                    name = "#";
                }
                else
                {
                    name = ((char)(i - 1 + 'A')).ToString();
                }

                PodController c = new GameLeafController(_system, group, "description");
                Items.Add(new SimpleItem(name, null, c));
            }
        }
コード例 #2
0
ファイル: FilterController.cs プロジェクト: digi3e/Emu
        public override void Refresh()
        {
            Hashtable hash = new Hashtable();

            foreach (XmlNode game in _master)
            {
                string val = XmlBinder.Eval(game, _field);

                if (val.Length == 0)
                {
                    val = "(n/a)";
                }

                ArrayList group = (ArrayList)hash[val];

                if (group == null)
                {
                    group     = new ArrayList();
                    hash[val] = group;
                }

                group.Add(game);
            }

            Items.Clear();

            foreach (string key in hash.Keys)
            {
                ArrayList group = (ArrayList)hash[key];

                if (group.Count > 20)
                {
                    PodController c = new AlphabetController(_system, group, "description");
                    Items.Add(new SimpleItem(key, null, c));
                }
                else
                {
                    PodController c = new GameLeafController(_system, group, "description");
                    Items.Add(new SimpleItem(key, null, c));
                }
            }

            Items.Sort(new PodItemComparer());
        }
コード例 #3
0
ファイル: GameLeafController.cs プロジェクト: digi3e/Emu
        public override void Refresh()
        {
            Items.Clear();

            foreach (XmlNode game in _master)
            {
                string val = XmlBinder.Eval(game, _field);

                if (val.Length == 0)
                {
                    val = "(unnamed)";
                }

                if (_findClones)
                {
                    XmlNodeList clones = game.SelectNodes("clones/game");
                    if (clones.Count > 0)
                    {
                        ArrayList group = new ArrayList();

                        group.Add(game);
                        foreach (XmlNode clone in clones)
                        {
                            group.Add(clone);
                        }

                        PodController c = new GameLeafController(_system, group, "description", false);
                        Items.Add(new GameItem(_system, game, val, c));

                        continue;
                    }
                }

                Items.Add(new GameItem(_system, game, val));
            }

            Items.Sort(new PodItemComparer());
        }