예제 #1
0
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="lieuAModifier">Le lieu à modifier lors de la sélection</param>
        /// <param name="textBoxAModifier">Le textBox à modifier lors de la sélection</param>
        public SelectionCarte(Lieu lieuAModifier, TextBox textBoxAModifier)
        {
            InitializeComponent();

            this.lieuAModifier    = lieuAModifier;
            this.textBoxAModifier = textBoxAModifier;
        }
예제 #2
0
        public void EqualsTest()
        {
            Lieu l = new Lieu(-60, 80);
            Lieu l2 = new Lieu(-60, 80);
            Lieu l3 = new Lieu(60, -80);

            Assert.IsTrue(l.Equals(l2), "Les lieux devraient être égaux");
            Assert.IsFalse(l.Equals(l3), "Les lieux ne devraient pas être égaux");
        }
예제 #3
0
        /// <summary>
        /// Permet d'afficher les coordonnées, près de la souris
        /// </summary>
        /// <param name="sender">Objet source</param>
        /// <param name="e">Evènement</param>
        private void map_MouseMove(object sender, MouseEventArgs e)
        {
            label1.Location = new Point(e.X + 20, e.Y - 20);

            int x = e.X, y = e.Y;

            Lieu.convertirPosition(ref x, ref y);

            label1.Text = x + ";" + y;
        }
예제 #4
0
 /// <summary>
 /// Constructeur par copie
 /// </summary>
 /// <param name="a">Une activité</param>
 public Activite(Activite a)
 {
     typeActivite = a.typeActivite;
     description  = a.description;
     etat         = a.etat;
     heureDebut   = a.heureDebut;
     heureFin     = a.heureFin;
     saveFichier  = new List <Activite>();
     lieu         = a.lieu;
     numero       = ++nbActivite;
 }
예제 #5
0
 /// <summary>
 /// Constructeur paramétré
 /// </summary>
 /// <param name="typeActivite">Type de l'Activite</param>
 /// <param name="description">Description de l'Activite</param>
 /// <param name="deb">Date de début de l'Activite</param>
 /// <param name="fin">Date de fin de l'Activite</param>
 /// <param name="lieu">Lieu de l'Activite</param>
 public Activite(TypeActivite typeActivite, String description, TimeMartien deb, TimeMartien fin, Lieu lieu)
 {
     this.typeActivite = typeActivite;
     this.description  = description;
     etat            = new Futur();
     this.heureDebut = deb;
     this.heureFin   = fin;
     saveFichier     = new List <Activite>();
     this.lieu       = lieu;
     numero          = ++nbActivite;
 }
