Пример #1
0
        /// <summary>
        /// Fills the database strip with the local database.xml file.
        /// </summary>
        private void FillDSiDatabaseStrip(BackgroundWorker worker)
        {
            // Set fake items visible and real ones not. Only way to stop buggy enabled stuff.
            SetPropertyThreadSafe(dsiSystemToolStripMenu, false, "Visible");
            SetPropertyThreadSafe(dSiWareToolStripMenu, false, "Visible");

            SetPropertyThreadSafe(dsiFakeSystemToolStripMenu, true, "Visible");
            SetPropertyThreadSafe(dSiWareFakeToolStripMenu, true, "Visible");

            Database databaseObj = new Database();
            databaseObj.LoadDatabaseToStream(Path.Combine(CURRENT_DIR, "dsidatabase.xml"));

            ToolStripMenuItem[] systemItems = databaseObj.LoadDSiSystemTitles();
            for (int a = 0; a < systemItems.Length; a++)
            {
                systemItems[a].DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
                for (int b = 0; b < systemItems[a].DropDownItems.Count; b++)
                {
                    ToolStripMenuItem syslowerentry = (ToolStripMenuItem)systemItems[a].DropDownItems[b];
                    if (syslowerentry.DropDownItems.Count > 0)
                    {
                        syslowerentry.DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
                    }
                }
            }
            Array.Sort(systemItems, delegate(ToolStripMenuItem tsmi1, ToolStripMenuItem tsmi2)
            {
                return tsmi1.Text
                        .Substring(18, tsmi1.Text.Length - 19).CompareTo(tsmi2.Text.Substring(18, tsmi2.Text.Length - 19));
            });
            AddToolStripItemToStrip(dsiSystemToolStripMenu, systemItems);

            SetPropertyThreadSafe(dsiFakeSystemToolStripMenu, false, "Visible");
            SetPropertyThreadSafe(dsiSystemToolStripMenu, true, "Visible");

            Debug.WriteLine("Database: DSiSysTitles added");
            worker.ReportProgress(50);

            ToolStripMenuItem[] dsiWareItems = databaseObj.LoadDsiWareTitles();
            for (int a = 0; a < dsiWareItems.Length; a++)
            {
                dsiWareItems[a].DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
                for (int b = 0; b < dsiWareItems[a].DropDownItems.Count; b++)
                {
                    ToolStripMenuItem lowerentry = (ToolStripMenuItem)dsiWareItems[a].DropDownItems[b];
                    if (lowerentry.DropDownItems.Count > 0)
                    {
                        lowerentry.DropDownItemClicked += new ToolStripItemClickedEventHandler(DatabaseItem_Clicked);
                    }

                }
            }
            Array.Sort(dsiWareItems, delegate(ToolStripMenuItem tsmi1, ToolStripMenuItem tsmi2)
            {
                return tsmi1.Text
                        .Substring(18, tsmi1.Text.Length - 19).CompareTo(tsmi2.Text.Substring(18, tsmi2.Text.Length - 19));
            });
            AddToolStripItemToStrip(dSiWareToolStripMenu, dsiWareItems);

            SetPropertyThreadSafe(dSiWareFakeToolStripMenu, false, "Visible");
            SetPropertyThreadSafe(dSiWareToolStripMenu, true, "Visible");
            Debug.WriteLine("Database: DSiWareTitles added");
            worker.ReportProgress(100);
        }