mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
use racelog tracking info DTO instead of putting rl-tracking data in FleetDTO
This commit is contained in:
1 parent
dd9d1ebfc2
commit
625564d4d2
6 files changed
+54
-19
No files matched your search
@@ -1,17 +1,12 @@
|
||||
package com.sap.sailing.domain.common.dto;
|
||||
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
|
||||
|
||||
public class FleetDTO extends NamedDTO {
|
||||
private static final long serialVersionUID = 1336494392278190103L;
|
||||
private Color color;
|
||||
private int orderNo;
|
||||
|
||||
public RaceLogTrackingState raceLogTrackingState;
|
||||
public boolean raceLogTrackerExists;
|
||||
public boolean competitorRegistrationsExist;
|
||||
|
||||
public FleetDTO() {}
|
||||
|
||||
public FleetDTO(String fleetName, int orderNo, Color color) {
|
||||
|
||||
+10
@@ -22,6 +22,8 @@ public class RaceColumnDTO extends NamedDTO implements Serializable {
|
||||
private Boolean isValidInTotalScore;
|
||||
private Double explicitFactor;
|
||||
private double effectiveFactor;
|
||||
|
||||
private final Map<FleetDTO, RaceLogTrackingInfoDTO> raceLogTrackingInfos = new HashMap<FleetDTO, RaceLogTrackingInfoDTO>();
|
||||
|
||||
RaceColumnDTO() {} // for GWT serialization
|
||||
|
||||
@@ -283,4 +285,12 @@ public class RaceColumnDTO extends NamedDTO implements Serializable {
|
||||
public double getEffectiveFactor() {
|
||||
return effectiveFactor;
|
||||
}
|
||||
|
||||
public RaceLogTrackingInfoDTO getRaceLogTrackingInfo(FleetDTO fleet) {
|
||||
return raceLogTrackingInfos.get(fleet);
|
||||
}
|
||||
|
||||
public void setRaceLogTrackingInfo(FleetDTO fleet, RaceLogTrackingInfoDTO info) {
|
||||
raceLogTrackingInfos.put(fleet, info);
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.sap.sailing.domain.common.dto;
|
||||
|
||||
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
|
||||
|
||||
public class RaceLogTrackingInfoDTO {
|
||||
public boolean raceLogTrackerExists;
|
||||
public boolean competitorRegistrationsExists;
|
||||
public RaceLogTrackingState raceLogTrackingState;
|
||||
|
||||
public RaceLogTrackingInfoDTO(boolean raceLogTrackerExists, boolean competitorRegistrationsExists,
|
||||
RaceLogTrackingState raceLogTrackingState) {
|
||||
this.raceLogTrackerExists = raceLogTrackerExists;
|
||||
this.competitorRegistrationsExists = competitorRegistrationsExists;
|
||||
this.raceLogTrackingState = raceLogTrackingState;
|
||||
}
|
||||
}
|
||||
+19
-7
@@ -82,12 +82,24 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf
|
||||
leaderboardTable.addColumnSortHandler(leaderboardColumnListHandler);
|
||||
}
|
||||
|
||||
private RaceLogTrackingState getTrackingState(RaceColumnDTOAndFleetDTOWithNameBasedEquality race) {
|
||||
return race.getA().getRaceLogTrackingInfo(race.getB()).raceLogTrackingState;
|
||||
}
|
||||
|
||||
private boolean doesTrackerExist(RaceColumnDTOAndFleetDTOWithNameBasedEquality race) {
|
||||
return race.getA().getRaceLogTrackingInfo(race.getB()).raceLogTrackerExists;
|
||||
}
|
||||
|
||||
private boolean doCompetitorResgistrationsExist(RaceColumnDTOAndFleetDTOWithNameBasedEquality race) {
|
||||
return race.getA().getRaceLogTrackingInfo(race.getB()).competitorRegistrationsExists;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addColumnsToRacesTable(CellTable<RaceColumnDTOAndFleetDTOWithNameBasedEquality> racesTable) {
|
||||
TextColumn<RaceColumnDTOAndFleetDTOWithNameBasedEquality> raceLogTrackingStateColumn = new TextColumn<RaceColumnDTOAndFleetDTOWithNameBasedEquality>() {
|
||||
@Override
|
||||
public String getValue(RaceColumnDTOAndFleetDTOWithNameBasedEquality raceColumnAndFleetName) {
|
||||
RaceLogTrackingState state = raceColumnAndFleetName.getB().raceLogTrackingState;
|
||||
RaceLogTrackingState state = getTrackingState(raceColumnAndFleetName);
|
||||
return state.name();
|
||||
}
|
||||
};
|
||||
@@ -95,7 +107,7 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf
|
||||
TextColumn<RaceColumnDTOAndFleetDTOWithNameBasedEquality> trackerStateColumn = new TextColumn<RaceColumnDTOAndFleetDTOWithNameBasedEquality>() {
|
||||
@Override
|
||||
public String getValue(RaceColumnDTOAndFleetDTOWithNameBasedEquality raceColumnAndFleetName) {
|
||||
return raceColumnAndFleetName.getB().raceLogTrackerExists ? "Active" : "None";
|
||||
return doesTrackerExist(raceColumnAndFleetName) ? "Active" : "None";
|
||||
}
|
||||
};
|
||||
|
||||
@@ -108,8 +120,8 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf
|
||||
final String leaderboardName = getSelectedLeaderboardName();
|
||||
final String raceColumnName = object.getA().getName();
|
||||
final String fleetName = object.getB().getName();
|
||||
boolean editable = ! (object.getB().raceLogTrackerExists &&
|
||||
object.getB().raceLogTrackingState == RaceLogTrackingState.TRACKING);
|
||||
boolean editable = ! (doesTrackerExist(object) &&
|
||||
getTrackingState(object) == RaceLogTrackingState.TRACKING);
|
||||
if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_DENOTE_FOR_RACELOG_TRACKING.equals(value)) {
|
||||
denoteForRaceLogTracking(object.getA(), object.getB());
|
||||
} else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_REMOVE_DENOTATION.equals(value)) {
|
||||
@@ -120,7 +132,7 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf
|
||||
new Callback<Boolean, Throwable>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean result) {
|
||||
object.getB().competitorRegistrationsExist = result;
|
||||
object.getA().getRaceLogTrackingInfo(object.getB()).competitorRegistrationsExists = result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -206,7 +218,7 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf
|
||||
private void enableStartTrackingButtonIfAppropriateRacesSelected() {
|
||||
boolean enable = raceColumnTableSelectionModel.getSelectedSet().size() > 0;
|
||||
for (RaceColumnDTOAndFleetDTOWithNameBasedEquality race : raceColumnTableSelectionModel.getSelectedSet()) {
|
||||
if (! race.getB().raceLogTrackingState.isForTracking() || race.getB().raceLogTrackerExists) {
|
||||
if (! getTrackingState(race).isForTracking() || doesTrackerExist(race)) {
|
||||
enable = false;
|
||||
}
|
||||
}
|
||||
@@ -297,7 +309,7 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf
|
||||
//prompt user if competitor registrations are missing for same races
|
||||
String namesOfRacesMissingRegistrations = "";
|
||||
for (RaceColumnDTOAndFleetDTOWithNameBasedEquality race : races) {
|
||||
if (! race.getB().competitorRegistrationsExist) {
|
||||
if (! doCompetitorResgistrationsExist(race)) {
|
||||
namesOfRacesMissingRegistrations += race.getA().getName() + "/" + race.getB().getName() + " ";
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -29,7 +29,7 @@ public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCe
|
||||
protected Iterable<ImageSpec> getImageSpecs() {
|
||||
List<ImageSpec> result = new ArrayList<ImageSpec>();
|
||||
RaceColumnDTOAndFleetDTOWithNameBasedEquality object = (RaceColumnDTOAndFleetDTOWithNameBasedEquality) getContext().getKey();
|
||||
if (! object.getB().raceLogTrackingState.isForTracking()) {
|
||||
if (! object.getA().getRaceLogTrackingInfo(object.getB()).raceLogTrackingState.isForTracking()) {
|
||||
result.add(new ImageSpec(ACTION_DENOTE_FOR_RACELOG_TRACKING, stringMessages.denoteForRaceLogTracking(), makeImagePrototype(resources.denoteForRaceLogTracking())));
|
||||
} else {
|
||||
result.add(new ImageSpec(ACTION_REMOVE_DENOTATION, stringMessages.removeDenotation(), makeImagePrototype(resources.unDenoteForRaceLogTracking())));
|
||||
|
||||
+8
-6
@@ -142,6 +142,7 @@ import com.sap.sailing.domain.common.dto.PositionDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnInSeriesDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceLogTrackingInfoDTO;
|
||||
import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO;
|
||||
import com.sap.sailing.domain.common.dto.TrackedRaceDTO;
|
||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||
@@ -2059,15 +2060,16 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
raceDTO = baseDomainFactory.createRaceDTO(getService(), withGeoLocationData, raceIdentifier, trackedRace);
|
||||
}
|
||||
final FleetDTO fleetDTO = baseDomainFactory.convertToFleetDTO(fleet);
|
||||
leaderboardDTO.addRace(raceColumn.getName(), raceColumn.getExplicitFactor(), raceColumn.getFactor(),
|
||||
fleetDTO, raceColumn.isMedalRace(), raceIdentifier, raceDTO);
|
||||
RaceColumnDTO raceColumnDTO = leaderboardDTO.addRace(raceColumn.getName(), raceColumn.getExplicitFactor(),
|
||||
raceColumn.getFactor(), fleetDTO, raceColumn.isMedalRace(), raceIdentifier, raceDTO);
|
||||
|
||||
RaceLog raceLog = raceColumn.getRaceLog(fleet);
|
||||
RaceLogTrackingState raceLogTrackingState = new RaceLogTrackingStateAnalyzer(raceLog).analyze();
|
||||
fleetDTO.raceLogTrackingState = raceLogTrackingState;
|
||||
fleetDTO.raceLogTrackerExists = getService().getRaceTrackerById(raceLog.getId()) != null;
|
||||
|
||||
fleetDTO.competitorRegistrationsExist = ! new RegisteredCompetitorsAnalyzer(raceLog).analyze().isEmpty();
|
||||
boolean raceLogTrackerExists = getService().getRaceTrackerById(raceLog.getId()) != null;
|
||||
boolean competitorRegistrationsExist = ! new RegisteredCompetitorsAnalyzer(raceLog).analyze().isEmpty();
|
||||
RaceLogTrackingInfoDTO raceLogTrackingInfo = new RaceLogTrackingInfoDTO(raceLogTrackerExists,
|
||||
competitorRegistrationsExist, raceLogTrackingState);
|
||||
raceColumnDTO.setRaceLogTrackingInfo(fleetDTO, raceLogTrackingInfo);
|
||||
}
|
||||
}
|
||||
return leaderboardDTO;
|
||||
|
||||
Reference in new issue
Block a user