예제 #6
0
        public override bool Equals(object obj)
        {
            Lieu l = obj as Lieu;

            if (l != null)
            {
                if (l.x == this.x)
                {
                    if (l.y == this.y)
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }
예제 #7
0
        /// <summary>
        /// Permet de procéder aux modifications
        /// </summary>
        /// <param name="sender">Objet source</param>
        /// <param name="e">Evènement</param>
        private void ok_Click(object sender, EventArgs e)
        {
            TimeMartien d = new TimeMartien(0, (int) debutHeure.Value, (int) debutMinute.Value, 0);
            TimeMartien f = new TimeMartien(0, (int) finHeure.Value, (int) finMinute.Value, 0);

            if (d < f || (d > f && f.Equals(new TimeMartien(0))))
            {
                String type = treeView.SelectedNode.Text;
                journeeAModifier.supprimerActivite(activiteAModifier);

                try
                {
                    lieu = new Lieu(int.Parse(lieuTB.Text.Split(';')[0]), int.Parse(lieuTB.Text.Split(';')[1]));
                }
                catch
                {
                    lieu = new Lieu(0, 0);
                }

                Activite a;

                if (exterieurRadio.Checked)
                {
                    ITransport transport;

                    if (vehiculeRadio.Checked)
                        transport = new Vehicule();
                    else
                        transport = new Scaphandre();

                    if (explorationRadio.Checked)
                        a = new ExplorationExterieure(new TypeActivite(type), descriptionTB.Text, new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0), new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0), lieu, transport);
                    else
                        a = new ExperienceExterieure(new TypeActivite(type), descriptionTB.Text, new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0), new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0), lieu, transport);
                }
                else
                    a = new Activite(new TypeActivite(type), descriptionTB.Text, new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0), new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0), new Lieu(0, 0));

                if (a.getDuree().getTotalMinutes() > 0)
                {
                    if (a.getHeureFin().getHeures() == 0 && a.getHeureFin().getMinutes() == 0 && a.getHeureFin().getSecondes() == 0)
                        a.setHeureFin(new TimeMartien(0, 24, 39, 59));

                    /* Découpage activité */
                    if (activiteAModifier.getHeureFin().getHeures() == 0 && activiteAModifier.getHeureFin().getMinutes() == 0 && activiteAModifier.getHeureFin().getSecondes() == 0)
                        activiteAModifier.setHeureFin(new TimeMartien(0, 24, 39, 59));

                    if (activiteAModifier.getDuree().getTotalMinutes() == 10 || activiteAModifier.getDuree().getTotalMinutes() == 9)
                        journeeAModifier.ajouterActivite(a);
                    else if (activiteAModifier.getDuree().getTotalMinutes() == 20 || activiteAModifier.getDuree().getTotalMinutes() == 19)
                    {
                        if (activiteAModifier.getHeureDebut() < a.getHeureDebut())
                            activiteAModifier.setHeureFin(new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0));
                        else
                            activiteAModifier.setHeureDebut(new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0));

                        journeeAModifier.ajouterActivite(a);
                        journeeAModifier.ajouterActivite(activiteAModifier);
                    }
                    else if (activiteAModifier.getDuree().getTotalMinutes() > 20)
                    {
                        if (activiteAModifier.getHeureDebut() < a.getHeureDebut()
                            && activiteAModifier.getHeureFin() > a.getHeureFin())
                        {
                            Activite copie = (activiteAModifier.isActiviteExterieure()) ? null : new Activite(activiteAModifier);

                            if (copie == null && activiteAModifier.isExploration())
                                copie = new ExplorationExterieure((ExplorationExterieure)activiteAModifier);
                            else if (copie == null)
                                copie = new ExperienceExterieure((ExperienceExterieure)activiteAModifier);

                            activiteAModifier.setHeureFin(new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0));
                            copie.setHeureDebut(new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0));

                            journeeAModifier.ajouterActivite(copie);
                            journeeAModifier.ajouterActivite(activiteAModifier);
                        }
                        else if (activiteAModifier.getHeureDebut() < a.getHeureDebut()
                                    && activiteAModifier.getHeureFin() == a.getHeureFin())
                        {
                            activiteAModifier.setHeureFin(new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0));
                            journeeAModifier.ajouterActivite(activiteAModifier);
                        }
                        else if (activiteAModifier.getHeureDebut() == a.getHeureDebut()
                                    && activiteAModifier.getHeureFin() > a.getHeureFin())
                        {
                            activiteAModifier.setHeureDebut(new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0));
                            journeeAModifier.ajouterActivite(activiteAModifier);
                        }

                        journeeAModifier.ajouterActivite(a);
                    }

                    if (a.getHeureFin().getHeures() == 24 && a.getHeureFin().getMinutes() == 39 && a.getHeureFin().getSecondes() == 59)
                        a.setHeureFin(new TimeMartien(0));

                    cm.miseAJourEdt(journeeAModifier);
                    dh.Close();
                    cm.ouvrirDernierDetailHeure();
                    fermerFenetre();
                }
                else
                {
                    errDuree.Text = "La durée de l'activité doit être d'au moins 10 minutes";
                    errDuree.Visible = true;
                }
            }
            else
            {
                errDuree.Text = "La date de début doit être inférieure à la date de fin";
                errDuree.Visible = true;
            }
        }
예제 #8
0
 /// <summary>
 /// Redéfini le lieu de l'activité
 /// </summary>
 /// <param name="l">Un lieu</param>
 public void setLieu(Lieu l)
 {
     this.lieu = l;
 }
