Example #1
0
        public PileLimitée <ICommande> m_commandesRétablissbles = new PileLimitée <ICommande>(5); // Commandes pour le Retablir/Ctrl+Y

        private Document()
        {
            try
            {
                // Recuperer le document
                Récupérer();
                try
                {
                    // Connecter la base des données
                    RequeteSQL.Connecterbd(strAccessConn);
                    // Chaque fabrique crée les colonnes du type d'article associé dans la base de donnée
                    IEnumerator <IFabriqueCommande> fab = LesFabriques.GetEnumerator();
                    while (fab.MoveNext())
                    {
                        fab.Current.CréerCommandeSQLPourCréerColonnes(RequeteSQL.m_bd).Exécuter();
                    }
                }
                catch {
                    AvertirCritique("La lecture de « {0} » a échoué.\n" +
                                    "Le programme va continuer sans utiliser la base des données.\n" +
                                    "Les données sont toujours sauvegardées dans le document « {1} »",
                                    NomFichierBD, NomFichierPhilatélie);
                }
            }
            catch
            {
                AvertirCritique("La lecture de « {0} » a échoué.\n" +
                                "Le programme va s'arrêter.\n",
                                NomFichierPhilatélie);

                Environment.Exit(0);  // Permet d'arrêter le programme directement.
            }
        }
        public static void CompléterLeMenu(ToolStripMenuItem p_menu, EventHandler p_eh)
        {
            IEnumerator <IFabriqueCommande> f = LesFabriques.GetEnumerator();

            f.MoveNext();
            string descriptionPourMenu;

            while (f.Current != null)
            {
                descriptionPourMenu = TrouverNomPourMenuItems(f.Current.DescriptionPourMenu());

                var tsi = new ToolStripMenuItem(descriptionPourMenu, null, p_eh);
                tsi.Tag = f.Current;
                p_menu.DropDownItems.Add(tsi);
                descriptionPourMenu = "";
                f.MoveNext();
            }
        }
        public static void CompléterLeSousMenu(ToolStripMenuItem p_menu, EventHandler p_eh)
        {
            IFabriqueCommande f = null; // fabrique qui correspond a item
            IEnumerable <ArticlePhilatélique> derniersArticles = Document.Instance.TousLesArticles();

            foreach (ToolStripMenuItem i in p_menu.DropDownItems)
            {
                IEnumerator <IFabriqueCommande> fs = LesFabriques.GetEnumerator();
                List <string> motifsExistants      = new List <string>();

                fs.MoveNext();
                bool continuer = true;
                while (fs.Current != null && continuer)
                {
                    string nomType = i.Tag.GetType().ToString();
                    f = LesFabriques.TrouverFabrique(nomType);
                    if (f != null)
                    {
                        break;
                    }
                    fs.MoveNext();
                }

                foreach (var article in Document.Instance.TousLesArticles().Reverse())
                {
                    if (!motifsExistants.Contains(article.Motif))
                    {
                        string descriptionPourMenu = TrouverNomPourMenuItems(f.DescriptionPourMenu() + " " + article.Motif);
                        motifsExistants.Add(article.Motif);
                        var tsi = new ToolStripMenuItem(descriptionPourMenu, null, p_eh, article.Motif + "@" + article.Parution);
                        tsi.Tag = f;
                        i.DropDownItems.Add(tsi);
                    }
                }
            }
        }