public Form3(Form2 p, Calendrier calendrier, Journee jourSelec, Activite actiActuelle, string nomSpatio) { this.StartPosition = FormStartPosition.CenterScreen; InitializeComponent(); this.treeView1.ExpandAll(); this.jour_actuel.Text = jourSelec.NumJour.ToString(); this.jourSelec = jourSelec; this.actiActuelle = actiActuelle; this.calendrierActuel = calendrier; this._nomSpatio = nomSpatio; if (actiActuelle != null) // mets les caractéristiques d'une activité dans le cas d'un chargement d'activité { this.H_debut.SelectedItem = actiActuelle.HeureDebut.Heure.ToString(); this.M_debut.SelectedItem = actiActuelle.HeureDebut.Minute.ToString(); this.H_fin.SelectedItem = actiActuelle.HeureFin.Heure.ToString(); this.M_fin.SelectedItem = actiActuelle.HeureFin.Minute.ToString(); this.description.SelectedText = actiActuelle.Descritpion.ToString(); this.labelActi.Text = actiActuelle.Nom; this.textBoxX.Text = string.Format("{0}", actiActuelle.Lieu.Position.X); this.textBoxY.Text = string.Format("{0}", actiActuelle.Lieu.Position.Y); this._listSpatio = this.calendrierActuel.ListSpationaute; } else { this.labelActi.Text = "Aucun type d'activité sélectionné"; btn_suppr.Enabled = false; // laisse les champs vide pour une création d'activité for (int i = 0; i < this.calendrierActuel.ListSpationaute.Count; i++) { if (this.calendrierActuel.ListSpationaute.ElementAt(i).Nom.ToString() == this._nomSpatio) { this._listSpatio.Add(this.calendrierActuel.ListSpationaute.ElementAt(i)); } } } parent = p; graphics = pictureBox1.CreateGraphics(); changerCouleurJours(); desactiverJourPasses(); }
//on verifie si une activite empiète sur d'autres. public List<Activite> checkActivite(Activite newActivite) { List<Activite> lst_ActiviteConflit = new List<Activite>(); foreach (Activite activite in ListActiviteJournee) { if (activite.HeureFin.Heure>=newActivite.HeureDebut.Heure && activite.HeureFin.Minute>=newActivite.HeureDebut.Minute) { foreach (Spationaute spatioOccupe in activite.ListSpationaute) { foreach (Spationaute spatioNewActivite in newActivite.ListSpationaute) { if (spatioNewActivite==spatioOccupe) { lst_ActiviteConflit.Add(activite); } } } } } return lst_ActiviteConflit; }
private void btn_confirmer_Click(object sender, EventArgs e) { bool PossibleDeChanger = true; Dates datesDebut = null; Dates datesFin = null; // vérifie qu'on renseigne bien des horaires if (H_debut.Text == "" || M_debut.Text == "" || H_fin.Text == "" || M_fin.Text == "") { PossibleDeChanger = false; } else { datesDebut = new Dates(jourSelec.NumJour, int.Parse(H_debut.Text), int.Parse(M_debut.Text)); datesFin = new Dates(jourSelec.NumJour, int.Parse(H_fin.Text), int.Parse(M_fin.Text)); } // vérifie qu'on renseigne bien des coordonnées double cooX, cooY; if (!testCoord(textBoxX.Text, out cooX, -1000, 1000)) PossibleDeChanger = false; if (!testCoord(textBoxY.Text, out cooY, -1000, 1000)) PossibleDeChanger = false; Coordonnees coo = new Coordonnees(nom_position.Text, new Point((int)cooX, (int)cooY)); string nomActiTmp = ""; if (treeView1.SelectedNode == null && actiActuelle == null) // vérifie qu'on sélectionne bien un type d'activité { PossibleDeChanger = false; } else if (treeView1.SelectedNode == null) // par défaut, mais le type de l'activité sélectionné si c'est un chargement d'activité { nomActiTmp = actiActuelle.Nom; } else { nomActiTmp = treeView1.SelectedNode.Text; // autrement, met ls noeud sélectionné par l'utilisateur } Activite tmpActi = new Activite(nomActiTmp, datesDebut, datesFin, coo, description.Text, this._listSpatio); //attention a l'assignation des Spationautes // Vérification des données if (!verifieDonnees(jourSelec.ListActiviteJournee, tmpActi)) PossibleDeChanger = false; // Vérification du treeView if (!testTreeView()) PossibleDeChanger = false; if (PossibleDeChanger) // ajoute ou modifie l'activité { jourSelec.ListActiviteJournee.Remove(actiActuelle); jourSelec.ListActiviteJournee.Add(tmpActi); actiActuelle = tmpActi; this.Close(); } else // si un des critères n'est pas vérifié, un pop-up annonce la modification ou création impossible et renvoie au form de modification { PopUp_ModifImpossible popup = new PopUp_ModifImpossible(); DialogResult dialogresult = popup.ShowDialog(); popup.Dispose(); } }
// vérifie que l'emplacement horaire est libre pour la création de l'activité private bool verifieDonnees(List<Activite> listActi, Activite tmpActi) { if (tmpActi.HeureDebut == null || tmpActi.HeureFin == null) { return false; } else if ((tmpActi.HeureDebut.Heure * 60 + tmpActi.HeureDebut.Minute) > (tmpActi.HeureFin.Heure * 60 + tmpActi.HeureFin.Minute)) { return false; } bool res = true; foreach (var item in listActi) { if (item != actiActuelle) { // heure de début de la nouvelle activité > heure de début d'une ancienne if ((tmpActi.HeureDebut.Heure * 60 + tmpActi.HeureDebut.Minute) > (item.HeureDebut.Heure * 60 + item.HeureDebut.Minute)) { // heure de début de la nouvelle activité > heure de fin d'une ancienne if (!((tmpActi.HeureDebut.Heure * 60 + tmpActi.HeureDebut.Minute) <= (item.HeureFin.Heure * 60 + item.HeureFin.Minute))) { res = false; } } // heure de début de la nouvelle activité < heure de début d'une ancienne else { // heure de fin de la nouvelle activité < heure de début d'une ancienne if (!((tmpActi.HeureFin.Heure * 60 + tmpActi.HeureFin.Minute) <= (item.HeureDebut.Heure * 60 + item.HeureDebut.Minute))) { res = false; } } } } return res; }
private int tailleActivite(Activite Activitee) { // donne la taille en pixel que devra avoir le bouton, en hauteur, en fonction de la durée de l'activité, par tranche de 10 minutes return ((Activitee.HeureFin.Heure - Activitee.HeureDebut.Heure) * 60 + (Activitee.HeureFin.Minute - Activitee.HeureDebut.Minute)) / 10 * _taille10minPixel; }