From d39eb39dc11f6ae8026abc887c667a3d97908582 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 22 Dec 2014 22:02:41 +0100 Subject: [PATCH] solution for bug 2539: clear trackerExists flag explicitly for all RaceColunmDTO/RaceLogTrackingInformation objects pointing to tracked race that got removed --- .../AbstractLeaderboardConfigPanel.java | 18 ++++++++++++++---- .../RaceLogTrackingEventManagementPanel.java | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java index 4e1a64da07a..cc6e29035c0 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractLeaderboardConfigPanel.java @@ -459,13 +459,23 @@ public abstract class AbstractLeaderboardConfigPanel extends FormPanel implement @Override public void racesRemoved(Iterable regattaAndRaceIdentifiers) { for (RegattaAndRaceIdentifier regattaAndRaceIdentifier : regattaAndRaceIdentifiers) { - for (RaceColumnDTOAndFleetDTOWithNameBasedEquality raceColumnAndFleetName : raceColumnTable.getDataProvider().getList()) { - if (Util.equalsWithNull(raceColumnAndFleetName.getA().getRaceIdentifier(raceColumnAndFleetName.getB()), regattaAndRaceIdentifier)) { - raceColumnAndFleetName.getA().setRaceIdentifier(raceColumnAndFleetName.getB(), null); + for (StrippedLeaderboardDTO leaderboard : leaderboardList.getList()) { + for (RaceColumnDTO raceColumn : leaderboard.getRaceList()) { + for (FleetDTO fleet : raceColumn.getFleets()) { + if (Util.equalsWithNull(raceColumn.getRaceIdentifier(fleet), regattaAndRaceIdentifier)) { + raceColumn.setRaceIdentifier(fleet, null); // remove link from leaderboard to tracked race + raceColumn.getRaceLogTrackingInfo(fleet).raceLogTrackerExists = false; + } + } } } - raceColumnTable.getDataProvider().refresh(); } + raceColumnTable.getDataProvider().refresh(); + } + + protected void onTrackedRaceForRaceInRaceColumnTableRemoved( + RaceColumnDTOAndFleetDTOWithNameBasedEquality raceColumnAndFleetName) { + raceColumnAndFleetName.getA().setRaceIdentifier(raceColumnAndFleetName.getB(), null); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java index 710436cba28..f941fad0243 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java @@ -52,7 +52,7 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf super(sailingService, regattaRefresher, leaderboardsRefresher, errorReporter, stringMessages, new MultiSelectionModel()); - //add upload panel + // add upload panel CaptionPanel importPanel = new CaptionPanel(stringMessages.importFixes()); VerticalPanel importContent = new VerticalPanel(); mainPanel.add(importPanel);