Changeset 574
- Timestamp:
- 12/29/09 15:34:00 (2 years ago)
- Location:
- trunk/LogicMail/src/org/logicprobe/LogicMail/model
- Files:
-
- 3 edited
-
AccountNode.java (modified) (2 diffs)
-
MailboxNode.java (modified) (7 diffs)
-
MessageNode.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LogicMail/src/org/logicprobe/LogicMail/model/AccountNode.java
r564 r574 550 550 mailboxFolder.setMsgCount(currentFolder.getMsgCount()); 551 551 mailboxFolder.setUnseenCount(currentFolder.getUnseenCount()); 552 mailboxNode.updateUnseenFolderTreeItem(); 552 553 mailboxNode.fireMailboxStatusChanged(MailboxNodeEvent.TYPE_STATUS, 553 554 null); … … 640 641 641 642 if (messageNode != null) { 643 // Set the SEEN bit 644 int flags = messageNode.getFlags(); 645 flags |= MessageNode.Flag.SEEN; 646 messageNode.setFlags(flags); 647 642 648 switch(e.getType()) { 643 649 case MessageEvent.TYPE_FULLY_LOADED: -
trunk/LogicMail/src/org/logicprobe/LogicMail/model/MailboxNode.java
r565 r574 71 71 private FolderTreeItem folderTreeItem; 72 72 private boolean hasAppend; 73 private int unseenMessageCount; 73 74 74 75 private Object fetchLock = new Object(); … … 472 473 if(messageAdded) { 473 474 fireMailboxStatusChanged(MailboxNodeEvent.TYPE_NEW_MESSAGES, new MessageNode[] { message }); 475 updateUnseenMessages(true); 474 476 } 475 477 } … … 496 498 addedMessages.copyInto(addedMessagesArray); 497 499 fireMailboxStatusChanged(MailboxNodeEvent.TYPE_NEW_MESSAGES, addedMessagesArray); 500 updateUnseenMessages(true); 498 501 } 499 502 } … … 536 539 } 537 540 } 541 updateUnseenMessages(false); 538 542 fireMailboxStatusChanged(MailboxNodeEvent.TYPE_STATUS, null); 539 543 } … … 554 558 messageTokenMap.clear(); 555 559 } 560 updateUnseenMessages(false); 556 561 fireMailboxStatusChanged(MailboxNodeEvent.TYPE_STATUS, null); 557 562 } … … 685 690 686 691 /** 692 * Update the unseen message count from the local messages collection. 693 * 694 * @param fireEvent true to fire a status event if the count has changed 695 */ 696 void updateUnseenMessages(boolean fireEvent) { 697 boolean updated = false; 698 synchronized(messages) { 699 int newCount = 0; 700 int size = messages.size(); 701 for(int i=0; i<size; i++) { 702 int flags = ((MessageNode)messages.elementAt(i)).getFlags(); 703 if((flags & MessageNode.Flag.SEEN) == 0) { 704 newCount++; 705 } 706 } 707 if(newCount != unseenMessageCount) { 708 unseenMessageCount = newCount; 709 updated = true; 710 } 711 } 712 if(updated && fireEvent) { 713 fireMailboxStatusChanged(MailboxNodeEvent.TYPE_STATUS, null); 714 } 715 } 716 717 /** 718 * Update the unseen message count from the folder tree item. 719 */ 720 void updateUnseenFolderTreeItem() { 721 synchronized(messages) { 722 unseenMessageCount = this.folderTreeItem.getUnseenCount(); 723 } 724 } 725 726 /** 687 727 * Gets the unseen message count for this folder. 688 728 * … … 690 730 */ 691 731 public int getUnseenMessageCount() { 692 return this.folderTreeItem.getUnseenCount();732 return unseenMessageCount; 693 733 } 694 734 -
trunk/LogicMail/src/org/logicprobe/LogicMail/model/MessageNode.java
r571 r574 347 347 public void setFlags(int flags) { 348 348 cached = false; 349 this.flags = flags; 349 if(this.flags != flags) { 350 this.flags = flags; 351 if(this.getParent() != null) { 352 this.getParent().updateUnseenMessages(true); 353 } 354 } 350 355 } 351 356
Note: See TracChangeset
for help on using the changeset viewer.