예제 #9
0
        /// <summary>
        /// Permet de charger les données depuis un fichier XML
        /// </summary>
        /// <param name="marsOMatic">Le fichier XML Mars-o-Matic</param>
        /// <param name="activitesRefs">Le fichier XML ActivitesRefs associé au fichier précédent</param>
        private void chargerXml(String marsOMatic, String activitesRefs)
        {
            XmlDocument mars = new XmlDocument();

            mars.Load(marsOMatic);
            XmlDocument acts = new XmlDocument();

            acts.Load(activitesRefs);

            Dictionary <int, Activite> activitesBase = new Dictionary <int, Activite>();

            int nbElements = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("NbElements").InnerText);

            Progression p = new Progression(nbElements);

            p.Show();

            /* Chargement données des activités de base */
            XmlNodeList activites = acts.GetElementsByTagName("Activite");

            foreach (XmlNode n in activites)
            {
                Activite a;

                int          num         = int.Parse(n.SelectSingleNode("Numero").InnerText);
                bool         exterieure  = bool.Parse(n.SelectSingleNode("Exterieure").InnerText);
                bool         exploration = bool.Parse(n.SelectSingleNode("Exploration").InnerText);
                TypeActivite ta          = new TypeActivite(n.SelectSingleNode("TypeActivite").SelectSingleNode("Nom").InnerText);

                if (exterieure)
                {
                    if (exploration)
                    {
                        a = new ExplorationExterieure(ta, "", null, null, null, null);
                    }
                    else
                    {
                        a = new ExperienceExterieure(ta, "", null, null, null, null);
                    }
                }
                else
                {
                    a = new Activite(ta);
                }

                activitesBase.Add(num, a);

                p.incrementer();
            }

            /* Chargement données */
            int jour     = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Jour").InnerText);
            int mois     = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Mois").InnerText);
            int annee    = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Annee").InnerText);
            int heures   = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Heures").InnerText);
            int minutes  = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Minutes").InnerText);
            int secondes = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Secondes").InnerText);

            this.debutMission = new DateTime(annee, mois, jour, heures, minutes, secondes);

            TimeMartien nb      = TimeMartien.calculerJours(debutMission);
            int         numJour = nb.getJours() + 1;

            if (numJour > 500)
            {
                numJour = 500;
            }

            XmlNodeList astronautesNodes = mars.GetElementsByTagName("Astronaute");

            foreach (XmlNode n in astronautesNodes)
            {
                String nom    = n.SelectSingleNode("Nom").InnerText;
                String prenom = n.SelectSingleNode("Prenom").InnerText;
                int    age    = int.Parse(n.SelectSingleNode("Age").InnerText);

                Astronaute a = new Astronaute(nom, prenom, age);

                Dictionary <int, Journee> joursMission = new Dictionary <int, Journee>();
                a.setJourneesMission(joursMission);

                astronautes.Add(a);
                a.getJourneesMission().Clear();
                astroList.Items.Add(a); // Ajout dans la liste => interface

                XmlNodeList missionNode = n.SelectSingleNode("JourneesMission").SelectNodes("Journee");

                foreach (XmlNode nn in missionNode)
                {
                    int    num         = int.Parse(nn.SelectSingleNode("Numero").InnerText);
                    String etat        = nn.SelectSingleNode("Etat").InnerText;
                    IEtat  etatJournee = new Passe();

                    if (etat.Equals("EnCours"))
                    {
                        etatJournee = new EnCours();
                    }
                    else if (etat.Equals("Futur"))
                    {
                        etatJournee = new Futur();
                    }

                    String rapport = nn.SelectSingleNode("Rapport").InnerText;

                    Journee j = new Journee(num, rapport, etatJournee, false);
                    j.getActivites().Clear();
                    joursMission.Add(num, j);

                    XmlNodeList activitesNode = nn.SelectSingleNode("Activites").SelectNodes("Activite");

                    foreach (XmlNode nnn in activitesNode)
                    {
                        int        numA         = int.Parse(nnn.SelectSingleNode("Numero").InnerText);
                        String     transport    = nnn.SelectSingleNode("Transport").InnerText;
                        ITransport transportAct = null;

                        if (transport.Equals("Scaphandre"))
                        {
                            transportAct = new Scaphandre();
                        }
                        else if (transport.Equals("Vehicule"))
                        {
                            transportAct = new Vehicule();
                        }

                        String description = nnn.SelectSingleNode("Description").InnerText;
                        etat = nnn.SelectSingleNode("Etat").InnerText;
                        IEtat etatAct = new Passe();

                        if (etat.Equals("EnCours"))
                        {
                            etatAct = new EnCours();
                        }
                        else if (etat.Equals("Futur"))
                        {
                            etatAct = new Futur();
                        }

                        int mD = int.Parse(nnn.SelectSingleNode("HeureDebut").InnerText);

                        int mF = int.Parse(nnn.SelectSingleNode("HeureFin").InnerText);

                        String xy = nnn.SelectSingleNode("XY").InnerText;
                        int    x  = int.Parse(xy.Split(',')[0]);
                        int    y  = int.Parse(xy.Split(',')[1]);

                        Lieu l = new Lieu(x, y);

                        Activite aBase = activitesBase[numA];
                        Activite act;

                        if (aBase.isActiviteExterieure())
                        {
                            if (aBase.isExperience())
                            {
                                act = new ExperienceExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                            }
                            else
                            {
                                act = new ExplorationExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                            }
                        }
                        else
                        {
                            act = new Activite(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l);
                        }


                        act.setDescription(description);

                        act.setEtat(etatAct);

                        j.ajouterActivite(act);

                        p.incrementer();
                    }
                    p.incrementer();
                }
                p.incrementer();
            }

            initialisationInterface();

            astronauteSelectionne = astronautes[0];
            journeesMission       = astronauteSelectionne.getJourneesMission();
            journeeActuelle       = journeesMission[numJour];

            modificationJourneeActuelle(numJour);

            changerPeriode(periode);
            verificationChangementPeriode();
            mettreAJourHeures();
            miseAJourEdt(journeesMission[journeeSelectionnee]);

            descriptionTexte.Text  = journeesMission[journeeSelectionnee].getDescription();
            astroList.SelectedItem = astronauteSelectionne;

            p.fermerFenetre();
        }
