Races lists - Temporary adjustements to RaceView DTOs

This commit is contained in:
Benjamin Barth committed 2015-07-02 17:33:41 +02:00
1 parent 05cdb4d2cb
commit d0c2ba7f40
3 files changed
+107 -22

No files matched your search

@@ -1,23 +1,23 @@
package com.sap.sailing.gwt.ui.shared.dispatch.event;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.google.gwt.user.client.rpc.IsSerializable;
import com.sap.sailing.gwt.ui.shared.race.FleetMetadataDTO;
public class RaceListDayDTO implements IsSerializable {
private Date day;
public class RaceListFleetDTO implements IsSerializable {
private FleetMetadataDTO fleet;
private int competitorCount = (int) (Math.random() * 10); // TODO
private ArrayList<RaceListRaceDTO> races = new ArrayList<>();
@SuppressWarnings("unused")
private RaceListDayDTO() {
private RaceListFleetDTO() {
}
public RaceListDayDTO(Date day) {
this.day = day;
public RaceListFleetDTO(FleetMetadataDTO fleet) {
this.fleet = fleet;
}
public void addRace(RaceListRaceDTO race) {
@@ -25,8 +25,12 @@ public class RaceListDayDTO implements IsSerializable {
races.add(race);
}
public Date getDay() {
return day;
public FleetMetadataDTO getFleet() {
return fleet;
}
public int getCompetitorCount() {
return competitorCount;
}
public List<RaceListRaceDTO> getRaces() {
@@ -0,0 +1,57 @@
package com.sap.sailing.gwt.ui.shared.dispatch.event;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import com.google.gwt.user.client.rpc.IsSerializable;
import com.sap.sailing.gwt.ui.shared.race.FleetMetadataDTO;
public class RaceListSeriesDTO implements IsSerializable {
private String seriesName;
private int raceCount = 0;
private int competitorCount = (int) (Math.random() * 10); // TODO
private Map<String, RaceListFleetDTO> fleets = new HashMap<>();
@SuppressWarnings("unused")
private RaceListSeriesDTO() {
}
public RaceListSeriesDTO(String seriesName) {
this.seriesName = seriesName;
}
public void addRace(RaceListRaceDTO race) {
RaceListFleetDTO fleet = ensureFleet(race.getFleet());
fleet.addRace(race);
raceCount++;
}
private RaceListFleetDTO ensureFleet(FleetMetadataDTO fleetData) {
String fleetName = fleetData == null ? null : fleetData.getFleetName();
RaceListFleetDTO fleet = fleets.get(fleetName);
if (fleet == null) {
fleets.put(fleetName, fleet = new RaceListFleetDTO(fleetData));
}
return fleet;
}
public String getSeriesName() {
return seriesName;
}
public int getRaceCount() {
return raceCount;
}
public int getCompetitorCount() {
return competitorCount;
}
public Collection<RaceListFleetDTO> getFleets() {
return fleets.values();
}
}
@@ -1,38 +1,62 @@
package com.sap.sailing.gwt.ui.shared.dispatch.event;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import com.sap.sailing.gwt.ui.shared.dispatch.DTO;
import com.sap.sailing.gwt.ui.shared.race.RaceMetadataDTO;
public class RaceListViewDTO implements DTO {
private LiveRacesDTO liveRaces;
private ArrayList<RaceListDayDTO> raceDays = new ArrayList<>();
private ArrayList<RaceListRaceDTO> allRaces = new ArrayList<>();
public void addRace(RaceListRaceDTO race) {
// TODO implement based on race.getStart();
}
public void setLiveRaces(LiveRacesDTO liveRaces) {
this.liveRaces = liveRaces;
this.liveRaces = new LiveRacesDTO();
for (int i = 0; i < liveRaces.getRaces().size(); i++) {
LiveRaceDTO liveRace = liveRaces.getRaces().get(i);
if (i < 3) this.liveRaces.addRace(liveRace);
allRaces.add(convert(liveRace));
}
}
public LiveRacesDTO getLiveRaces() {
LiveRacesDTO liveRaces = new LiveRacesDTO();
for (int i = 0; i < this.liveRaces.getRaces().size(); i++) {
if (i == 3) break;
liveRaces.addRace(this.liveRaces.getRaces().get(i));
}
return liveRaces ;
}
public LiveRacesDTO getAllRaces() {
return liveRaces;
}
public List<RaceListDayDTO> getRaceDays() {
return raceDays;
public List<RaceListRaceDTO> getAllRaces() {
return allRaces;
}
public Collection<RaceListSeriesDTO> getRacesForCompetitionFormat() {
RaceListSeriesDTO withFleets = new RaceListSeriesDTO("Fleets");
RaceListSeriesDTO noFleets = new RaceListSeriesDTO("");
for (RaceListRaceDTO race : allRaces) {
RaceListSeriesDTO series = race.getFleet() == null ? noFleets : withFleets;
series.addRace(race);
}
return Arrays.asList(withFleets, noFleets);
}
private RaceListRaceDTO convert(RaceMetadataDTO liveRace) {
RaceListRaceDTO raceListRace = new RaceListRaceDTO(liveRace.getRegattaName(), liveRace.getRaceName());
raceListRace.setBoatClass(liveRace.getBoatClass());
raceListRace.setCourse(liveRace.getCourse());
raceListRace.setCourseArea(liveRace.getCourseArea());
raceListRace.setFleet(liveRace.getFleet());
raceListRace.setRegattaDisplayName(liveRace.getRegattaDisplayName());
raceListRace.setStart(liveRace.getStart());
raceListRace.setTrackedRaceName(liveRace.getTrackedRaceName());
raceListRace.setTrackingState(liveRace.getTrackingState());
raceListRace.setViewState(liveRace.getViewState());
raceListRace.setWind(liveRace.getWind());
return raceListRace;
}
}