From 9f46c7a24e392829cb62683d5712fd4efb227f35 Mon Sep 17 00:00:00 2001 From: Lukas Niemeier Date: Sat, 25 May 2013 18:01:55 +0200 Subject: [PATCH] refs bug 1354 # UI changes to course area of FlexibleLeaderboard are sent to server # Added replication for changes to course area of FlexibleLeaderboard --- .../ui/adminconsole/LeaderboardConfigPanel.java | 3 ++- .../sap/sailing/gwt/ui/client/SailingService.java | 2 +- .../gwt/ui/client/SailingServiceAsync.java | 2 +- .../sailing/gwt/ui/server/SailingServiceImpl.java | 5 +++-- .../UpdateLeaderboard.java | 15 ++++++++++++++- 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index b873ac08e14..a29e8706a34 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -1023,7 +1023,7 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb private void updateLeaderboard(final String oldLeaderboardName, final LeaderboardDescriptor leaderboardToUpdate) { sailingService.updateLeaderboard(oldLeaderboardName, leaderboardToUpdate.getName(), leaderboardToUpdate.getDisplayName(), - leaderboardToUpdate.getDiscardThresholds(), new AsyncCallback() { + leaderboardToUpdate.getDiscardThresholds(), leaderboardToUpdate.getCourseAreaIdAsString(), new AsyncCallback() { @Override public void onFailure(Throwable t) { errorReporter.reportError("Error trying to update leaderboard " + oldLeaderboardName + ": " @@ -1038,6 +1038,7 @@ public class LeaderboardConfigPanel extends FormPanel implements SelectedLeaderb dao.name = leaderboardToUpdate.getName(); dao.displayName = leaderboardToUpdate.getDisplayName(); dao.discardThresholds = leaderboardToUpdate.getDiscardThresholds(); + dao.defaultCourseAreaIdAsString = leaderboardToUpdate.getCourseAreaIdAsString(); break; } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 8a48573ed86..7a3701a13b6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -122,7 +122,7 @@ public interface SailingService extends RemoteService { List getLeaderboardsByEvent(RegattaDTO regatta); - void updateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, int[] newDiscardingThreasholds); + void updateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, int[] newDiscardingThreasholds, String newCourseAreaIdAsString); StrippedLeaderboardDTO createFlexibleLeaderboard(String leaderboardName, String leaderboardDisplayName, int[] discardThresholds, ScoringSchemeType scoringSchemeType, String courseAreaId); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 8ef24640b79..87855a4e247 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -190,7 +190,7 @@ public interface SailingServiceAsync { void getLeaderboardsByRace(RaceDTO race, AsyncCallback> callback); void updateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, - int[] newDiscardingThreasholds, AsyncCallback callback); + int[] newDiscardingThreasholds, String newCourseAreaIdAsId, AsyncCallback callback); void createFlexibleLeaderboard(String leaderboardName, String leaderboardDisplayName, int[] discardThresholds, ScoringSchemeType scoringSchemeType, String courseAreaId, AsyncCallback asyncCallback); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index b4c6e3795fb..1dabc67dba7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -1617,8 +1617,9 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public void updateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, int[] newDiscardingThresholds) { - getService().apply(new UpdateLeaderboard(leaderboardName, newLeaderboardName, newLeaderboardDisplayName, newDiscardingThresholds)); + public void updateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, int[] newDiscardingThresholds, String newCourseAreaIdAsString) { + UUID newCourseAreaUuid = convertIdentifierStringToUuid(newCourseAreaIdAsString); + getService().apply(new UpdateLeaderboard(leaderboardName, newLeaderboardName, newLeaderboardDisplayName, newDiscardingThresholds, newCourseAreaUuid)); } @Override diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java index 82226cf8ed6..7e83ad7d652 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboard.java @@ -1,7 +1,10 @@ package com.sap.sailing.server.operationaltransformation; +import java.io.Serializable; import java.util.Arrays; +import com.sap.sailing.domain.base.CourseArea; +import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.ResultDiscardingRuleImpl; import com.sap.sailing.server.RacingEventService; @@ -12,12 +15,14 @@ public class UpdateLeaderboard extends AbstractLeaderboardOperation { private final String newLeaderboardName; private final String newLeaderboardDisplayName; private final int[] newDiscardingThresholds; + private final Serializable newCourseAreaId; - public UpdateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, int[] newDiscardingThresholds) { + public UpdateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName, int[] newDiscardingThresholds, Serializable newCourseAreaId) { super(leaderboardName); this.newLeaderboardName = newLeaderboardName; this.newLeaderboardDisplayName = newLeaderboardDisplayName; this.newDiscardingThresholds = newDiscardingThresholds; + this.newCourseAreaId = newCourseAreaId; } @Override @@ -42,6 +47,14 @@ public class UpdateLeaderboard extends AbstractLeaderboardOperation { leaderboard.setResultDiscardingRule(new ResultDiscardingRuleImpl(newDiscardingThresholds)); } leaderboard.setDisplayName(newLeaderboardDisplayName); + + if (leaderboard instanceof FlexibleLeaderboard) { + FlexibleLeaderboard flexibleLeaderboard = (FlexibleLeaderboard) leaderboard; + CourseArea newCourseArea = toState.getCourseArea(newCourseAreaId); + if (newCourseArea != flexibleLeaderboard.getDefaultCourseArea()) { + flexibleLeaderboard.setDefaultCourseArea(newCourseArea); + } + } updateStoredLeaderboard(toState, leaderboard); return null; }