public void removeMedia(AbMediaContent media) { MediaContentType mediaType = media.mediaType; if (mediaBoxes.ContainsKey(mediaType)) { MediaCountBox mediaBox = mediaBoxes[mediaType]; mediaBox.removeMedia(media); if (mediaBox.isOpen) { Remove(media); } // Remove empty media boxes if (mediaBox.mediaCount == 0) { Remove(mediaBox); mediaBox.isOpen = false; } } else { Remove(media); } }
public void addNewMedia(AbMediaContent media) { MediaContentType mediaType = media.mediaType; if (mediaBoxes.ContainsKey(mediaType)) { MediaCountBox mediaBox = mediaBoxes[mediaType]; mediaBox.addNewMedia(media); if (mediaBox.isOpen) { Insert(IndexOf(mediaBox) + 1, media); } //Create media box if not present if (mediaBox.mediaCount == 1) { Insert(getMediaBoxIndex(mediaType), mediaBox); } } else { Insert(getMediaIndex(), media); } }
public DayMediaObservableCollection(DateTime date, List <AbMediaContent> mediaList) : base() { this.date = date; mediaBoxes = new Dictionary <MediaContentType, MediaCountBox>(); // Create audio count box List <AbMediaContent> audioList = mediaList.Where (media => media.mediaType == MediaContentType.Audio).ToList <AbMediaContent>(); MediaCountBox audioBox = new MediaCountBox("AudioFileIcon.png", audioList, this); this.mediaBoxes.Add(MediaContentType.Audio, audioBox); if (audioBox.mediaCount > 0) { Add(audioBox); } /// TODO SLOW OPERATION // Create note count box List <AbMediaContent> noteList = mediaList.Where (media => media.mediaType == MediaContentType.Note).ToList <AbMediaContent>(); MediaCountBox noteBox = new MediaCountBox("NoteFileIcon.png", noteList, this); this.mediaBoxes.Add(MediaContentType.Note, noteBox); if (noteBox.mediaCount > 0) { Add(noteBox); } // Create contact count box List <AbMediaContent> contactList = mediaList.Where (media => media.mediaType == MediaContentType.Contact).ToList <AbMediaContent>(); MediaCountBox contactBox = new MediaCountBox("ContactMediaIcon.png", contactList, this); this.mediaBoxes.Add(MediaContentType.Contact, contactBox); if (contactBox.mediaCount > 0) { Add(contactBox); } this.mediaList = mediaList.Where (media => media.mediaType == MediaContentType.Image || media.mediaType == MediaContentType.Video).ToList <AbMediaContent>(); AddRange(this.mediaList); }
public void toggleMediaBoxOpen(MediaCountBox mediaBox) { if (mediaBox.isOpen) { int mediaBoxIndex = this.IndexOf(mediaBox) + 1; addRange(mediaBoxIndex, mediaBox.mediaList); } else { removeRange(mediaBox.mediaList); } }
private int getIndexAfterMediaBox(MediaContentType mediaType) { MediaCountBox mediaBox = mediaBoxes[mediaType]; if (mediaBox.mediaCount > 0) { int mediaBoxIndex = IndexOf(mediaBox); if (mediaBox.isOpen) { return(mediaBoxIndex + mediaBox.mediaCount + 1); } else { return(mediaBoxIndex + 1); } } return(0); }