예제 #10
0
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="j">Une journée</param>
        /// <param name="a">Une activité la journée</param>
        /// <param name="cm">L'interface graphique CalendrierMission</param>
        /// <param name="dh">L'interface graphique DetailHeure</param>
        public ModificationActivite(Journee j, Activite a, CalendrierMission cm, DetailHeure dh)
        {
            if (a.getHeureFin().getHeures() == 24 && a.getHeureFin().getMinutes() == 39)
            {
                a.setHeureFin(new TimeMartien(0));
            }

            InitializeComponent();
            this.dh = dh;

            if (finHeure.Value == 0 && finMinute.Value == 0)
            {
                finHeure.Value  = 24;
                finMinute.Value = 40;
            }

            debutHeure.Maximum = finHeure.Value;

            lieu = new Lieu(0, 0);

            activiteAModifier = a;
            journeeAModifier  = j;
            this.cm           = cm;

            debutHeure.Value = activiteAModifier.getHeureDebut().getHeures();
            finHeure.Value   = activiteAModifier.getHeureFin().getHeures();

            debutMinute.Value = activiteAModifier.getHeureDebut().getMinutes();
            finMinute.Value   = activiteAModifier.getHeureFin().getMinutes();

            debutHeure.Minimum = debutHeure.Value;
            finHeure.Maximum   = (finHeure.Value == 0) ? 24 : finHeure.Value;

            finHeure.Minimum = (finHeure.Value == 0) ? 0 : debutHeure.Value;

            remplirTreeView();

            descriptionTB.Text = a.getDescription();

            if (a.isActiviteExterieure())
            {
                exterieurRadio.Checked = true;

                if (a.isExploration())
                {
                    explorationRadio.Checked = true;
                    scaphandreRadio.Checked  = (((ExplorationExterieure)a).nomTransport().Equals("Scaphandre")) ? true : false;
                    vehiculeRadio.Checked    = !scaphandreRadio.Checked;
                }
                else
                {
                    experienceRadio.Checked = true;
                    scaphandreRadio.Checked = (((ExperienceExterieure)a).nomTransport().Equals("Scaphandre")) ? true : false;
                    vehiculeRadio.Checked   = !scaphandreRadio.Checked;
                }
            }
            else
            {
                interieurRadio.Checked = true;
            }

            foreach (TreeNode tn in treeView.Nodes)
            {
                foreach (TreeNode tnn in tn.Nodes)
                {
                    if (tnn.Text.Equals(a.getNom()))
                    {
                        treeView.SelectedNode = tnn;
                    }
                }
            }

            lieuTB.Text = activiteAModifier.getLieu().ToString();

            debutHeure.Maximum = finHeure.Maximum;

            heureDebutStatic = new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0);
            heureFinStatic   = new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0);
        }
