if ( [[#variablef3329c0]][swap].size() > 0) {
// First sort so that Events from one folder stick together
Collections.sort( [[#variablef3329c0]][swap], FolderEventComparator.getInstance());
FolderEvent event = (FolderEvent) [[#variablef3329c0]][swap].get(0);
IMailFolder lastFolder = (IMailFolder) event.getSource();
// Collect the uids for one folder
List collectedUids = new ArrayList();
collectedUids.add(event.getChanges());
// Process the events
for (int i = 1; i < [[#variablef3329c0]][swap].size(); i++) {
FolderEvent next = (FolderEvent) [[#variablef3329c0]][swap].get(i);
if (next.getSource() != lastFolder) {
// new folder, fire to the old folder
fireTableEvent(new TableModelChangedEvent(TableModelChangedEvent. [[#variablef332900]], lastFolder, collectedUids.toArray()));
// clear list and collect uids for new folder
collectedUids.clear();
collectedUids.add(next.getChanges());
lastFolder = (IMailFolder) next.getSource();
}
else {
collectedUids.add(next.getChanges());
}
}
fireTableEvent(new TableModelChangedEvent(TableModelChangedEvent. [[#variablef332900]], lastFolder, collectedUids.toArray()));
}
|