/// <summary> /// Fonction qui instancie une nouvelle vignette correspondant à un album afin de l'afficher sur l'interface. /// </summary> /// <param name="pic">Objet Album correspondant à la vignette.</param> private VignetteNVAlbum AddControlVignetteAlbum(Album alb) { VignetteNVAlbum vignetteAlbum = new VignetteNVAlbum(alb); //ListAlbums s'abonne à l'évènement de la vignette d'album correspondant à un clic de l'utilisateur. //Cet évènement sera traité avec la méthode ClickOnVignetteAlbum AlbumGrid.Controls.Add(vignetteAlbum); vignetteAlbum.ehClickOnAlbum += new EventHandler(ClickOnVignetteAlbum); vignetteAlbum.ehMouseDown += new MouseEventHandler(MouseDownVignette); return(vignetteAlbum); }
private void createAlbumToolStripMenuItem_Click(object sender, EventArgs e) { AddAlbumWindow dialogNewAlbum = new AddAlbumWindow(); dialogNewAlbum.ShowDialog(); if (dialogNewAlbum.DialogResult == DialogResult.OK) { vignetteAlbumSelected = AddControlVignetteAlbum(dialogNewAlbum.created_album); listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; refreshViewPicturesList(); this.toolStripStatusLabel1.ForeColor = System.Drawing.Color.Black; this.toolStripStatusLabel1.Text = dialogNewAlbum.created_album.Title + " a été créé avec succès."; XML_Serialization.save_user_data(); } }
public ListAlbums() { List <VignetteNVAlbum> listVignetteTemp = new List <VignetteNVAlbum>(); InitializeComponent(); //On charge les données utilisateurs si elles existent. if (File.Exists("user_data.xml")) { XML_Serialization.load_user_data(); } //On définit l'album par défaut si il existe if (Program.Albums.Count > 0) { /// Affichage d'images en grid AllPhotosGrid.FlowDirection = FlowDirection.LeftToRight; AllPhotosGrid.AutoScroll = true; foreach (Picture picture in Program.Albums.FirstOrDefault().Pictures) { AddControlVignettePhoto(picture); } /// Affichage des albums AlbumGrid.FlowDirection = FlowDirection.LeftToRight; AlbumGrid.AutoScroll = true; foreach (Album album in Program.Albums) { listVignetteTemp.Add(AddControlVignetteAlbum(album)); } if (listVignetteTemp.Count > 0) { vignetteAlbumSelected = listVignetteTemp.FirstOrDefault(); listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; refreshViewPicturesList(); } } }
/// <summary> /// Fonction évènementielle qui traite la selection des Vignettes d'albums. /// </summary> /// <param name="sender">Emetteur: vignette d'album</param> /// <param name="e">Paramètre de l'évènement</param> private void ClickOnVignetteAlbum(object sender, EventArgs e) { vignetteAlbumSelected = sender as VignetteNVAlbum; if (listAlbumsSelected.Contains(vignetteAlbumSelected)) { //Si on a un seul album sélectionné, on ne peut pas le déselectionner if (listAlbumsSelected.Count > 1) { listAlbumsSelected.Remove(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Control; vignetteAlbumSelected = listAlbumsSelected.LastOrDefault(); } } else if (!listAlbumsSelected.Contains(vignetteAlbumSelected)) { listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; refreshViewPicturesList(); } listPhotosSelected.Clear(); }
private void deletePhotosOrAlbums() { List <Picture> listTempRemPic = new List <Picture>(); List <Album> listTempRemAlb = new List <Album>(); List <VignetteNVAlbum> listVignetteTemp = new List <VignetteNVAlbum>(); String strName = ""; if ((listAlbumsSelected.Count > 0) && (listPhotosSelected.Count == 0)) { foreach (VignetteNVAlbum vignetteAlb in listAlbumsSelected) { listTempRemAlb.Add(vignetteAlb.albumLinked); vignetteAlb.albumLinked.Pictures.Clear(); strName = strName + vignetteAlb.albumLinked.Title + ", "; } strName = strName.TrimEnd((','), (' ')); foreach (Album alb in listTempRemAlb) { Program.Albums.Remove(alb); } listAlbumsSelected.Clear(); vignetteAlbumSelected = null; //On rafraichit la vue des albums. AlbumGrid.Controls.Clear(); //Si il reste des albums... if (Program.Albums.Count > 0) { //Alors on remplit l'affichage avec des vignettes d'album. foreach (Album alb in Program.Albums) { listVignetteTemp.Add(AddControlVignetteAlbum(alb)); } //Et la vignette d'album sélectionnée devient la dernière vignette ajoutée. vignetteAlbumSelected = listVignetteTemp.LastOrDefault(); listAlbumsSelected.Add(vignetteAlbumSelected); vignetteAlbumSelected.BackColor = System.Drawing.SystemColors.Highlight; } refreshViewPicturesList(); //On sauvegarde les modifications. XML_Serialization.save_user_data(); this.toolStripStatusLabel1.ForeColor = System.Drawing.SystemColors.ControlText; this.toolStripStatusLabel1.Text = "Album(s) " + strName + " supprimé(s) avec succès."; } else if ((listAlbumsSelected.Count > 0) && (listPhotosSelected.Count > 0)) { foreach (VignetteNVPhoto vignettePic in listPhotosSelected) { listTempRemPic.Add(vignettePic.pic); strName = strName + vignettePic.pic.Name + ", "; } //On enlève la dernière virgule strName = strName.TrimEnd((','), (' ')); foreach (Picture pic in listTempRemPic) { //Actuellement le code permet de sélectionner des photos provenant d'albums différents, il faut donc tester si les photos sont bien dans l'album sélectionné avant de les supprimer. //Ce test if n'est plus nécessaire dès qu'on appelle la fonction listPhotosSelected.Clear() à chaque fois qu'on clique sur une vignette d'album. if (vignetteAlbumSelected.albumLinked.Pictures.Exists(a => a == pic)) { vignetteAlbumSelected.albumLinked.Pictures.Remove(pic); } } //On vide la liste des vignettes sélectionnées en mémoire. listPhotosSelected.Clear(); this.toolStripStatusLabel1.ForeColor = System.Drawing.SystemColors.ControlText; this.toolStripStatusLabel1.Text = "Image(s) " + strName + " supprimée(s) avec succès."; vignetteAlbumSelected.refreshPreviewPicture(); refreshViewPicturesList(); XML_Serialization.save_user_data(); } }