@Override public void onSwitchToNextSprint(GwtConversation conversation) { assertProjectSelected(conversation); Project project = conversation.getProject(); Sprint oldSprint = project.getCurrentSprint(); for (Requirement requirement : oldSprint.getRequirements()) { if (!requirement.isClosed()) { requirement.setDirty(true); sendToClients(conversation, requirement); } } Sprint newSprint = project.switchToNextSprint(); postProjectEvent( conversation, conversation.getSession().getUser() + " switched to next sprint ", newSprint); sendToClients(conversation, project.getSprints()); sendToClients(conversation, project.getSprintReports()); sendToClients(conversation, project.getRequirements()); sendToClients(conversation, project.getTasks()); // TODO optimize: no history tasks sendToClients(conversation, oldSprint.getReleases()); sendToClients(conversation, project); }