first step to use only CompetitorDTO instead of mixture of CompetitorDTO and CompetitorWithoutBoatDTO

This commit is contained in:
Frank Mittag
2017-08-30 11:55:47 +02:00
parent db1d11eb6e
commit ae05146712
10 changed files with 61 additions and 51 deletions
@@ -7,7 +7,7 @@ import com.sap.sailing.dashboards.gwt.shared.dispatch.DashboardAction;
import com.sap.sailing.dashboards.gwt.shared.dispatch.DashboardDispatchContext;
import com.sap.sailing.dashboards.gwt.shared.dto.LeaderboardCompetitorsDTO;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import com.sap.sse.gwt.dispatch.shared.exceptions.DispatchException;
@@ -34,7 +34,7 @@ public class GetCompetitorInLeaderboardAction implements DashboardAction<Leaderb
LeaderboardCompetitorsDTO result = new LeaderboardCompetitorsDTO();
Leaderboard lb = dashboardDispatchContext.getRacingEventService().getLeaderboardByName(this.leaderboarName);
List<Competitor> competitorsFromBestToWorst = lb.getCompetitorsFromBestToWorst(MillisecondsTimePoint.now());
List<CompetitorWithoutBoatDTO> competitorDTOs = dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorWithoutBoatDTOListTemp(competitorsFromBestToWorst);
List<CompetitorDTO> competitorDTOs = dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorDTOList(competitorsFromBestToWorst);
result.setCompetitors(competitorDTOs);
return result;
}
@@ -1,8 +1,8 @@
package com.sap.sailing.dashboards.gwt.client.popups.competitorselection;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
public interface CompetitorSelectionListener {
public void didClickOKWithSelectedCompetitor(CompetitorWithoutBoatDTO competitor);
public void didClickOKWithSelectedCompetitor(CompetitorDTO competitor);
}
@@ -16,7 +16,7 @@ import com.google.gwt.user.client.ui.Widget;
import com.sap.sailing.dashboards.gwt.client.popups.competitorselection.table.CompetitorTable;
import com.sap.sailing.dashboards.gwt.client.popups.competitorselection.table.CompetitorTableRowSelectionListener;
import com.sap.sailing.dashboards.gwt.client.widgets.ActionPanel;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
public class CompetitorSelectionPopup extends Composite implements HasWidgets, CompetitorTableRowSelectionListener {
@@ -38,7 +38,7 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
@UiField(provided = true)
ActionPanel okButton;
private CompetitorWithoutBoatDTO currentCompetitorSelected;
private CompetitorDTO currentCompetitorSelected;
private boolean isVisible;
private CompetitorSelectionPopupResources competitorSelectionPopupResources = CompetitorSelectionPopupResources.INSTANCE;
@@ -63,7 +63,7 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
okButton.getElement().setInnerText("OK");
}
public void show(List<CompetitorWithoutBoatDTO> competitorList) {
public void show(List<CompetitorDTO> competitorList) {
competitortable.setTableContent(competitorList);
RootLayoutPanel.get().add(this);
competitorselectionpopup.addStyleName(competitorSelectionPopupResources.gss().popupshow());
@@ -88,7 +88,7 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
this.competitorSelectionPopupListener.remove(o);
}
public void notifyListenerAboutOKButtonClickedWithSelectedCompetitorName(CompetitorWithoutBoatDTO competitor) {
public void notifyListenerAboutOKButtonClickedWithSelectedCompetitorName(CompetitorDTO competitor) {
for (CompetitorSelectionListener newStartAnalysisListener : competitorSelectionPopupListener) {
newStartAnalysisListener.didClickOKWithSelectedCompetitor(competitor);
}
@@ -127,7 +127,7 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
}
@Override
public void didSelectedRowWithCompetitorName(CompetitorWithoutBoatDTO competitor) {
public void didSelectedRowWithCompetitorName(CompetitorDTO competitor) {
currentCompetitorSelected = competitor;
}
@@ -10,46 +10,46 @@ import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.ui.AbsolutePanel;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SingleSelectionModel;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sse.gwt.client.celltable.BaseCelltable;
public class CompetitorTable extends AbsolutePanel {
private CellTable<CompetitorWithoutBoatDTO> table;
private CellTable<CompetitorDTO> table;
private CompetitorTableRowSelectionListener competitorTableRowSelectionListener;
public CompetitorTable(CompetitorTableRowSelectionListener competitorTableRowSelectionListener) {
this.competitorTableRowSelectionListener = competitorTableRowSelectionListener;
}
public void setTableContent(List<CompetitorWithoutBoatDTO> competitorNames) {
public void setTableContent(List<CompetitorDTO> competitorNames) {
if (table == null) {
initTable(competitorNames);
}
}
private void initTable(List<CompetitorWithoutBoatDTO> competitorNames) {
private void initTable(List<CompetitorDTO> competitorNames) {
CellTable.Resources tableRes = GWT.create(CompetitorTableStyleResource.class);
table = new BaseCelltable<CompetitorWithoutBoatDTO>(15, tableRes);
table = new BaseCelltable<CompetitorDTO>(15, tableRes);
table.getElement().getStyle().setWidth(100, Unit.PCT);
table.setSkipRowHoverStyleUpdate(true);
table.setSkipRowHoverCheck(true);
table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
final SingleSelectionModel<CompetitorWithoutBoatDTO> selectionModel = new SingleSelectionModel<CompetitorWithoutBoatDTO>();
final SingleSelectionModel<CompetitorDTO> selectionModel = new SingleSelectionModel<CompetitorDTO>();
table.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
CompetitorWithoutBoatDTO selected = selectionModel.getSelectedObject();
CompetitorDTO selected = selectionModel.getSelectedObject();
if (selected != null) {
competitorTableRowSelectionListener.didSelectedRowWithCompetitorName(selected);
}
}
});
TextColumn<CompetitorWithoutBoatDTO> competitorNameCollumn = new TextColumn<CompetitorWithoutBoatDTO>() {
TextColumn<CompetitorDTO> competitorNameCollumn = new TextColumn<CompetitorDTO>() {
@Override
public String getValue(CompetitorWithoutBoatDTO competitor) {
public String getValue(CompetitorDTO competitor) {
return competitor.getName();
}
};
@@ -1,8 +1,8 @@
package com.sap.sailing.dashboards.gwt.client.popups.competitorselection.table;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
public interface CompetitorTableRowSelectionListener {
public void didSelectedRowWithCompetitorName(CompetitorWithoutBoatDTO competitor);
public void didSelectedRowWithCompetitorName(CompetitorDTO competitor);
}
@@ -41,7 +41,6 @@ import com.sap.sailing.dashboards.gwt.shared.dto.LeaderboardCompetitorsDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.StartAnalysesDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.StartAnalysisDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapResources;
@@ -241,7 +240,7 @@ public class StartAnalysisWidget extends Composite implements HasWidgets, PollsL
competitorSelectionPopup.addListener(new CompetitorSelectionListener() {
@Override
public void didClickOKWithSelectedCompetitor(CompetitorWithoutBoatDTO competitor) {
public void didClickOKWithSelectedCompetitor(CompetitorDTO competitor) {
if (competitor != null) {
Cookies.removeCookie(cookieKeyForSelectedCompetitorInLeaderboard);
Cookies.setCookie(cookieKeyForSelectedCompetitorInLeaderboard, competitor.getIdAsString(), new Date(new Date().getTime()+SELECTED_COMPETITOR_ID_COOKIE_KEY_EXPIRE_TIME_IN_MILLIS));
@@ -2,7 +2,7 @@ package com.sap.sailing.dashboards.gwt.shared.dto;
import java.util.List;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sse.gwt.dispatch.shared.commands.Result;
/**
@@ -11,15 +11,15 @@ import com.sap.sse.gwt.dispatch.shared.commands.Result;
*/
public class LeaderboardCompetitorsDTO implements Result {
private List<CompetitorWithoutBoatDTO> competitors;
private List<CompetitorDTO> competitors;
public LeaderboardCompetitorsDTO() {}
public List<CompetitorWithoutBoatDTO> getCompetitors() {
public List<CompetitorDTO> getCompetitors() {
return competitors;
}
public void setCompetitors(List<CompetitorWithoutBoatDTO> competitors) {
public void setCompetitors(List<CompetitorDTO> competitors) {
this.competitors = competitors;
}
}
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.base;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Map;
import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
import com.sap.sailing.domain.common.Placemark;
@@ -10,7 +11,6 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.dto.BoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.FleetDTO;
import com.sap.sailing.domain.common.dto.PlacemarkDTO;
import com.sap.sailing.domain.common.dto.RaceDTO;
@@ -24,6 +24,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.util.ObjectInputStreamResolvingAgainstCache;
public interface DomainFactory extends SharedDomainFactory {
@@ -63,8 +64,6 @@ public interface DomainFactory extends SharedDomainFactory {
CompetitorDTO convertToCompetitorDTO(Competitor c);
CompetitorDTO convertToCompetitorDTO(Competitor c, Boat b);
CompetitorWithoutBoatDTO convertToCompetitorWithoutBoatDTO(Competitor c);
BoatDTO convertToBoatDTO(Boat boat);
@@ -77,13 +76,12 @@ public interface DomainFactory extends SharedDomainFactory {
PlacemarkDTO convertToPlacemarkDTO(Placemark placemark);
List<CompetitorDTO> getCompetitorDTOList(Iterable<CompetitorWithBoat> competitors);
List<CompetitorDTO> getCompetitorDTOList(Map<Competitor, Boat> competitors);
/** Temporary function -> REMOVE later on */
List<CompetitorWithoutBoatDTO> getCompetitorWithoutBoatDTOListTemp(Iterable<Competitor> competitors);
List<CompetitorDTO> getCompetitorDTOListTemp(Iterable<Competitor> competitors);
List<CompetitorDTO> getCompetitorDTOList(Iterable<Competitor> competitors);
List<CompetitorDTO> getCompetitorDTOList(List<Pair<Competitor, Boat>> competitors);
TrackedRaceDTO createTrackedRaceDTO(TrackedRace trackedRace);
TrackedRaceStatisticsDTO createTrackedRaceStatisticsDTO(TrackedRace trackedRace, Leaderboard leaderboard, RaceColumn raceColumn,
@@ -5,6 +5,8 @@ import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.logging.Logger;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
@@ -27,7 +29,6 @@ import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.domain.common.dto.BoatDTO;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sailing.domain.common.dto.FleetDTO;
import com.sap.sailing.domain.common.dto.PlacemarkDTO;
import com.sap.sailing.domain.common.dto.PlacemarkOrderDTO;
@@ -70,6 +71,7 @@ import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
import com.sap.sailing.geocoding.ReverseGeocoder;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import com.sap.sse.util.ObjectInputStreamResolvingAgainstCache;
@@ -159,11 +161,6 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain
return competitorAndBoatStore.convertToCompetitorDTO(c);
}
@Override
public CompetitorWithoutBoatDTO convertToCompetitorWithoutBoatDTO(Competitor c) {
return competitorAndBoatStore.convertToCompetitorWithoutBoatDTO(c);
}
@Override
public BoatDTO convertToBoatDTO(Boat boat) {
return competitorAndBoatStore.convertToBoatDTO(boat);
@@ -367,16 +364,16 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain
}
@Override
public List<CompetitorDTO> getCompetitorDTOList(Iterable<CompetitorWithBoat> competitors) {
public List<CompetitorDTO> getCompetitorDTOList(Map<Competitor, Boat> competitors) {
List<CompetitorDTO> result = new ArrayList<CompetitorDTO>();
for (CompetitorWithBoat competitor : competitors) {
result.add(convertToCompetitorDTO(competitor));
for (Entry<Competitor, Boat> competitorAndBoatEntry : competitors.entrySet()) {
result.add(convertToCompetitorDTO(competitorAndBoatEntry.getKey(), competitorAndBoatEntry.getValue()));
}
return result;
}
@Override
public List<CompetitorDTO> getCompetitorDTOListTemp(Iterable<Competitor> competitors) {
public List<CompetitorDTO> getCompetitorDTOList(Iterable<Competitor> competitors) {
List<CompetitorDTO> result = new ArrayList<CompetitorDTO>();
for (Competitor competitor : competitors) {
result.add(convertToCompetitorDTO(competitor));
@@ -384,11 +381,10 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain
return result;
}
@Override
public List<CompetitorWithoutBoatDTO> getCompetitorWithoutBoatDTOListTemp(Iterable<Competitor> competitors) {
List<CompetitorWithoutBoatDTO> result = new ArrayList<CompetitorWithoutBoatDTO>();
for (Competitor competitor : competitors) {
result.add(convertToCompetitorWithoutBoatDTO(competitor));
public List<CompetitorDTO> getCompetitorDTOList(List<Pair<Competitor, Boat>> competitors) {
List<CompetitorDTO> result = new ArrayList<CompetitorDTO>();
for (Pair<Competitor, Boat> competitorAndBoat : competitors) {
result.add(convertToCompetitorDTO(competitorAndBoat.getA(), competitorAndBoat.getB()));
}
return result;
}
@@ -25,6 +25,7 @@ import java.util.logging.Logger;
import com.sap.sailing.domain.abstractlog.race.InvalidatesLeaderboardCache;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.base.Boat;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Course;
import com.sap.sailing.domain.base.DomainFactory;
@@ -78,6 +79,7 @@ import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener;
import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.util.ThreadPoolUtil;
import com.sap.sse.util.impl.FutureTaskWithTracingGet;
@@ -389,8 +391,23 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
raceColumn instanceof RaceColumnInSeries ? ((RaceColumnInSeries) raceColumn).getSeries().getName() : null,
fleetDTO, raceColumn.isMedalRace(), raceIdentifier, race, isMetaLeaderboardColumn);
}
Future<List<CompetitorDTO>> task = executor.submit(
() -> baseDomainFactory.getCompetitorDTOListTemp(AbstractLeaderboardWithCache.this.getCompetitorsFromBestToWorst(raceColumn, timePoint)));
Future<List<CompetitorDTO>> task = executor.submit(new Callable<List<CompetitorDTO>>() {
public List<CompetitorDTO> call() throws NoWindException {
Iterable<Competitor> competitorsFromBestToWorst = AbstractLeaderboardWithCache.this.getCompetitorsFromBestToWorst(raceColumn, timePoint);
List<Pair<Competitor, Boat>> orderedeCompetitorsWithBoats = new ArrayList<>();
Map<Competitor, Boat> allCompetitorsAndTheirBoats = raceColumn.getAllCompetitorsAndTheirBoats();
for (Competitor c: competitorsFromBestToWorst) {
Boat boat = null;
if (!isMetaLeaderboardColumn) {
boat = allCompetitorsAndTheirBoats.get(c);
}
orderedeCompetitorsWithBoats.add(new Pair<Competitor, Boat>(c, boat));
}
return baseDomainFactory.getCompetitorDTOList(orderedeCompetitorsWithBoats);
}
});
// Future<List<CompetitorDTO>> task = executor.submit(
// () -> baseDomainFactory.getCompetitorDTOList(AbstractLeaderboardWithCache.this.getCompetitorsFromBestToWorst(raceColumn, timePoint)));
competitorsFromBestToWorstTasks.put(raceColumn, task);
}
// wait for the competitor orderings to have been computed for all race columns before continuing; subsequent tasks may depend on these data