예제 #11
0
 /// <summary>
 /// Constructeur paramétré
 /// </summary>
 /// <param name="typeActivite">Type de l'Activite</param>
 /// <param name="description">Description de l'Activite</param>
 /// <param name="debut">Date de début de l'Activite</param>
 /// <param name="fin">Date de fin de l'Activite</param>
 /// <param name="lieu">Lieu de l'Activite</param>
 /// <param name="transport">Moyen de transport pour l'Activite</param>
 public ExperienceExterieure(TypeActivite typeActivite, String description, TimeMartien debut, TimeMartien fin, Lieu lieu, ITransport transport)
     : base(typeActivite, description, debut, fin, lieu)
 {
     this.transport = transport;
 }
예제 #12
0
 /// <summary>
 /// Constructeur paramétré
 /// </summary>
 /// <param name="typeActivite">Type de l'Activite</param>
 /// <param name="description">Description de l'Activite</param>
 /// <param name="debut">Date de début de l'Activite</param>
 /// <param name="fin">Date de fin de l'Activite</param>
 /// <param name="lieu">Lieu de l'Activite</param>
 public ExperienceExterieure(TypeActivite typeActivite, String description, TimeMartien debut, TimeMartien fin, Lieu lieu)
     : this(typeActivite, description, debut, fin, lieu, new Scaphandre())
 {
 }
예제 #13
0
 /// <summary>
 /// Constructeur paramétré
 /// </summary>
 /// <param name="typeActivite">Type de l'Activite</param>
 /// <param name="description">Description de l'Activite</param>
 /// <param name="debut">Date de début de l'Activite</param>
 /// <param name="fin">Date de fin de l'Activite</param>
 /// <param name="lieu">Lieu de l'Activite</param>
 public ExperienceExterieure(TypeActivite typeActivite, String description, TimeMartien debut, TimeMartien fin, Lieu lieu)
     : this(typeActivite, description, debut, fin, lieu, new Scaphandre())
 {
 }
