addressing bug 623: removing DeprecatedRegattaDTO

This commit is contained in:
Axel Uhl committed 2012-05-14 17:44:28 +02:00
1 parent fb6163f508
commit 460ad15b40
7 files changed
+56 -108

No files matched your search

@@ -15,16 +15,15 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.RaceDTO;
import com.sap.sailing.gwt.ui.shared.DeprecatedRegattaDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
public class RacesListBoxPanel extends FormPanel implements RegattaDisplayer, RaceSelectionChangeListener {
private final List<RaceDTO> raceList;
@@ -72,11 +71,9 @@ public class RacesListBoxPanel extends FormPanel implements RegattaDisplayer, Ra
public void fillRegattas(List<RegattaDTO> result) {
raceList.clear();
raceListBox.clear();
for (RegattaDTO event : result) {
for (DeprecatedRegattaDTO regatta : event.deprecatedRegattas) {
for (RaceDTO race : regatta.races) {
raceList.add(race);
}
for (RegattaDTO regatta : result) {
for (RaceDTO race : regatta.races) {
raceList.add(race);
}
}
Collections.sort(raceList, new Comparator<RaceDTO>() {
@@ -412,13 +412,11 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
}
List<RaceDTO> newAllRaces = new ArrayList<RaceDTO>();
List<RegattaAndRaceIdentifier> newAllRaceIdentifiers = new ArrayList<RegattaAndRaceIdentifier>();
for (RegattaDTO event : events) {
for (DeprecatedRegattaDTO regatta : event.deprecatedRegattas) {
for (RaceDTO race : regatta.races) {
if (race != null) {
newAllRaces.add(race);
newAllRaceIdentifiers.add(race.getRaceIdentifier());
}
for (RegattaDTO regatta : events) {
for (RaceDTO race : regatta.races) {
if (race != null) {
newAllRaces.add(race);
newAllRaceIdentifiers.add(race.getRaceIdentifier());
}
}
}
@@ -12,14 +12,13 @@ import com.google.gwt.user.client.ui.Grid;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.gwt.ui.client.ErrorReporter;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
import com.sap.sailing.gwt.ui.client.RegattaRefresher;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.RaceDTO;
import com.sap.sailing.gwt.ui.shared.DeprecatedRegattaDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
public class TrackedRacesManagementPanel extends AbstractEventManagementPanel implements RaceSelectionChangeListener {
private RegattaAndRaceIdentifier singleSelectedRace;
@@ -82,14 +81,12 @@ public class TrackedRacesManagementPanel extends AbstractEventManagementPanel im
selectedRacePanel.setCaptionText(singleSelectedRace.getRaceName());
selectedRacePanel.setVisible(true);
for (RegattaDTO event : savedEvents) {
for (DeprecatedRegattaDTO regatta : event.deprecatedRegattas) {
for (RaceDTO race : regatta.races) {
if (race != null && race.getRaceIdentifier().equals(singleSelectedRace)) {
this.selectedRaceDTO = race;
refreshRaceData();
break;
}
for (RegattaDTO regatta : savedEvents) {
for (RaceDTO race : regatta.races) {
if (race != null && race.getRaceIdentifier().equals(singleSelectedRace)) {
this.selectedRaceDTO = race;
refreshRaceData();
break;
}
}
}
@@ -22,11 +22,10 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
import com.sap.sailing.gwt.ui.shared.RaceDTO;
import com.sap.sailing.gwt.ui.shared.DeprecatedRegattaDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.UserDTO;
import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
@@ -147,11 +146,9 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
private RaceDTO findRace(String regattaName, String raceName, List<RegattaDTO> regattas) {
for (RegattaDTO regattaDTO : regattas) {
if (regattaDTO.name.equals(regattaName)) {
for (DeprecatedRegattaDTO deprecatedRegattaDTO : regattaDTO.deprecatedRegattas) {
for (RaceDTO raceDTO: deprecatedRegattaDTO.races) {
if (raceDTO.name.equals(raceName)) {
return raceDTO;
}
for (RaceDTO raceDTO : regattaDTO.races) {
if (raceDTO.name.equals(raceName)) {
return raceDTO;
}
}
}
@@ -20,17 +20,17 @@ import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.MenuBar;
import com.google.gwt.user.client.ui.ToggleButton;
import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.gwt.ui.actions.AsyncActionsExecutor;
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.ErrorReporter;
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.RaceTimePanel;
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
import com.sap.sailing.gwt.ui.client.RegattaDisplayer;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.Timer;
@@ -38,9 +38,8 @@ import com.sap.sailing.gwt.ui.client.UserAgentChecker.UserAgentTypes;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.RaceDTO;
import com.sap.sailing.gwt.ui.shared.DeprecatedRegattaDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.UserDTO;
import com.sap.sailing.gwt.ui.shared.charts.AbstractChartPanel;
import com.sap.sailing.gwt.ui.shared.charts.MultiChartPanel;
@@ -369,11 +368,9 @@ public class RaceBoardPanel extends FormPanel implements RegattaDisplayer, RaceS
public void fillRegattas(List<RegattaDTO> regattas) {
racesByIdentifier.clear();
for (RegattaDTO regatta : regattas) {
for (DeprecatedRegattaDTO deprecatedRegatta : regatta.deprecatedRegattas) {
for (RaceDTO race : deprecatedRegatta.races) {
if (race != null && race.getRaceIdentifier() != null) {
racesByIdentifier.put(race.getRaceIdentifier(), race);
}
for (RaceDTO race : regatta.races) {
if (race != null && race.getRaceIdentifier() != null) {
racesByIdentifier.put(race.getRaceIdentifier(), race);
}
}
}
@@ -35,13 +35,12 @@ import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Buoy;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Course;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Leg;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.SpeedWithBearing;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.KnotSpeedImpl;
@@ -52,11 +51,6 @@ import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.CountryCode;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RegattaFetcher;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.RegattaName;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.common.LegType;
import com.sap.sailing.domain.common.MaxPointsReason;
import com.sap.sailing.domain.common.NoWindError;
@@ -65,6 +59,11 @@ import com.sap.sailing.domain.common.Placemark;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.RaceFetcher;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RegattaFetcher;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.RegattaName;
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.Tack;
import com.sap.sailing.domain.common.TimePoint;
@@ -112,7 +111,6 @@ import com.sap.sailing.gwt.ui.shared.BoatClassDTO;
import com.sap.sailing.gwt.ui.shared.CompetitorDTO;
import com.sap.sailing.gwt.ui.shared.CompetitorRaceDataDTO;
import com.sap.sailing.gwt.ui.shared.CourseDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardEntryDTO;
@@ -132,7 +130,7 @@ import com.sap.sailing.gwt.ui.shared.RaceDTO;
import com.sap.sailing.gwt.ui.shared.RaceInLeaderboardDTO;
import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO;
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
import com.sap.sailing.gwt.ui.shared.DeprecatedRegattaDTO;
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.ReplicaDTO;
import com.sap.sailing.gwt.ui.shared.ReplicationMasterDTO;
import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO;
@@ -163,8 +161,8 @@ import com.sap.sailing.server.operationaltransformation.RenameLeaderboardColumn;
import com.sap.sailing.server.operationaltransformation.RenameLeaderboardGroup;
import com.sap.sailing.server.operationaltransformation.SetRaceIsKnownToStartUpwind;
import com.sap.sailing.server.operationaltransformation.SetWindSourcesToExclude;
import com.sap.sailing.server.operationaltransformation.StopTrackingRegatta;
import com.sap.sailing.server.operationaltransformation.StopTrackingRace;
import com.sap.sailing.server.operationaltransformation.StopTrackingRegatta;
import com.sap.sailing.server.operationaltransformation.UpdateCompetitorDisplayNameInLeaderboard;
import com.sap.sailing.server.operationaltransformation.UpdateIsMedalRace;
import com.sap.sailing.server.operationaltransformation.UpdateLeaderboard;
@@ -422,46 +420,18 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
List<RegattaDTO> result = new ArrayList<RegattaDTO>();
for (Regatta regatta : getService().getAllRegattas()) {
List<CompetitorDTO> competitorList = getCompetitorDTOs(regatta.getCompetitors());
List<DeprecatedRegattaDTO> regattasList = getRegattaDTOs(regatta);
RegattaDTO regattaDTO = new RegattaDTO(regatta.getName(), regattasList, competitorList);
for (DeprecatedRegattaDTO deprecatedRegatta : regattasList) {
deprecatedRegatta.setRegatta(regattaDTO);
}
if (!regattaDTO.deprecatedRegattas.isEmpty()) {
RegattaDTO regattaDTO = new RegattaDTO(regatta.getName(), competitorList);
regattaDTO.races = getRaceDTOs(regatta);
if (!regattaDTO.races.isEmpty()) {
result.add(regattaDTO);
}
}
return result;
}
private List<DeprecatedRegattaDTO> getRegattaDTOs(Regatta regatta) {
Map<BoatClass, Set<RaceDefinition>> racesByBoatClass = new HashMap<BoatClass, Set<RaceDefinition>>();
for (RaceDefinition r : regatta.getAllRaces()) {
Set<RaceDefinition> racesForBoatClass = racesByBoatClass.get(r.getBoatClass());
if (racesForBoatClass == null) {
racesForBoatClass = new HashSet<RaceDefinition>();
racesByBoatClass.put(r.getBoatClass(), racesForBoatClass);
}
racesForBoatClass.add(r);
}
List<DeprecatedRegattaDTO> result = new ArrayList<DeprecatedRegattaDTO>();
for (Map.Entry<BoatClass, Set<RaceDefinition>> e : racesByBoatClass.entrySet()) {
List<RaceDTO> raceDTOsInBoatClass = getRaceDTOs(regatta, e.getValue());
if (!raceDTOsInBoatClass.isEmpty()) {
DeprecatedRegattaDTO deprecatedRegatta = new DeprecatedRegattaDTO(new BoatClassDTO(e.getKey() == null ? "" : e.getKey().getName(), e
.getKey().getHullLength().getMeters()), raceDTOsInBoatClass);
for (RaceDTO race : raceDTOsInBoatClass) {
race.setRegatta(deprecatedRegatta);
}
result.add(deprecatedRegatta);
}
}
return result;
}
private List<RaceDTO> getRaceDTOs(Regatta regatta, Set<RaceDefinition> races) {
private List<RaceDTO> getRaceDTOs(Regatta regatta) {
List<RaceDTO> result = new ArrayList<RaceDTO>();
for (RaceDefinition r : races) {
for (RaceDefinition r : regatta.getAllRaces()) {
RaceDTO raceDTO = new RaceDTO(r.getName(), getCompetitorDTOs(r.getCompetitors()), getService().isRaceBeingTracked(r));
TrackedRace trackedRace = getService().getExistingTrackedRace(new RegattaNameAndRaceName(regatta.getName(), r.getName()));
if (trackedRace != null) {
@@ -1183,12 +1153,10 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
@Override
public List<LeaderboardDTO> getLeaderboardsByEvent(RegattaDTO regatta) {
List<LeaderboardDTO> results = new ArrayList<LeaderboardDTO>();
for (DeprecatedRegattaDTO deprecatedRegatta : regatta.deprecatedRegattas) {
for (RaceDTO race : deprecatedRegatta.races) {
List<LeaderboardDTO> leaderboard = getLeaderboardsByRace(race);
if (leaderboard != null && !leaderboard.isEmpty()) {
results.addAll(leaderboard);
}
for (RaceDTO race : regatta.races) {
List<LeaderboardDTO> leaderboard = getLeaderboardsByRace(race);
if (leaderboard != null && !leaderboard.isEmpty()) {
results.addAll(leaderboard);
}
}
// Removing duplicates
@@ -6,25 +6,24 @@ import java.util.List;
import com.google.gwt.user.client.rpc.IsSerializable;
public class RegattaDTO extends NamedDTO implements IsSerializable {
public List<DeprecatedRegattaDTO> deprecatedRegattas;
public BoatClassDTO boatClass;
public List<RaceDTO> races;
public List<CompetitorDTO> competitors;
public RegattaDTO() {
}
public RegattaDTO(String name, List<DeprecatedRegattaDTO> deprecatedRegattas, List<CompetitorDTO> competitors) {
public RegattaDTO(String name, List<CompetitorDTO> competitors) {
super(name);
this.name = name;
this.deprecatedRegattas = deprecatedRegattas;
this.competitors = competitors;
}
/**
* @return The start date of the first {@link RaceDTO Race} in the first {@link DeprecatedRegattaDTO Regatta}, or
* <code>null</code> if the start date isn't set
* @return The start date of the first {@link #races Race}, or <code>null</code> if the start date isn't set
*/
public Date getStartDate() {
return deprecatedRegattas.get(0).races.get(0).startOfRace;
return races.get(0).startOfRace;
}
/**
@@ -32,17 +31,12 @@ public class RegattaDTO extends NamedDTO implements IsSerializable {
*/
public boolean currentlyTracked() {
boolean tracked = false;
regattaLoop:
for (DeprecatedRegattaDTO deprecatedRegatta : deprecatedRegattas) {
for (RaceDTO race : deprecatedRegatta.races) {
tracked = race.currentlyTracked;
if (tracked) {
break regattaLoop;
}
for (RaceDTO race : races) {
tracked = race.currentlyTracked;
if (tracked) {
break;
}
}
return tracked;
}