/// <summary> /// After label edit event. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void folderTreeView_AfterLabelEdit(object sender, NodeLabelEditEventArgs e) { Facade facade = Facade.GetInstance(); MessageStore messageStore = facade.GetMessageStoreCustom(); foreach (MailMessage mail in messageStore.Messages) { if (mail.ParentFolder.Equals(e.Node.Text)) { mail.ParentFolder = e.Label; } } e.Node.Text = e.Label; this.folderTreeView_AfterSelect(this.folderTreeView, new TreeViewEventArgs(e.Node)); this.SaveFolders(); }
/// <summary> /// Method for load the selected message. /// </summary> /// <param name="store">The MessageStore.</param> public void LoadSelectedMessage(MessageStore store) { this._store = store; if ((null != _store) && (null != _store.SelectedMessage)) { this.SetFieldsVisible(true); // Hook change notification _store.PropertyChanged += new PropertyChangedEventHandler(MessageStore_PropertyChanged); // Get Current this.Message = _store.SelectedMessage; } else { this.SetFieldsVisible(false); } }
/// <summary> /// Method for delete the tree nodes recursively. /// </summary> /// <param name="node">The tree node for delete.</param> public void DeleteNodesRecursive(TreeNode node) { foreach (TreeNode child in node.Nodes) { this.DeleteNodesRecursive(child); } Facade facade = Facade.GetInstance(); MessageStore messageStore = facade.GetMessageStoreCustom(); for (int i = 0; i < messageStore.Messages.Count; i++) { MailMessage mail = messageStore.Messages[i]; if (mail.ParentFolder.Equals(node.Text)) { messageStore.Messages.Remove(mail); } } node.Remove(); }
/// <summary> /// Event for refresh the mailbox and messages. /// </summary> /// <param name="sender">The sender object.</param> /// <param name="e">The event arguments.</param> private void refreshToolStripMenuItem_Click(object sender, EventArgs e) { Facade facade = Facade.GetInstance(); // Retrieve messages from inbox mailbox. facade.LoadMessageStore(Constants.Inbox, facade.GetMessageStore()); facade.RetrieveMessages(Constants.Inbox); // Retrieve messages from sent item mailbox. facade.LoadMessageStore(Constants.SentItems, facade.GetMessageStoreSent()); // Retrieve messages from deleted item mailbox. facade.LoadMessageStore(Constants.DeletedItems, facade.GetMessageStoreDelete()); // Retrieve messages from custom items mailbox. facade.LoadMessageStore(Constants.CustomFolders, facade.GetMessageStoreCustom()); // Setup Message Server MessageStore messageStore = facade.GetMessageStore(); // load the selected message this.LoadSelectedMessage(facade.GetMessageStore()); }
/// <summary> /// Method for load messages. /// </summary> /// <param name="messageListType">The Message List Type.</param> public void LoadMessages(MessageListType messageListType) { Facade facade = Facade.GetInstance(); string selectedFolder = string.Empty; if (messageListType == MessageListType.Inbox || messageListType == MessageListType.Unread || messageListType == MessageListType.Read) { // Attach to Message Store this._store = facade.GetMessageStore(); } else if (messageListType == MessageListType.SentItems) { // Attach to Message Store Sent items this._store = facade.GetMessageStoreSent(); } else if (messageListType == MessageListType.DeletedItems) { // Attach to Message Store Sent items this._store = facade.GetMessageStoreDelete(); } else if (messageListType == MessageListType.Custom) { // Attach to Message Store Sent items this._store = facade.GetMessageStoreCustom(); selectedFolder = MainForm.GetInstance().GetSelectedFolder(); } else { this._store = new MessageStore(); } // Reset DataSource this.messageBS.DataSource = this._store.Messages; this.dataGridView.DataSource = this.messageBS; this.dataGridView.CurrentCell = null; CurrencyManager cm = (CurrencyManager)this.dataGridView.BindingContext[this.dataGridView.DataSource]; cm.SuspendBinding(); foreach (DataGridViewRow row in this.dataGridView.Rows) { MailMessage mailMessage = (MailMessage)row.DataBoundItem; if (messageListType == MessageListType.Unread && mailMessage.Read) { row.Visible = false; } else if (messageListType == MessageListType.Read && !mailMessage.Read) { row.Visible = false; } else if (messageListType == MessageListType.Custom && !mailMessage.ParentFolder.Equals(selectedFolder)) { row.Visible = false; } else { row.Visible = true; } } cm.ResumeBinding(); if (this.messageBS.Count > 0) { this.dataGridView.Sort(this.dataGridView.Columns[2], ListSortDirection.Descending); } MainForm mainForm = this.ParentForm as MainForm; mainForm.LoadSelectedMessage(this._store); this.Invalidate(true); }
/// <summary> /// Method for load the selected message. /// </summary> /// <param name="store">The MessageStore.</param> public void LoadSelectedMessage(MessageStore store) { // load the selected message this.rightSpine1.LoadSelectedMessage(store); }