예제 #14
0
        /// <summary>
        /// Permet de charger les données depuis un fichier XML
        /// </summary>
        /// <param name="marsOMatic">Le fichier XML Mars-o-Matic</param>
        /// <param name="activitesRefs">Le fichier XML ActivitesRefs associé au fichier précédent</param>
        private void chargerXml(String marsOMatic, String activitesRefs)
        {
            XmlDocument mars = new XmlDocument();
            mars.Load(marsOMatic);
            XmlDocument acts = new XmlDocument();
            acts.Load(activitesRefs);

            Dictionary<int, Activite> activitesBase = new Dictionary<int, Activite>();

            int nbElements = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("NbElements").InnerText);

            Progression p = new Progression(nbElements);
            p.Show();

            /* Chargement données des activités de base */
            XmlNodeList activites = acts.GetElementsByTagName("Activite");

            foreach (XmlNode n in activites)
            {
                Activite a;

                int num = int.Parse(n.SelectSingleNode("Numero").InnerText);
                bool exterieure = bool.Parse(n.SelectSingleNode("Exterieure").InnerText);
                bool exploration = bool.Parse(n.SelectSingleNode("Exploration").InnerText);
                TypeActivite ta = new TypeActivite(n.SelectSingleNode("TypeActivite").SelectSingleNode("Nom").InnerText);

                if (exterieure)
                    if (exploration)
                        a = new ExplorationExterieure(ta, "", null, null, null, null);
                    else
                        a = new ExperienceExterieure(ta, "", null, null, null, null);
                else
                    a = new Activite(ta);

                activitesBase.Add(num, a);

                p.incrementer();
            }

            /* Chargement données */
            int jour = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Jour").InnerText);
            int mois = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Mois").InnerText);
            int annee = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Annee").InnerText);
            int heures = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Heures").InnerText);
            int minutes = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Minutes").InnerText);
            int secondes = int.Parse(mars.SelectSingleNode("Donnees").SelectSingleNode("DebutMission").SelectSingleNode("Secondes").InnerText);

            this.debutMission = new DateTime(annee, mois, jour, heures, minutes, secondes);

            TimeMartien nb = TimeMartien.calculerJours(debutMission);
            int numJour = nb.getJours() + 1;

            if (numJour > 500)
                numJour = 500;

            XmlNodeList astronautesNodes = mars.GetElementsByTagName("Astronaute");

            foreach (XmlNode n in astronautesNodes)
            {
                String nom = n.SelectSingleNode("Nom").InnerText;
                String prenom = n.SelectSingleNode("Prenom").InnerText;
                int age = int.Parse(n.SelectSingleNode("Age").InnerText);

                Astronaute a = new Astronaute(nom, prenom, age);

                Dictionary<int, Journee> joursMission = new Dictionary<int, Journee>();
                a.setJourneesMission(joursMission);

                astronautes.Add(a);
                a.getJourneesMission().Clear();
                astroList.Items.Add(a); // Ajout dans la liste => interface

                XmlNodeList missionNode = n.SelectSingleNode("JourneesMission").SelectNodes("Journee");

                foreach (XmlNode nn in missionNode)
                {
                    int num = int.Parse(nn.SelectSingleNode("Numero").InnerText);
                    String etat = nn.SelectSingleNode("Etat").InnerText;
                    IEtat etatJournee = new Passe();

                    if (etat.Equals("EnCours"))
                        etatJournee = new EnCours();
                    else if (etat.Equals("Futur"))
                        etatJournee = new Futur();

                    String rapport = nn.SelectSingleNode("Rapport").InnerText;

                    Journee j = new Journee(num, rapport, etatJournee, false);
                    j.getActivites().Clear();
                    joursMission.Add(num, j);

                    XmlNodeList activitesNode = nn.SelectSingleNode("Activites").SelectNodes("Activite");

                    foreach (XmlNode nnn in activitesNode)
                    {
                        int numA = int.Parse(nnn.SelectSingleNode("Numero").InnerText);
                        String transport = nnn.SelectSingleNode("Transport").InnerText;
                        ITransport transportAct = null;

                        if (transport.Equals("Scaphandre"))
                            transportAct = new Scaphandre();
                        else if (transport.Equals("Vehicule"))
                            transportAct = new Vehicule();

                        String description = nnn.SelectSingleNode("Description").InnerText;
                        etat = nnn.SelectSingleNode("Etat").InnerText;
                        IEtat etatAct = new Passe();

                        if (etat.Equals("EnCours"))
                            etatAct = new EnCours();
                        else if (etat.Equals("Futur"))
                            etatAct = new Futur();

                        int mD = int.Parse(nnn.SelectSingleNode("HeureDebut").InnerText);

                        int mF = int.Parse(nnn.SelectSingleNode("HeureFin").InnerText);

                        String xy = nnn.SelectSingleNode("XY").InnerText;
                        int x = int.Parse(xy.Split(',')[0]);
                        int y = int.Parse(xy.Split(',')[1]);

                        Lieu l = new Lieu(x, y);

                        Activite aBase = activitesBase[numA];
                        Activite act;

                        if (aBase.isActiviteExterieure())
                            if (aBase.isExperience())
                                act = new ExperienceExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                            else
                                act = new ExplorationExterieure(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l, transportAct);
                        else
                            act = new Activite(aBase.getTypeActivite(), description, new TimeMartien(0, 0, mD, 0), new TimeMartien(0, 0, mF, 0), l);

                        act.setDescription(description);

                        act.setEtat(etatAct);

                        j.ajouterActivite(act);

                        p.incrementer();
                    }
                    p.incrementer();
                }
                p.incrementer();
            }

            initialisationInterface();

            astronauteSelectionne = astronautes[0];
            journeesMission = astronauteSelectionne.getJourneesMission();
            journeeActuelle = journeesMission[numJour];

            modificationJourneeActuelle(numJour);

            changerPeriode(periode);
            verificationChangementPeriode();
            mettreAJourHeures();
            miseAJourEdt(journeesMission[journeeSelectionnee]);

            descriptionTexte.Text = journeesMission[journeeSelectionnee].getDescription();
            astroList.SelectedItem = astronauteSelectionne;

            p.fermerFenetre();
        }
