/// <summary> /// Construction d'une vue pour une NotIt. /// </summary> /// <param name="model">NotIt à représenter.</param> public NotItView(NotIt model) { isTitleEdited = false; isDetailsEdited = false; modelId = model.Id; InitializeComponent(); // Mise à jour de la vue à partir de la NotIt. UpdateView(model); // Abonnement aux évènements de la NotIt. statusChangedEventHandler = new NotIt.StatusChangedEventHandler(model_StatusChanged); showedEventHandler = new NotIt.ShowedEventHandler(model_Showed); hidedEventHandler = new NotIt.HidedEventHandler(model_Hided); model.StatusChanged += statusChangedEventHandler; model.Showed += showedEventHandler; model.Hided += hidedEventHandler; // Obtention d'une référence vers le controler de NotIts. controler = NotItControler.Instance; // Création du fond transparent SetTransparentBackgroundImage(); detailsTextBox.LostFocus += new EventHandler(detailsTextBox_LostFocus); detailsLabel.MouseEnter += new EventHandler(label_MouseEnter); detailsLabel.MouseLeave += new EventHandler(label_MouseLeave); titleTextBox.LostFocus += new EventHandler(titleTextBox_LostFocus); titleLabel.MouseEnter += new EventHandler(label_MouseEnter); titleLabel.MouseLeave += new EventHandler(label_MouseLeave); }
/// <summary> /// Suppression d'une NotIt, mise à jour de la liste. /// </summary> /// <param name="sender">NotItControler.</param> /// <param name="e">Suppression d'une NotIt.</param> void controler_NotItRemoved(object sender, NotItControler.NotItRemovedArgs e) { NotIt notIt = (NotIt)listView.Items[e.NotItId.ToString()].Tag; notIt.StatusChanged -= statusChangedEventHandler; listView.Items.RemoveByKey(e.NotItId.ToString()); }
/// <summary> /// On détache la vue de la NotIt. /// </summary> /// <param name="model">NotIt représentée.</param> public void Detach(NotIt model) { // On retire les "event handlers" model.Hided -= hidedEventHandler; model.Showed -= showedEventHandler; model.StatusChanged -= statusChangedEventHandler; }
/// <summary> /// Modification d'une NotIt, on met à jour son item dans la liste. /// </summary> /// <param name="source">NotIt.</param> void NotIt_StatusChanged(object source) { NotIt notIt = (NotIt)source; ListViewItem item = listView.Items[notIt.Id.ToString()]; item.Text = notIt.Title; item.Tag = notIt; }
/// <summary> /// Désabonnement des évènements des NotIts. /// </summary> private void UnregisterFromNotItEvents() { foreach (ListViewItem item in listView.Items) { NotIt notIt = (NotIt)item.Tag; notIt.StatusChanged -= statusChangedEventHandler; } }
/// <summary> /// Mise à jour de la vue en fonction des propriétés de la NotIt. /// </summary> /// <param name="model">NotIt à représenter.</param> private void UpdateView(NotIt model) { Location = model.Location; Name = string.Format("{0}_{1}", model.Title, model.Id); titleLabel.Text = model.Title; titleLabel.Left = (Width - titleLabel.Width) / 2; toolTip.SetToolTip(titleLabel, titleLabel.Text); detailsLabel.Text = model.Details; toolTip.SetToolTip(detailsLabel, detailsLabel.Text); TopMost = model.Pinned; pinToolStripMenuItem.Checked = model.Pinned; }
/// <summary> /// Ajoute la NotIt à la liste. /// </summary> /// <param name="notIt">NotIt à ajouter.</param> private void AddNotIt(NotIt notIt) { ListViewItem item = new ListViewItem(); item.Text = notIt.Title; item.Tag = notIt; item.Name = notIt.Id.ToString(); item.ImageIndex = 0; listView.Items.Add(item); // On s'abonne aux évènements de la NotIt. notIt.StatusChanged += statusChangedEventHandler; notIt.Show(); }
/// <summary> /// Sélection d'une ou plusieurs NotIts. /// </summary> /// <param name="sender">ListView.</param> /// <param name="e">Changement de sélection.</param> private void listView_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { foreach (ListViewItem item in listView.SelectedItems) { // On affiche au premier plan les NotIts sélectionnées. NotIt notIt = (NotIt)item.Tag; notIt.Show(); Focus(); } if (listView.SelectedItems.Count == 0) { deletedToolStripMenuItem.Enabled = false; } else { deletedToolStripMenuItem.Enabled = true; } }