// create displayable list of timer events
SmsServiceDbManager smsServiceDbManager = new SmsServiceDbManager(locale, session);
TimerEvent[] timerEvents = smsServiceDbManager.getTimerEvents(null,null, 0, true, groupToDisplay,userToDisplay); // show also out-of-date timer events, but not processed entries (shouldn't occur anyhow)
TimerEventListForm.DisplayListEntry[] displayListEntries = new TimerEventListForm.DisplayListEntry[timerEvents.length];
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
CommandEntryManager commandEntryManager = new CommandEntryManager(locale,session);
MessageResources resources = getResources(req);
String noInteractionsString = resources.getMessage(locale,"smssvc.noInteractions");
int i = 0;
for (TimerEvent event : timerEvents) {
TimerEventListForm.DisplayListEntry displayListEntry = new TimerEventListForm.DisplayListEntry();
displayListEntry.setTimerEventId(event.getId());
displayListEntry.setGroupname(event.getGroup().getGroupname());
displayListEntry.setUsername( event.getOwningUser().getUsername()); // not-null in the database
displayListEntry.setPointInTime(dateFormat.format(event.getScheduledTime()));
// description shows first command entry; "..." if more are available; empty comments at the beginning are ignored
String description = noInteractionsString;
SortedSet<CommandEntry> sortedCommandEntries = CommandEntryManager.sortedCommandEntries(event.getCommandEntries());
Iterator<CommandEntry> iterator = sortedCommandEntries.iterator();
while (iterator.hasNext()){
CommandEntry commandEntry = iterator.next();
if (commandEntry instanceof CommentCommandEntry){
String commentDescription = ((CommentCommandEntry)commandEntry).getDescription();
if (commentDescription != null){
description = "(" + commentDescription + ")";
break;
}
} else {
description = commandEntryManager.createCommandEntryExtender(commandEntry).readableCommandDescription(req);
break;
}
}
if (iterator.hasNext()) {
description += "; ...";