Next step of the removal of Competitor.getBoat()

As this affects also CompetitorDTO.getBoat() I introduced as an intermediate step CompetitorWithoutBoatDTO (CompetitorDTO extends CompetitorWithoutBoatDTO) for simpler refactoring.
Added also some new RaceLog and RegattaLog events for adding a competitor/boat pair
This commit is contained in:
Frank Mittag
2017-06-19 21:21:31 +02:00
parent fd8fee5d58
commit bc8a71f058
60 changed files with 1209 additions and 388 deletions
@@ -1,9 +1,13 @@
package com.sap.sailing.dashboards.gwt.client.actions;
import java.util.List;
import com.google.gwt.core.shared.GwtIncompatible;
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.leaderboard.Leaderboard;
import com.sap.sse.common.impl.MillisecondsTimePoint;
import com.sap.sse.gwt.dispatch.shared.exceptions.DispatchException;
@@ -29,7 +33,9 @@ public class GetCompetitorInLeaderboardAction implements DashboardAction<Leaderb
public LeaderboardCompetitorsDTO execute(DashboardDispatchContext dashboardDispatchContext) throws DispatchException {
LeaderboardCompetitorsDTO result = new LeaderboardCompetitorsDTO();
Leaderboard lb = dashboardDispatchContext.getRacingEventService().getLeaderboardByName(this.leaderboarName);
result.setCompetitors(dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorDTOList(lb.getCompetitorsFromBestToWorst(MillisecondsTimePoint.now())));
List<Competitor> competitorsFromBestToWorst = lb.getCompetitorsFromBestToWorst(MillisecondsTimePoint.now());
List<CompetitorWithoutBoatDTO> competitorDTOs = dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorWithoutBoatDTOListTemp(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.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
public interface CompetitorSelectionListener {
public void didClickOKWithSelectedCompetitor(CompetitorDTO competitor);
public void didClickOKWithSelectedCompetitor(CompetitorWithoutBoatDTO 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.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
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 CompetitorDTO currentCompetitorSelected;
private CompetitorWithoutBoatDTO 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<CompetitorDTO> competitorList) {
public void show(List<CompetitorWithoutBoatDTO> 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(CompetitorDTO competitor) {
public void notifyListenerAboutOKButtonClickedWithSelectedCompetitorName(CompetitorWithoutBoatDTO competitor) {
for (CompetitorSelectionListener newStartAnalysisListener : competitorSelectionPopupListener) {
newStartAnalysisListener.didClickOKWithSelectedCompetitor(competitor);
}
@@ -127,7 +127,7 @@ public class CompetitorSelectionPopup extends Composite implements HasWidgets, C
}
@Override
public void didSelectedRowWithCompetitorName(CompetitorDTO competitor) {
public void didSelectedRowWithCompetitorName(CompetitorWithoutBoatDTO 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.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
import com.sap.sse.gwt.client.celltable.BaseCelltable;
public class CompetitorTable extends AbsolutePanel {
private CellTable<CompetitorDTO> table;
private CellTable<CompetitorWithoutBoatDTO> table;
private CompetitorTableRowSelectionListener competitorTableRowSelectionListener;
public CompetitorTable(CompetitorTableRowSelectionListener competitorTableRowSelectionListener) {
this.competitorTableRowSelectionListener = competitorTableRowSelectionListener;
}
public void setTableContent(List<CompetitorDTO> competitorNames) {
public void setTableContent(List<CompetitorWithoutBoatDTO> competitorNames) {
if (table == null) {
initTable(competitorNames);
}
}
private void initTable(List<CompetitorDTO> competitorNames) {
private void initTable(List<CompetitorWithoutBoatDTO> competitorNames) {
CellTable.Resources tableRes = GWT.create(CompetitorTableStyleResource.class);
table = new BaseCelltable<CompetitorDTO>(15, tableRes);
table = new BaseCelltable<CompetitorWithoutBoatDTO>(15, tableRes);
table.getElement().getStyle().setWidth(100, Unit.PCT);
table.setSkipRowHoverStyleUpdate(true);
table.setSkipRowHoverCheck(true);
table.setKeyboardSelectionPolicy(KeyboardSelectionPolicy.DISABLED);
final SingleSelectionModel<CompetitorDTO> selectionModel = new SingleSelectionModel<CompetitorDTO>();
final SingleSelectionModel<CompetitorWithoutBoatDTO> selectionModel = new SingleSelectionModel<CompetitorWithoutBoatDTO>();
table.setSelectionModel(selectionModel);
selectionModel.addSelectionChangeHandler(new SelectionChangeEvent.Handler() {
public void onSelectionChange(SelectionChangeEvent event) {
CompetitorDTO selected = selectionModel.getSelectedObject();
CompetitorWithoutBoatDTO selected = selectionModel.getSelectedObject();
if (selected != null) {
competitorTableRowSelectionListener.didSelectedRowWithCompetitorName(selected);
}
}
});
TextColumn<CompetitorDTO> competitorNameCollumn = new TextColumn<CompetitorDTO>() {
TextColumn<CompetitorWithoutBoatDTO> competitorNameCollumn = new TextColumn<CompetitorWithoutBoatDTO>() {
@Override
public String getValue(CompetitorDTO competitor) {
public String getValue(CompetitorWithoutBoatDTO 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.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
public interface CompetitorTableRowSelectionListener {
public void didSelectedRowWithCompetitorName(CompetitorDTO competitor);
public void didSelectedRowWithCompetitorName(CompetitorWithoutBoatDTO competitor);
}
@@ -41,6 +41,7 @@ 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;
@@ -240,7 +241,7 @@ public class StartAnalysisWidget extends Composite implements HasWidgets, PollsL
competitorSelectionPopup.addListener(new CompetitorSelectionListener() {
@Override
public void didClickOKWithSelectedCompetitor(CompetitorDTO competitor) {
public void didClickOKWithSelectedCompetitor(CompetitorWithoutBoatDTO 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));
@@ -15,6 +15,7 @@ import com.sap.sailing.dashboards.gwt.shared.dto.StartAnalysisDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.StartAnalysisRankingTableEntryDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.StartLineAdvantageDTO;
import com.sap.sailing.dashboards.gwt.shared.dto.WindAndAdvantagesInfoForStartLineDTO;
import com.sap.sailing.domain.base.Boat;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.common.LegType;
@@ -59,7 +60,8 @@ public final class StartAnalysisDTOFactory extends AbstractStartAnalysisCreation
competitors.add(createStartAnalysisCompetitorDTO(dashboardDispatchContext, trackedRace, rankOfCompetitorWhilePassingSecondWaypoint, competitor));
}
if (competitor != null) {
startAnalysisDTO.competitor = dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorStore().convertToCompetitorDTO(competitor);
Boat boatOfCompetitor = trackedRace.getBoatOfCompetitor(competitor);
startAnalysisDTO.competitor = dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorStore().convertToCompetitorDTO(competitor, boatOfCompetitor);
logger.log(Level.INFO, "Created startanalysis for competitor"+competitor);
}
startAnalysisDTO.startAnalysisCompetitorDTOs = competitors;
@@ -191,8 +193,9 @@ public final class StartAnalysisDTOFactory extends AbstractStartAnalysisCreation
private static StartAnalysisCompetitorDTO createStartAnalysisCompetitorDTO(DashboardDispatchContext dashboardDispatchContext, TrackedRace trackedRace, int rank, Competitor competitor) {
StartAnalysisCompetitorDTO startAnalysisCompetitorDTOsForRace = new StartAnalysisCompetitorDTO();
Boat boatOfCompetitor = trackedRace.getBoatOfCompetitor(competitor);
startAnalysisCompetitorDTOsForRace.competitorDTO = dashboardDispatchContext.getRacingEventService().getBaseDomainFactory().getCompetitorStore()
.convertToCompetitorDTO(competitor);
.convertToCompetitorDTO(competitor, boatOfCompetitor);
startAnalysisCompetitorDTOsForRace.rankingTableEntryDTO = createRankTableEntry(trackedRace, rank, competitor);
return startAnalysisCompetitorDTOsForRace;
}
@@ -2,7 +2,7 @@ package com.sap.sailing.dashboards.gwt.shared.dto;
import java.util.List;
import com.sap.sailing.domain.common.dto.CompetitorDTO;
import com.sap.sailing.domain.common.dto.CompetitorWithoutBoatDTO;
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<CompetitorDTO> competitors;
private List<CompetitorWithoutBoatDTO> competitors;
public LeaderboardCompetitorsDTO() {}
public List<CompetitorDTO> getCompetitors() {
public List<CompetitorWithoutBoatDTO> getCompetitors() {
return competitors;
}
public void setCompetitors(List<CompetitorDTO> competitors) {
public void setCompetitors(List<CompetitorWithoutBoatDTO> competitors) {
this.competitors = competitors;
}
}