package scrum.client.admin; import ilarkesto.gwt.client.AFieldValueWidget; import ilarkesto.gwt.client.Gwt; import ilarkesto.gwt.client.TableBuilder; import ilarkesto.gwt.client.editor.IntegerEditorWidget; import ilarkesto.gwt.client.editor.TextEditorWidget; import scrum.client.ScrumGwt; import scrum.client.common.AScrumWidget; import scrum.client.common.UserGuideWidget; import scrum.client.project.Project; import scrum.client.workspace.PagePanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.Widget; public class PunishmentsWidget extends AScrumWidget { @Override protected Widget onInitialization() { PagePanel page = new PagePanel(); Project project = getCurrentProject(); TableBuilder main = ScrumGwt.createFieldTable(); main.add(Gwt.createDiv("PunishmentsWidget-tableHeader", "User")); main.add(Gwt.createDiv("PunishmentsWidget-tableHeader", "Misconducts")); main.add(Gwt.createDiv("PunishmentsWidget-tableHeader", "Punishment")); main.nextRow(); for (User u : project.getParticipants()) { Label nameLabel = new Label(u.getName()); nameLabel.getElement().getStyle().setProperty("color", project.getUserConfig(u).getColor()); main.add(nameLabel); main.add(new IntegerEditorWidget(u.getProjectConfig().getMisconductsModel())); main.add(new PunishmentViewer(u.getProjectConfig(), project)); main.nextRow(); } page.addHeader("Courtroom"); page.addSection(main.createTable()); if (project.isScrumMaster(getCurrentUser())) { TableBuilder settings = ScrumGwt.createFieldTable(); settings.addFieldRow("Factor", new IntegerEditorWidget(project.getPunishmentFactorModel())); settings.addFieldRow("Unit", new TextEditorWidget(project.getPunishmentUnitModel())); page.addHeader("Punishment Configuration"); page.addSection(settings.createTable()); } page.addSection(new UserGuideWidget(getLocalizer().views().courtRoom(), true, getCurrentUser() .getHideUserGuideCourtroomModel())); return page; } private class PunishmentViewer extends AFieldValueWidget { private ProjectUserConfig userConfig; private Project project; public PunishmentViewer(ProjectUserConfig userConfig, Project project) { super(); this.userConfig = userConfig; this.project = project; } @Override protected void onUpdate() { setText(userConfig.getMisconducts() * project.getPunishmentFactor() + " " + project.getPunishmentUnit()); } } }