예제 #15
0
        /// <summary>
        /// Constructeur paramétré
        /// </summary>
        /// <param name="j">Une journée</param>
        /// <param name="a">Une activité la journée</param>
        /// <param name="cm">L'interface graphique CalendrierMission</param>
        /// <param name="dh">L'interface graphique DetailHeure</param>
        public ModificationActivite(Journee j, Activite a, CalendrierMission cm, DetailHeure dh)
        {
            if (a.getHeureFin().getHeures() == 24 && a.getHeureFin().getMinutes() == 39)
                a.setHeureFin(new TimeMartien(0));

            InitializeComponent();
            this.dh = dh;

            if (finHeure.Value == 0 && finMinute.Value == 0)
            {
                finHeure.Value = 24;
                finMinute.Value = 40;
            }

            debutHeure.Maximum = finHeure.Value;

            lieu = new Lieu(0, 0);

            activiteAModifier = a;
            journeeAModifier = j;
            this.cm = cm;

            debutHeure.Value = activiteAModifier.getHeureDebut().getHeures();
            finHeure.Value = activiteAModifier.getHeureFin().getHeures();

            debutMinute.Value = activiteAModifier.getHeureDebut().getMinutes();
            finMinute.Value = activiteAModifier.getHeureFin().getMinutes();

            debutHeure.Minimum = debutHeure.Value;
            finHeure.Maximum = (finHeure.Value == 0) ? 24 : finHeure.Value;

            finHeure.Minimum = (finHeure.Value == 0) ? 0 : debutHeure.Value;

            remplirTreeView();

            descriptionTB.Text = a.getDescription();

            if (a.isActiviteExterieure())
            {
                exterieurRadio.Checked = true;

                if (a.isExploration())
                {
                    explorationRadio.Checked = true;
                    scaphandreRadio.Checked = (((ExplorationExterieure)a).nomTransport().Equals("Scaphandre")) ? true : false;
                    vehiculeRadio.Checked = !scaphandreRadio.Checked;
                }
                else
                {
                    experienceRadio.Checked = true;
                    scaphandreRadio.Checked = (((ExperienceExterieure)a).nomTransport().Equals("Scaphandre")) ? true : false;
                    vehiculeRadio.Checked = !scaphandreRadio.Checked;
                }
            }
            else
                interieurRadio.Checked = true;

            foreach (TreeNode tn in treeView.Nodes)
                foreach (TreeNode tnn in tn.Nodes)
                    if (tnn.Text.Equals(a.getNom()))
                        treeView.SelectedNode = tnn;

            lieuTB.Text = activiteAModifier.getLieu().ToString();

            debutHeure.Maximum = finHeure.Maximum;

            heureDebutStatic = new TimeMartien(0, (int) debutHeure.Value, (int) debutMinute.Value, 0);
            heureFinStatic = new TimeMartien(0, (int) finHeure.Value, (int) finMinute.Value, 0);
        }
예제 #16
0
 /// <summary>
 /// Constructeur paramétré
 /// </summary>
 /// <param name="typeActivite">Type de l'Activite</param>
 /// <param name="description">Description de l'Activite</param>
 /// <param name="debut">Date de début de l'Activite</param>
 /// <param name="fin">Date de fin de l'Activite</param>
 /// <param name="lieu">Lieu de l'Activite</param>
 /// <param name="transport">Moyen de transport pour l'Activite</param>
 public ExplorationExterieure(TypeActivite typeActivite, String description, TimeMartien debut, TimeMartien fin, Lieu lieu, ITransport transport)
     : base(typeActivite, description, debut, fin, lieu)
 {
     this.transport = transport;
 }
