/// <summary>Raises the <see cref="E:AfterTextMessageItemUpdate"/> event.</summary> /// <param name="e">The <see cref="TextMessageViewer.AfterTextMessageItemUpdateEventArgs"/> instance containing the event data.</param> protected virtual void OnAfterTextMessageItemUpdate(AfterTextMessageItemUpdateEventArgs e) { if (AfterTextMessageItemUpdate != null) { AfterTextMessageItemUpdate(this, e); } }
/// <summary>Presents form to edit and then update the currently selected text message within the ListView.</summary> /// <returns>True, when changes are committed, false, otherwise.</returns> public bool EditTextMessage() { bool result = false; if (SelectedItems.Count > 0) { TextMessageListViewItem lvi = SelectedItems[0] as TextMessageListViewItem; TextMessage message = lvi.Message; string filePath = message.FilePath; NewEditMessage form = new NewEditMessage(message); if (form.ShowDialog(this) != DialogResult.Cancel) { TextMessageListViewItem lvi2 = new TextMessageListViewItem(form.Message); Items.Insert(lvi.Index, lvi2); lvi.Remove(); Sort(); result = true; AfterTextMessageItemUpdateEventArgs args = new AfterTextMessageItemUpdateEventArgs(lvi, lvi2); OnAfterTextMessageItemUpdate(args); } } return result; }
/// <summary>Updates message cache after <see cref="TextMessageListViewItem"/>.</summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="TextMessageViewer.AfterTextMessageItemUpdateEventArgs"/> instance containing the event data.</param> private void lvChildren_AfterTextMessageItemUpdate(object sender, AfterTextMessageItemUpdateEventArgs e) { MessageFolder messageFolder = (MessageFolder) tvParents.SelectedNode.Tag; //update cache... string cacheKey = messageFolder.RetrievePath(); List<ListViewItem> items = new List<ListViewItem>(messageCache[cacheKey]); //remove from cache items.Remove(e.OldItem); //add to cache items.Add(e.NewItem); messageCache[cacheKey] = items.ToArray(); }