예제 #1
0
        //Lecture XML et génération objets
        public void chargerXml(XmlDocument xmlDoc, Mission M)
        {
            XmlNodeList nodelistCalendrier = xmlDoc.GetElementsByTagName("Calendrier_Martien");  //On crée une liste de tous les éléments dans tout le document qui portent le nom de Calendrier_Martien

            CalendrierMartien c = new CalendrierMartien();

            foreach (XmlNode nodeCalendrier in nodelistCalendrier)  //Pour tout les noeuds présents dans notre liste d'élements (ici on a juste un élément)
            {
                c.Debut = DateTime.Parse(nodeCalendrier.SelectSingleNode("Début").InnerText);  //La date de début du calendrier est égale à ce qui est contenu dans le seul noeud portant le nom début
                c.Fin = DateTime.Parse(nodeCalendrier.SelectSingleNode("Fin").InnerText);
                c.Last= DateTime.Parse(nodeCalendrier.SelectSingleNode("Last").InnerText);
                c.Day = int.Parse(nodeCalendrier.SelectSingleNode("Jour").InnerText);
                c.Heure = int.Parse(nodeCalendrier.SelectSingleNode("Heure").InnerText);
                c.Minute = int.Parse(nodeCalendrier.SelectSingleNode("Minute").InnerText);
                c.Seconde = int.Parse(nodeCalendrier.SelectSingleNode("Seconde").InnerText);

                XmlNodeList nodelistJours = nodeCalendrier.SelectNodes("Liste_Jour");
                foreach (XmlNode nodeJour in nodelistJours)
                {
                    XmlNodeList nodelistJour = nodeJour.SelectNodes("Jour");
                    foreach (XmlNode jour in nodelistJour)
                    {
                        string CompteRendu = "";
                        int num = 0;
                        bool[] tabHoraires = new bool[148];

                        Jour j = new Jour(CompteRendu, num, tabHoraires);

                        j.CompteRendu = jour.SelectSingleNode("Compte_Rendu").InnerText;
                        j.Numero = int.Parse(jour.SelectSingleNode("Numéro").InnerText);
                        j.Sortie = bool.Parse(jour.SelectSingleNode("Sortie").InnerText);

                        List<Activite> listeActivites = new List<Activite>();

                        XmlNodeList nodelistActivite = jour.SelectNodes("Liste_Activité");
                        foreach (XmlNode nodeActivite in nodelistActivite)
                        {
                            XmlNodeList nodelisteActivite = nodeActivite.SelectNodes("Activité");

                            foreach (XmlNode Activite in nodelisteActivite)
                            {
                                Heure debut = new Heure(0, 0);
                                Heure fin = new Heure(0, 0);
                                Lieu gps = new Lieu();
                                List<Astronaute> listAstronaute = new List<Astronaute>();

                                Activite a = new Activite("");

                                a.Nom = Activite.SelectSingleNode("Nom").InnerText;
                                debut.Heures = int.Parse(Activite.SelectSingleNode("Heure_Debut").InnerText);
                                fin.Heures = int.Parse(Activite.SelectSingleNode("Heure_Fin").InnerText);
                                debut.Minutes = int.Parse(Activite.SelectSingleNode("Minute_Debut").InnerText);
                                fin.Minutes = int.Parse(Activite.SelectSingleNode("Minute_Fin").InnerText);

                                a.Debut = new Heure(debut.Heures, debut.Minutes);
                                a.Fin = new Heure(fin.Heures, fin.Minutes);

                                gps = Lieu.Parse(Activite.SelectSingleNode("Lieu"));
                                a.Gps = gps;

                                List<Astronaute> listAstr = new List<Astronaute>();

                                XmlNodeList nodelistAstronaute = Activite.SelectNodes("Liste_Astronaute");
                                foreach (XmlNode nodeAstronaute in nodelistAstronaute)
                                {
                                    string nomAst = "";
                                    int id = 0;
                                    XmlNodeList nodeAstronautee = nodeAstronaute.SelectNodes("Astronaute");
                                    foreach (XmlNode nodeAstro in nodeAstronautee)
                                    {
                                        id = int.Parse(nodeAstro.SelectSingleNode("Id").InnerText);
                                        nomAst = nodeAstro.SelectSingleNode("Nom").InnerText;
                                        Astronaute ast = new Astronaute(id, nomAst);
                                        listAstr.Add(ast);
                                    }
                                }
                                a.ListAstronaute = listAstr;
                                a.TexteDescriptif = Activite.SelectSingleNode("Texte_Descriptif").InnerText;
                                listeActivites.Add(a);
                            }
                        }

                        j.ListeActivites = listeActivites;

                            XmlNodeList nodelistTabHoraire = jour.SelectNodes("Tableau_Horaire");
                            foreach (XmlNode nodeListeLibre in nodelistTabHoraire)
                            {
                                XmlNodeList nodelistLibre = nodeListeLibre.SelectNodes("Libre");
                                int i = 0;
                                foreach (XmlNode nodeLibre in nodelistLibre)
                                {
                                    tabHoraires[i] = bool.Parse(nodeLibre.InnerText);
                                    i++;
                                }
                            }

                            j.TabHoraires = tabHoraires;

                        c.Jours.Add(j);
                    }
                }
            }
            M.Calendar = c;
        }
