package scrum.client.dashboard; import ilarkesto.gwt.client.Gwt; import ilarkesto.gwt.client.TableBuilder; import java.util.List; import scrum.client.admin.User; import scrum.client.common.AScrumWidget; import scrum.client.journal.ProjectEvent; import scrum.client.project.Project; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; public class LatestEventsWidget extends AScrumWidget { private SimplePanel wrapper; @Override protected Widget onInitialization() { wrapper = new SimplePanel(); wrapper.setStyleName("LatestEventsWidget"); return wrapper; } @Override protected void onUpdate() { Project project = getCurrentProject(); List<ProjectEvent> events = project.getLatestProjectEvents(5); TableBuilder tb = new TableBuilder(); tb.setColumnWidths("100px"); if (!events.isEmpty()) { for (ProjectEvent event : events) { Widget timeWidget = Gwt.createDiv("LatestEventsWidget-time", event.getDateAndTime().getPeriodToNow() .toShortestString() + " ago"); String html = event.toHtml(); html = colorUsers(html); Widget textWidget = new HTML(html); tb.addRow(timeWidget, textWidget); } } wrapper.setWidget(tb.createTable()); } private String colorUsers(String html) { Project project = getCurrentProject(); for (User user : project.getParticipants()) { html = html.replace(user.getName(), "<span style='color: " + project.getUserConfig(user).getColor() + ";'>" + user.getName() + "</span>"); } return html; } }