package de.tud.kom.socom.web.client.sharedmodels;
import java.util.List;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.user.client.rpc.IsSerializable;
public class AchievementSummary implements IsSerializable {
private String achievementsCompleted;
private String achievementPoints;
public AchievementSummary(List<Achievement> achievements) {
int achievementsCompletedCount = 0;
int currentAchievementPoints = 0;
int maxAchievementPoints = 0;
for(Achievement achievement : achievements) {
if(achievement.getProgress().isCompleted()) {
achievementsCompletedCount++;
}
for(AchievementLevel level : achievement.getLevels()) {
maxAchievementPoints += level.getRewardPoints();
if(achievement.getProgress().isCompleted()
|| achievement.getProgress().getCurrentLevel() > level.getLevel()) {
currentAchievementPoints += level.getRewardPoints();
}
}
}
achievementsCompleted = "" + achievementsCompletedCount + "/" + achievements.size();
achievementPoints = "" + currentAchievementPoints + "/" + maxAchievementPoints;
}
public SafeHtml toSafeHtml() {
@SuppressWarnings("serial")
SafeHtml safeHtlm = new SafeHtml() {
@Override
public String asString() {
String html = "<table>" +
"<tr>" +
"<td style='padding:5px' colspan='2'>Summary<hr style='color:#fff'></td>" +
"</tr>" +
"<tr>" +
"<td style='padding:5px'>Achievement points</td>" +
"<td style='padding:5px'>" + achievementPoints +"</td>" +
"</tr>" +
"<tr>" +
"<td style='padding:5px'>Achievements completed</td>" +
"<td style='padding:5px'>" + achievementsCompleted +"</td>" +
"</tr>" +
"</table>";
return html;
}
};
return safeHtlm;
}
}