예제 #2
0
        //INITIALISATION DE LA MISSION//
        /// <summary>
        /// Ici sont chargés les fichiers XML et instanciés les objets de la classe "Mission"
        /// </summary>
        public GestionMission()
        {
            InitializeComponent();
            try
            {
                xmlDoc.Load(@"..\\..\\..\\sauvegarde1.xml");
                M.chargerXml(xmlDoc, M);

                xmlDoc2.Load(@"..\\..\\..\\sauvegarde2.xml");
                M.chargerXml2(xmlDoc2, M);

                M.Calendar.MiseAJour();//Pour remettre les pendules à l'heure

                Maj(new Object(), new EventArgs());
            }
            catch
            {
                MessageBox.Show("Initialisation Mission", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

                // Initialisation des paramètres de base pour une mission

                CalendrierMartien c = new CalendrierMartien();

                List<Activite> VieCourante_act = new List<Activite>();
                Activite manger = new Activite("Eating");
                Activite dormir = new Activite("Sleeping");
                Activite divertissement = new Activite("Entertainment");
                Activite privé = new Activite("Private");
                Activite ctrlSante = new Activite("Health control");
                Activite actmedical = new Activite("Medical act");
                VieCourante_act.Add(manger);
                VieCourante_act.Add(dormir);
                VieCourante_act.Add(divertissement);
                VieCourante_act.Add(privé);
                VieCourante_act.Add(ctrlSante);
                VieCourante_act.Add(actmedical);
                CategorieActivite VieCourante = new CategorieActivite("Living", VieCourante_act);

                List<Activite> Science_act = new List<Activite>();
                Activite exploCost = new Activite("Exploration Space suit");
                Activite exploVeh = new Activite("Exploration Vehicule");
                Activite briefing = new Activite("Briefing");
                Activite debriefing = new Activite("Debriefing");
                Activite Expint = new Activite("Inside experiment");
                Activite Expext = new Activite("Outside experiment");
                Science_act.Add(exploCost);
                Science_act.Add(exploVeh);
                Science_act.Add(briefing);
                Science_act.Add(debriefing);
                Science_act.Add(Expint);
                Science_act.Add(Expext);
                CategorieActivite Science = new CategorieActivite("Science", Science_act);

                List<Activite> Maintenance_act = new List<Activite>();
                Activite nettoyage = new Activite("Cleaning");
                Activite LSSair = new Activite("LSS air system");
                Activite LSSeau = new Activite("LSS water system");
                Activite LSSnour = new Activite("LSS food system");
                Activite powsyst = new Activite("Power systems");
                Activite comb = new Activite("Space suit");
                Activite autre = new Activite("Other");
                Maintenance_act.Add(nettoyage);
                Maintenance_act.Add(LSSair);
                Maintenance_act.Add(LSSeau);
                Maintenance_act.Add(LSSnour);
                Maintenance_act.Add(powsyst);
                Maintenance_act.Add(comb);
                Maintenance_act.Add(autre);
                CategorieActivite Maintenance = new CategorieActivite("Maintenance", Maintenance_act);

                List<Activite> Communication_act = new List<Activite>();
                Activite RecMess = new Activite("Sending message");
                Activite EncMess = new Activite("Receiving message");
                Communication_act.Add(RecMess);
                Communication_act.Add(EncMess);
                CategorieActivite Communication = new CategorieActivite("Communication", Communication_act);

                List<Activite> Reparation_act = new List<Activite>();
                Activite LSS = new Activite("LSS");
                Activite communication = new Activite("Communication");
                Activite propSyst = new Activite("Propulsion systems");
                Activite habitation = new Activite("Habitat");
                Activite vehicule = new Activite("Vehicule");
                Reparation_act.Add(LSS);
                Reparation_act.Add(powsyst);
                Reparation_act.Add(communication);
                Reparation_act.Add(propSyst);
                Reparation_act.Add(habitation);
                Reparation_act.Add(comb);
                Reparation_act.Add(vehicule);
                CategorieActivite Reparation = new CategorieActivite("Reparation", Reparation_act);

                List<Activite> Emergency_act = new List<Activite>();
                Activite urgence = new Activite("Emergency");
                Emergency_act.Add(urgence);
                CategorieActivite Urgence = new CategorieActivite("Emergency");

                //Journée type par défaut :
                for (int i = 1; i < 501; i++)
                {
                    Jour j = new Jour(i);

                    j.AddAct(new Activite("Sleeping", new Heure(0, 0), new Heure(7, 0), "Un repos bien mérité !"));
                    j.AddAct(new Activite("Eating", new Heure(7, 0), new Heure(8, 0), "Manger c'est important"));
                    j.AddAct(new Activite("Private", new Heure(8, 0), new Heure(12, 0), ""));
                    j.AddAct(new Activite("Eating", new Heure(12, 0), new Heure(14, 0), "Manger c'est important"));
                    j.AddAct(new Activite("Private", new Heure(14, 0), new Heure(19, 0), ""));
                    j.AddAct(new Activite("Eating", new Heure(19, 0), new Heure(21, 0), "Manger c'est important"));
                    j.AddAct(new Activite("Private", new Heure(21, 0), new Heure(23, 0), ""));
                    j.AddAct(new Activite("Sleeping", new Heure(23, 0), new Heure(24, 40), "Un repos bien mérité !"));

                    c.AddJours(j);
                }

                //Ajout du calendrier et des activités à la mission :

                M.Calendar = c;

                M.AddCategorie(VieCourante);
                M.AddCategorie(Science);
                M.AddCategorie(Maintenance);
                M.AddCategorie(Communication);
                M.AddCategorie(Reparation);
                M.AddCategorie(Urgence);

                // Initialisation des astronautes :

                List<Astronaute> ListAtr = new List<Astronaute>();
                Astronautes InitAstr = new Astronautes();

                InitAstr.ShowDialog();

                M.ListAstr = InitAstr.Astro();
                InitAstr.BringToFront();
            }
            timer1.Start();
            dureMission.Maximum = 500;
            trackBar1.Maximum = 9; //Permet l'affichage des jours de 50 en 50
            trackBar1_Scroll(new Object(), new EventArgs()); //Pour différencier les jours d'un scroll à l'autre
        }
예제 #3
0
 public void AddJours(Jour J)
 {
     _Jours.Add(J);
 }