예제 #17
0
        /// <summary>
        /// Permet de procéder aux modifications
        /// </summary>
        /// <param name="sender">Objet source</param>
        /// <param name="e">Evènement</param>
        private void ok_Click(object sender, EventArgs e)
        {
            TimeMartien d = new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0);
            TimeMartien f = new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0);

            if (d < f || (d > f && f.Equals(new TimeMartien(0))))
            {
                String type = treeView.SelectedNode.Text;
                journeeAModifier.supprimerActivite(activiteAModifier);

                try
                {
                    lieu = new Lieu(int.Parse(lieuTB.Text.Split(';')[0]), int.Parse(lieuTB.Text.Split(';')[1]));
                }
                catch
                {
                    lieu = new Lieu(0, 0);
                }

                Activite a;

                if (exterieurRadio.Checked)
                {
                    ITransport transport;

                    if (vehiculeRadio.Checked)
                    {
                        transport = new Vehicule();
                    }
                    else
                    {
                        transport = new Scaphandre();
                    }

                    if (explorationRadio.Checked)
                    {
                        a = new ExplorationExterieure(new TypeActivite(type), descriptionTB.Text, new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0), new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0), lieu, transport);
                    }
                    else
                    {
                        a = new ExperienceExterieure(new TypeActivite(type), descriptionTB.Text, new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0), new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0), lieu, transport);
                    }
                }
                else
                {
                    a = new Activite(new TypeActivite(type), descriptionTB.Text, new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0), new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0), new Lieu(0, 0));
                }

                if (a.getDuree().getTotalMinutes() > 0)
                {
                    if (a.getHeureFin().getHeures() == 0 && a.getHeureFin().getMinutes() == 0 && a.getHeureFin().getSecondes() == 0)
                    {
                        a.setHeureFin(new TimeMartien(0, 24, 39, 59));
                    }

                    /* Découpage activité */
                    if (activiteAModifier.getHeureFin().getHeures() == 0 && activiteAModifier.getHeureFin().getMinutes() == 0 && activiteAModifier.getHeureFin().getSecondes() == 0)
                    {
                        activiteAModifier.setHeureFin(new TimeMartien(0, 24, 39, 59));
                    }

                    if (activiteAModifier.getDuree().getTotalMinutes() == 10 || activiteAModifier.getDuree().getTotalMinutes() == 9)
                    {
                        journeeAModifier.ajouterActivite(a);
                    }
                    else if (activiteAModifier.getDuree().getTotalMinutes() == 20 || activiteAModifier.getDuree().getTotalMinutes() == 19)
                    {
                        if (activiteAModifier.getHeureDebut() < a.getHeureDebut())
                        {
                            activiteAModifier.setHeureFin(new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0));
                        }
                        else
                        {
                            activiteAModifier.setHeureDebut(new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0));
                        }

                        journeeAModifier.ajouterActivite(a);
                        journeeAModifier.ajouterActivite(activiteAModifier);
                    }
                    else if (activiteAModifier.getDuree().getTotalMinutes() > 20)
                    {
                        if (activiteAModifier.getHeureDebut() < a.getHeureDebut() &&
                            activiteAModifier.getHeureFin() > a.getHeureFin())
                        {
                            Activite copie = (activiteAModifier.isActiviteExterieure()) ? null : new Activite(activiteAModifier);

                            if (copie == null && activiteAModifier.isExploration())
                            {
                                copie = new ExplorationExterieure((ExplorationExterieure)activiteAModifier);
                            }
                            else if (copie == null)
                            {
                                copie = new ExperienceExterieure((ExperienceExterieure)activiteAModifier);
                            }

                            activiteAModifier.setHeureFin(new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0));
                            copie.setHeureDebut(new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0));

                            journeeAModifier.ajouterActivite(copie);
                            journeeAModifier.ajouterActivite(activiteAModifier);
                        }
                        else if (activiteAModifier.getHeureDebut() < a.getHeureDebut() &&
                                 activiteAModifier.getHeureFin() == a.getHeureFin())
                        {
                            activiteAModifier.setHeureFin(new TimeMartien(0, (int)debutHeure.Value, (int)debutMinute.Value, 0));
                            journeeAModifier.ajouterActivite(activiteAModifier);
                        }
                        else if (activiteAModifier.getHeureDebut() == a.getHeureDebut() &&
                                 activiteAModifier.getHeureFin() > a.getHeureFin())
                        {
                            activiteAModifier.setHeureDebut(new TimeMartien(0, (int)finHeure.Value, (int)finMinute.Value, 0));
                            journeeAModifier.ajouterActivite(activiteAModifier);
                        }

                        journeeAModifier.ajouterActivite(a);
                    }

                    if (a.getHeureFin().getHeures() == 24 && a.getHeureFin().getMinutes() == 39 && a.getHeureFin().getSecondes() == 59)
                    {
                        a.setHeureFin(new TimeMartien(0));
                    }

                    cm.miseAJourEdt(journeeAModifier);
                    dh.Close();
                    cm.ouvrirDernierDetailHeure();
                    fermerFenetre();
                }
                else
                {
                    errDuree.Text    = "La durée de l'activité doit être d'au moins 10 minutes";
                    errDuree.Visible = true;
                }
            }
            else
            {
                errDuree.Text    = "La date de début doit être inférieure à la date de fin";
                errDuree.Visible = true;
            }
        }