package de.bps.course.nodes.den;
import java.util.Date;
import java.util.List;
import org.olat.basesecurity.BaseSecurityManager;
import org.olat.commons.calendar.model.KalendarEvent;
import org.olat.core.gui.components.table.DefaultTableDataModel;
import org.olat.core.gui.translator.Translator;
import org.olat.core.id.Identity;
import org.olat.core.id.User;
import org.olat.core.id.UserConstants;
import org.olat.core.util.Formatter;
public class DENListTableDataModel extends DefaultTableDataModel {
public static final String CHANGE_ACTION = "denPartsChange";
public static final String MAIL_ACTION = "denSendMail";
public static final String DELETE_ACTION = "denDeleteParticipants";
// subject, date, location, comment, participants, usernames, action
private static final int COLUMN_COUNT = 7;
private DENManager denManager;
private Translator translator;
public DENListTableDataModel(List objects, Translator translator) {
super(objects);
denManager = DENManager.getInstance();
this.translator = translator;
}
@Override
public int getColumnCount() {
return COLUMN_COUNT;
}
@Override
public Object getValueAt(int row, int col) {
KalendarEvent event = (KalendarEvent)objects.get(row);
switch (col) {
case 0:
//subject
return denManager.format(event.getSubject());
case 1:
//begin
Formatter formatter = Formatter.getInstance(translator.getLocale());
String formattedDate = formatter.formatDateAndTime(event.getBegin());
return denManager.format(formattedDate);
case 2:
//duration
Date begin = event.getBegin();
Date end = event.getEnd();
long milliSeconds = denManager.getDuration(begin, end);
return denManager.formatDuration(milliSeconds, translator);
case 3:
//location
return denManager.format(event.getLocation());
case 4:
//comment
return event.getComment();
case 5:
//participants
StringBuilder names = new StringBuilder("");
if(event.getParticipants() == null || event.getParticipants().length < 1)
return "";
for( String participant : event.getParticipants() ) {
Identity identity = BaseSecurityManager.getInstance().findIdentityByName(participant);
User user = identity.getUser();
names.append(user.getProperty(UserConstants.LASTNAME, getLocale()) + ", " + user.getProperty(UserConstants.FIRSTNAME, getLocale()) + "
");
}
return names.toString();
case 6:
//usernames
StringBuilder usernames = new StringBuilder("");
if(event.getParticipants() == null || event.getParticipants().length < 1)
return "";
for( String participant : event.getParticipants() ) {
Identity identity = BaseSecurityManager.getInstance().findIdentityByName(participant);
usernames.append(identity.getName() + "
");
}
return usernames.toString();
case 7:
//action
return Boolean.TRUE;
default: return "error";
}
}
}