Exemplo n.º 1
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
        }
Exemplo n.º 2
0
        /// <summary>
        /// Vérifie la cohérence des informations rentrées dans les champs au niveau 3 
        /// Enregistre les modifications s'il n'y a pas d'erreur
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConfirmerNiv3_Click(object sender, EventArgs e)
        {
            bool[] tab = M.Calendar.Jours[int.Parse(NduJNiv3.Text) - 1].TabHoraires; //Tableau de disponibilité des activités du jour
            bool[] erreurs = { true, false, false, false,true }; //Tableau d'erreurs
            Jour jourj = M.Calendar.Jours[int.Parse(NduJNiv3.Text) - 1];
            Activite act = new Activite("");

            if (TitreNiv3.Text == "Modifier une activité")
            {
                act = (Activite)ConfirmerNiv3.Tag;
                changerUnePlageHoraire(act, jourj.TabHoraires, true);
            }
            //Vérification de la sélection d'un astronautes
            if (listeAstronautes.CheckedItems.Count == 0)
            {
                erreurs[4] = false;
            }

            for (int i = 0; i < tab.Length; i++)
            {
                if (tab[i])
                {
                    erreurs[1] = true;
                }
            }

            //Vérification de la sélection d'une activité
            if (ItemSelect.Text != "")
            {
                erreurs[3] = true;
            }

            //Si l'heure (minutes comprises) de fin est antérieure à l'heure (minutes comprises) de début
            if (HDebut.Text != "" && MinDebut.Text != "" && HFin.Text != "" && MinFin.Text != "" && (int.Parse(HDebut.Text) * 6 + int.Parse(MinDebut.Text) / 10 <= int.Parse(HFin.Text) * 6 + int.Parse(MinFin.Text) / 10 - 1))
            {
                erreurs[2] = true;

                for (int i = int.Parse(HDebut.Text) * 6 + int.Parse(MinDebut.Text) / 10; i < int.Parse(HFin.Text) * 6 + int.Parse(MinFin.Text) / 10 ; i++)
                {
                    if (!tab[i])//Si tab[i] est false, alors au moins un des emplacements demandés n'est pas disponible
                    {
                        erreurs[0] = false;
                    }
                }
            }

            if (erreurs[0] && erreurs[1] && erreurs[2] && erreurs[3] && erreurs[4]) //Si pas d'erreurs
            {
                List<Astronaute> liA = new List<Astronaute>();

                for (int i = 0; i < listeAstronautes.Items.Count; i++)
                {
                    if (listeAstronautes.Items[i].Checked == true)
                    {
                        for (int j = 0; j < M.ListAstr.Count; j++)
                        {
                            if (M.ListAstr[j].Nom == listeAstronautes.Items[i].Text)
                            {
                                if (i == j)
                                {
                                    liA.Add(M.ListAstr[j]);
                                }
                            }

                        }
                    }
                }

                if (TitreNiv3.Text == "Modifier une activité")
                {
                    act.Nom = ItemSelect.Text;
                    act.Debut = new Heure(int.Parse(HDebut.Text), int.Parse(MinDebut.Text));
                    act.Fin = new Heure(int.Parse(HFin.Text), int.Parse(MinFin.Text));

                    act.TexteDescriptif = texteDescriptif.Text;
                    act.ListAstronaute = liA;
                    act.Gps = new Lieu(NomLieu.Text, new Point(int.Parse(CoordX.Text), int.Parse(CoordY.Text)));
                }
                else //Création d'une activité et ajout à la liste pour le jour concerné
                {
                    act = new Activite(ItemSelect.Text, new Heure(int.Parse(HDebut.Text), int.Parse(MinDebut.Text)), new Heure(int.Parse(HFin.Text), int.Parse(MinFin.Text)), texteDescriptif.Text, liA, new Lieu(NomLieu.Text, new Point(int.Parse(CoordX.Text), int.Parse(CoordY.Text))));
                    jourj.ListeActivites.Add(act);
                }

                changerUnePlageHoraire(act, jourj.TabHoraires, false); //L'activité occupe maintenant la plage horaire
                CreerBoutons(int.Parse(NduJNiv3.Text)); //On crée le bouton associé

                Niveau3.Hide();
                Niveau2.Show();

                if (int.Parse(NumeroJour.Text) < int.Parse(JourCourantMission.Text))
                {
                    CreerActivite.Enabled = false;
                }
                else
                {
                    CreerActivite.Enabled = true;
                }
            }
            //En cas d'erreur, on affiche des messages spécifiques et il est impossible d'enregistrer l'activité
            else if (!erreurs[4])
            {
                MessageBox.Show("Veuillez sélectionner au moins un astronaute", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (!erreurs[3])
            {
                MessageBox.Show("Veuillez sélectionner une activité", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (!erreurs[2])
            {
                MessageBox.Show("La plage horaire selectionnée n'est pas valide", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (!erreurs[1])
            {
                MessageBox.Show("Aucune plage horaire disponible dans la journée, supprimez d'abord des activités", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else if (!erreurs[0])
            {
                MessageBox.Show("La plage horaire selectionnée n'est pas disponible", "Attention", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Parcours l'ensemble des activités du jour et attribue la disponibilité des crénaux (true ou false)
 /// Cette fonction permet aux activités de ne pas se chevaucher
 /// </summary>
 /// <param name="act"></param>
 /// <param name="tab">tableau contenant les disponibilités des crénaux</param>
 /// <param name="disponible"></param>
 private void changerUnePlageHoraire(Activite act, bool[] tab, bool disponible)
 {
     for (int i = act.Debut.Heures * 6 + act.Debut.Minutes / 10; i < act.Fin.Heures * 6 + act.Fin.Minutes / 10; i++)
     {
         tab[i] = disponible;
     }
 }
Exemplo n.º 4
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;
        }
Exemplo n.º 5
0
 public void AddAct(Activite A)
 {
     _listeActivites.Add(A);
 }
Exemplo n.º 6
0
 public void RemoveAct(Activite A)
 {
     _listeActivites.Remove(A);
 }
Exemplo n.º 7
0
        // lecture xml et generation objets
        public void chargerXml(XmlDocument xmlDoc, Mission M)
        {
            XmlNodeList nodelistMission = xmlDoc.GetElementsByTagName("Mission");

            List<Astronaute> listAstronautes = new List<Astronaute>();
            List<CategorieActivite> listCategorieActivite = new List<CategorieActivite>();

            foreach (XmlNode nodeMission in nodelistMission)
            {

                XmlNodeList nodelistAstronautes = nodeMission.SelectNodes("Liste_Astronaute");
                foreach (XmlNode nodeAstronautes in nodelistAstronautes)
                {
                    XmlNodeList nodelistAstronaute = xmlDoc.GetElementsByTagName("Astronaute");

                    string nom = "";
                    int id = 0;

                    foreach (XmlNode nodeAstronaute in nodelistAstronaute)
                    {
                        id = int.Parse(nodeAstronaute.SelectSingleNode("Id").InnerText);
                        nom = nodeAstronaute.SelectSingleNode("Nom").InnerText;
                        Astronaute a = new Astronaute(id, nom);
                        M._listAstronautes.Add(a);
                    }
                }

                XmlNodeList nodelistCategorieActivite = nodeMission.SelectNodes("Liste_Catégorie_Activité");
                foreach (XmlNode nodeCategorieActivite in nodelistCategorieActivite)
                {
                    XmlNodeList nodelisteCategorieActivite = nodeCategorieActivite.SelectNodes("Catégorie_Activité");

                    foreach (XmlNode nodeCategoriedActivite in nodelisteCategorieActivite)
                    {
                        string nom = "";

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

                        nom = nodeCategoriedActivite.SelectSingleNode("NomCatégorie").InnerText;

                        XmlNodeList nodelistActivite = nodeCategoriedActivite.SelectNodes("Liste_Activité");
                        foreach (XmlNode nodeActivite in nodelistActivite)
                        {
                            string nome = "";

                            XmlNodeList nodelisteActivite = nodeActivite.SelectNodes("Activité");
                            foreach (XmlNode nodeActivitee in nodelisteActivite)
                            {
                                nome = nodeActivitee.SelectSingleNode("NomActivité").InnerText;
                                Activite act = new Activite(nome);
                                listActivite.Add(act);
                            }

                        }

                        CategorieActivite c = new CategorieActivite(nom, listActivite);
                        M.AddCategorie(c);
                    }
                }
            }

            M.Listcat = Listcat;
        }