From 042ce44f6b22b24746655fdd2668c25da32f820d Mon Sep 17 00:00:00 2001 From: Fabian Tschirschnitz Date: Sat, 2 Mar 2013 17:09:56 +0100 Subject: [PATCH 1/3] started to implement RegattaOverview as GWT, started to create DTO objects for ui --- .../sailing/gwt/ui/client/SailingService.java | 4 +- .../gwt/ui/client/SailingServiceAsync.java | 3 - .../regattaoverview/RegattaOverviewPanel.java | 53 ++++++- .../regattaoverview/RegattaOverviewTable.css | 133 ++++++++++++++++++ .../RegattaOverviewTableResources.java | 22 +++ .../gwt/ui/server/SailingServiceImpl.java | 46 ++++-- .../sailing/gwt/ui/shared/RaceColumnDTO.java | 15 ++ .../sailing/gwt/ui/shared/RaceEventDTO.java | 15 -- .../gwt/ui/shared/RaceEventLogDTO.java | 21 --- .../sap/sailing/gwt/ui/shared/RaceLogDTO.java | 16 +++ .../gwt/ui/shared/RaceLogEventDTO.java | 18 +++ 11 files changed, 289 insertions(+), 57 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTableResources.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventDTO.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventLogDTO.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogEventDTO.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 6fa81b87533..5944d7e7f5a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -39,7 +39,7 @@ import com.sap.sailing.gwt.ui.shared.QuickRankDTO; import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceDTO; -import com.sap.sailing.gwt.ui.shared.RaceEventLogDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; @@ -294,8 +294,6 @@ public interface SailingService extends RemoteService { PolarSheetsHistogramData getPolarSheetData(String polarSheetId, int angle, int windSpeed); - RaceEventLogDTO getRaceEventLog(); - EventDTO getEventById(Serializable id); CourseAreaDTO createCourseArea(String eventIdAsString, String courseAreaName); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index ebf63c90c02..813339f5b27 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -40,7 +40,6 @@ import com.sap.sailing.gwt.ui.shared.QuickRankDTO; import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceDTO; -import com.sap.sailing.gwt.ui.shared.RaceEventLogDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; @@ -420,8 +419,6 @@ public interface SailingServiceAsync { void suppressCompetitorInLeaderboard(String leaderboardName, String competitorIdAsString, boolean suppressed, AsyncCallback asyncCallback); - void getRaceEventLog(AsyncCallback callback); - void updateLeaderboardColumnFactor(String leaderboardName, String columnName, Double newFactor, AsyncCallback callback); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java index b034423df5d..330dcbfd3c9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java @@ -1,14 +1,24 @@ package com.sap.sailing.gwt.ui.regattaoverview; +import java.util.List; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.user.cellview.client.CellTable; +import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; +import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; -import com.sap.sailing.gwt.ui.shared.RaceEventDTO; -import com.sap.sailing.gwt.ui.shared.RaceEventLogDTO; +import com.sap.sailing.gwt.ui.shared.FleetDTO; +import com.sap.sailing.gwt.ui.shared.RaceColumnDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogEventDTO; +import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; public class RegattaOverviewPanel extends FlowPanel { private final SailingServiceAsync sailingService; @@ -37,7 +47,42 @@ public class RegattaOverviewPanel extends FlowPanel { } private void loadEventLog() { - sailingService.getRaceEventLog(new AsyncCallback() { + sailingService.getLeaderboards(new AsyncCallback>() { + + @Override + public void onSuccess(List result) { + for(StrippedLeaderboardDTO leaderboard : result){ + /**final AdminConsoleTableResources tableRes = GWT.create(RegattaOverviewTableResources.class); + CellTable regattaTable = new CellTable(10000, tableRes); + regattaTable.setWidth("100%"); + TextColumn regattaNameColumn = new TextColumn() { + @Override + public String getValue(RaceColumnDTO race) { + return race.name; + } + };*/ + + for(RaceColumnDTO race :leaderboard.getRaceList()){ + RaceLogDTO raceLog = null; + for(FleetDTO fleet : race.getFleets()){ + raceLog = race.getRaceLog(fleet); + } + + mainPanel.add(new Label(race.name)); + for(RaceLogEventDTO raceLogEventDTO : raceLog.raceEvents){ + mainPanel.add(new Label(raceLogEventDTO.passId+"")); + } + } + } + } + + @Override + public void onFailure(Throwable caught) { + // TODO Auto-generated method stub + + } + }); + /**sailingService.getRaceEventLog(new AsyncCallback() { @Override public void onSuccess(RaceEventLogDTO result) { @@ -51,6 +96,6 @@ public class RegattaOverviewPanel extends FlowPanel { @Override public void onFailure(Throwable arg0) { } - }); + });*/ } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css new file mode 100644 index 00000000000..5b20bbc145c --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css @@ -0,0 +1,133 @@ +.cellTableWidget { + border-left: 1px solid #c9caca; + border-top: 1px solid #c9caca; +} + +/** v-align images in the table header + * grey background for table header + */ +.cellTableHeader { + position: relative; + vertical-align: middle; + background-color: #e5e5e5; + border-right: 1px solid #ffffff !important; + border-top: none !important; + border-bottom: 1px solid #c9caca !important; + padding: 3px 12px; + text-align: center; +} + +.cellTableFirstColumnHeader { + position: relative; + vertical-align: middle; + background-color: #e5e5e5; + border-left: none !important; + border-right: 1px solid #ffffff !important; + border-top: none !important; + border-bottom: 1px solid #c9caca !important; + padding: 3px 12px; + text-align: center; +} + +.cellTableLastColumnHeader { + position: relative; + vertical-align: middle; + background-color: #e5e5e5; + border-right: 1px solid #c9caca !important; + border-top: none !important; + border-bottom: 1px solid #c9caca !important; + padding: 3px 12px; + text-align: center; +} + +.cellTableHeader > span > img:first-child { + position: relative; + vertical-align: middle; +} + +.cellTableEvenRow { + border-bottom: 1px solid #e5e5e5; + background-color: rgba(255,255,255,0.5); +} + +.cellTableEvenRowCell { + border-right: 1px solid #c9caca !important; + border-left: none; + border-top: none !important; + border-bottom: 1px solid #c9caca !important; + padding: 5px 17px 5px !important; + white-space: nowrap; +} + +.cellTableOddRow { + border-bottom: 1px solid #e5e5e5; + background-color: rgba(242,242,242,0.5); +} + +.cellTableOddRowCell { + border-left: none !important; + border-right: 1px solid #c9caca !important; + border-top: none !important; + border-bottom: 1px solid #c9caca !important; + padding: 5px 17px 5px !important; + white-space: nowrap; +} + +.cellTableHoveredRow { + background-color: rgba(229,242,249,0.5); + border-bottom: 1px solid #e5e5e5; +} + +.cellTableSelectedRow { + color: #000000; + background-color: rgba(229,242,249,0.5); + border-right: 2px solid #21a0e4 !important; + border-left: 2px solid #21a0e4 !important; + border: 2px solid #21a0e4; +} + +.cellTableSelectedRow > td:FIRST-CHILD { + border-left: 2px solid rgba(33,160,228,0.5) !important; +} + +.cellTableSelectedRow > td:LAST-CHILD { + border-right: 2px solid rgba(33,160,228,0.5) !important; +} + +.cellTableSelectedRowCell { + border-left: none; + border-right: 1px solid #e5e5e5; + border-top: 2px solid #21a0e4 !important; + border-bottom: 2px solid #21a0e4 !important; +} + +.cellTableRaceColumnHeader { + background-color: #e0e0e0; + padding: 3px 12px; +} + +.cellTableLegColumnHeader { + background-color: #efefef; + padding: 3px 12px; +} + +.cellTableLegDetailColumnHeader { + background-color: #f4f5f6; + padding: 3px 12px; +} + +.cellTableRaceColumn { + background-color: #e0e0e0 !important; +} + +.cellTableLegColumn { + background-color: #efefef !important; +} + +.cellTableLegDetailColumn { + background-color: #ffffff !important; +} + +.cellTableTotalColumn { + background-color: #e0e0e0 !important; +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTableResources.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTableResources.java new file mode 100644 index 00000000000..49f952b5a65 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTableResources.java @@ -0,0 +1,22 @@ +package com.sap.sailing.gwt.ui.regattaoverview; + +import com.google.gwt.user.cellview.client.CellTable; + +public interface RegattaOverviewTableResources extends CellTable.Resources { + interface AdminConsoleTableStyle extends CellTable.Style { + /** + * Applied to header cells of race columns + */ + String cellTableRaceNameColumnHeader(); + + /** + * Applied to the totals columns + */ + String cellTableRaceNameColumn(); + + } + + @Override + @Source({ CellTable.Style.DEFAULT_CSS, "RegattaOverviewTable.css" }) + AdminConsoleTableStyle cellTableStyle(); +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index d196bc90f4b..90894996c61 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -121,6 +121,10 @@ import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory; import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.polarsheets.BoatAndWindSpeed; import com.sap.sailing.domain.polarsheets.PolarSheetGenerationWorker; +import com.sap.sailing.domain.racelog.RaceLog; +import com.sap.sailing.domain.racelog.RaceLogEvent; +import com.sap.sailing.domain.racelog.RaceLogEventFactory; +import com.sap.sailing.domain.racelog.impl.RaceLogImpl; import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; @@ -184,8 +188,8 @@ import com.sap.sailing.gwt.ui.shared.RaceColumnDTO; import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceDTO; -import com.sap.sailing.gwt.ui.shared.RaceEventDTO; -import com.sap.sailing.gwt.ui.shared.RaceEventLogDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogDTO; +import com.sap.sailing.gwt.ui.shared.RaceLogEventDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceStatusDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; @@ -1082,6 +1086,24 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return result; } + private RaceLogDTO convertToRaceLogDTO(RaceLog raceLog) { + RaceLogDTO raceLogDTO = new RaceLogDTO(); + raceLog.lockForRead(); + try{ + for(RaceLogEvent raceLogEvent : raceLog.getFixes()){ + raceLogDTO.raceEvents.add(convertToRaceLogEventDTO(raceLogEvent)); + } + }finally{ + raceLog.unlockAfterRead(); + } + return raceLogDTO; + } + + private RaceLogEventDTO convertToRaceLogEventDTO(RaceLogEvent raceLogEvent) { + RaceLogEventDTO raceLogEventDTO = new RaceLogEventDTO(raceLogEvent.getTimePoint().asMillis(), raceLogEvent.getPassId()); + return raceLogEventDTO; + } + private FleetDTO convertToFleetDTO(Fleet fleet) { return new FleetDTO(fleet.getName(), fleet.getOrdering(), fleet.getColor()); } @@ -2136,6 +2158,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S final FleetDTO fleetDTO = convertToFleetDTO(fleet); RaceColumnDTO raceColumnDTO = leaderboardDTO.addRace(raceColumn.getName(), raceColumn.getExplicitFactor(), raceColumn.getFactor(), fleetDTO, raceColumn.isMedalRace(), raceIdentifier, raceDTO); + + //workaround because RaceLog is null + fillRaceLockMock(raceColumnDTO, fleetDTO); + if (latestTimePointAfterQueryTimePointWhenATrackedRaceWasLive != null) { raceColumnDTO.setWhenLastTrackedRaceWasLive(fleetDTO, latestTimePointAfterQueryTimePointWhenATrackedRaceWasLive.asDate()); } @@ -2144,6 +2170,13 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return leaderboardDTO; } + private void fillRaceLockMock(RaceColumnDTO raceColumnDTO, FleetDTO fleetDTO) { + RaceLog raceLog = new RaceLogImpl("lockString"); + raceLog.add(RaceLogEventFactory.INSTANCE.createRaceLogPassChangeEvent(MillisecondsTimePoint.now(), 42)); + RaceLogDTO raceLogDTO = convertToRaceLogDTO(raceLog); + raceColumnDTO.getRaceLogsPerFleet().put(fleetDTO, raceLogDTO); + } + private RaceDTO createRaceDTO(boolean withGeoLocationData, RegattaAndRaceIdentifier raceIdentifier, TrackedRace trackedRace) { // Optional: Getting the places of the race PlacemarkOrderDTO racePlaces = withGeoLocationData ? getRacePlaces(trackedRace) : null; @@ -3125,15 +3158,6 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } } - @Override - public RaceEventLogDTO getRaceEventLog() { - RaceEventLogDTO result = new RaceEventLogDTO("My race"); - for(int i = 0; i < 10; i++) { - result.raceEvents.add(new RaceEventDTO("Event " + i)); - } - return result; - } - @Override public List>> getRankedCompetitorsFromBestToWorstAfterEachRaceColumn(String leaderboardName, Date date) throws NoWindException { Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java index a8e8cd17821..a7abc0ad5e0 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java @@ -19,6 +19,7 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable { private List fleets; private Map trackedRaceIdentifiersPerFleet; private Map racesPerFleet; + private Map raceLogsPerFleet; private Boolean isValidInTotalScore; private Double explicitFactor; private double effectiveFactor; @@ -45,8 +46,17 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable { racesPerFleet = new HashMap(); fleets = new ArrayList(); whenLastTrackedRaceWasLiveByFleet = new HashMap(); + raceLogsPerFleet = new HashMap(); } + public Map getRaceLogsPerFleet() { + return raceLogsPerFleet; + } + + public void setRaceLogsPerFleet(Map raceLogsPerFleet) { + this.raceLogsPerFleet = raceLogsPerFleet; + } + public boolean isValidInTotalScore() { return isValidInTotalScore; } @@ -58,6 +68,11 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable { public Double getExplicitFactor() { return explicitFactor; } + + public RaceLogDTO getRaceLog(FleetDTO fleet){ + //TODO handle non-existence + return raceLogsPerFleet.get(fleet); + } public void setExplicitFactor(Double explicitFactor) { this.explicitFactor = explicitFactor; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventDTO.java deleted file mode 100644 index 7c777dbb175..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventDTO.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import com.google.gwt.user.client.rpc.IsSerializable; - -public class RaceEventDTO implements IsSerializable { - public String eventName; - - // for GWT serialization - protected RaceEventDTO() {} - - public RaceEventDTO(String event) { - this.eventName = event; - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventLogDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventLogDTO.java deleted file mode 100644 index 5078f2be579..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceEventLogDTO.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import java.util.ArrayList; -import java.util.List; - -import com.google.gwt.user.client.rpc.IsSerializable; - -public class RaceEventLogDTO implements IsSerializable { - public String raceName; - - public List raceEvents; - - // for GWT serialization - protected RaceEventLogDTO() {} - - public RaceEventLogDTO(String raceName) { - this.raceName = raceName; - raceEvents = new ArrayList(); - } - -} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java new file mode 100644 index 00000000000..f85c16c1dbe --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java @@ -0,0 +1,16 @@ +package com.sap.sailing.gwt.ui.shared; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gwt.user.client.rpc.IsSerializable; + +public class RaceLogDTO implements IsSerializable { + public List raceEvents; + + // for GWT serialization + public RaceLogDTO() { + raceEvents = new ArrayList(); + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogEventDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogEventDTO.java new file mode 100644 index 00000000000..2c1a49ed627 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogEventDTO.java @@ -0,0 +1,18 @@ +package com.sap.sailing.gwt.ui.shared; + +import com.google.gwt.user.client.rpc.IsSerializable; + +public class RaceLogEventDTO implements IsSerializable { + + public long timePoint; + public int passId; + + // for GWT serialization + protected RaceLogEventDTO() {} + + public RaceLogEventDTO(long timePoint, int passId) { + this.timePoint = timePoint; + this.passId = passId; + } + +} From 47d7e63e1cc88495c10b094971fb023b5d535ce8 Mon Sep 17 00:00:00 2001 From: Fabian Tschirschnitz Date: Sun, 3 Mar 2013 19:33:30 +0100 Subject: [PATCH 2/3] put the racelogs to each racecolumnDTO --- .../sailing/gwt/ui/server/SailingServiceImpl.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 90894996c61..c0816dcf467 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -2159,8 +2159,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S RaceColumnDTO raceColumnDTO = leaderboardDTO.addRace(raceColumn.getName(), raceColumn.getExplicitFactor(), raceColumn.getFactor(), fleetDTO, raceColumn.isMedalRace(), raceIdentifier, raceDTO); - //workaround because RaceLog is null - fillRaceLockMock(raceColumnDTO, fleetDTO); + RaceLog raceLog = raceColumn.getRaceLog(fleet); + raceLog.add(RaceLogEventFactory.INSTANCE.createRaceLogPassChangeEvent(MillisecondsTimePoint.now(), 42)); + RaceLogDTO raceLogDTO = convertToRaceLogDTO(raceLog); + raceColumnDTO.getRaceLogsPerFleet().put(fleetDTO, raceLogDTO); if (latestTimePointAfterQueryTimePointWhenATrackedRaceWasLive != null) { raceColumnDTO.setWhenLastTrackedRaceWasLive(fleetDTO, latestTimePointAfterQueryTimePointWhenATrackedRaceWasLive.asDate()); @@ -2170,13 +2172,6 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return leaderboardDTO; } - private void fillRaceLockMock(RaceColumnDTO raceColumnDTO, FleetDTO fleetDTO) { - RaceLog raceLog = new RaceLogImpl("lockString"); - raceLog.add(RaceLogEventFactory.INSTANCE.createRaceLogPassChangeEvent(MillisecondsTimePoint.now(), 42)); - RaceLogDTO raceLogDTO = convertToRaceLogDTO(raceLog); - raceColumnDTO.getRaceLogsPerFleet().put(fleetDTO, raceLogDTO); - } - private RaceDTO createRaceDTO(boolean withGeoLocationData, RegattaAndRaceIdentifier raceIdentifier, TrackedRace trackedRace) { // Optional: Getting the places of the race PlacemarkOrderDTO racePlaces = withGeoLocationData ? getRacePlaces(trackedRace) : null; From 65a2ca80b551c11c2399d3b4184f38fbc363ef4c Mon Sep 17 00:00:00 2001 From: Fabian Tschirschnitz Date: Mon, 4 Mar 2013 00:56:18 +0100 Subject: [PATCH 3/3] added some rudimentary table to the gwt regattaoverview. --- .../impl/DomainObjectFactoryImpl.java | 3 +- .../META-INF/MANIFEST.MF | 3 + .../domain/racelog/RaceLogEventFactory.java | 4 +- .../racelog/impl/RaceLogEventFactoryImpl.java | 8 +- .../domain/racelog/PassAwareRaceLog.java | 2 +- .../racelog/impl/PassAwareRaceLogImpl.java | 25 +++--- .../state/impl/analyzers/RaceLogAnalyzer.java | 2 +- .../impl/analyzers/RaceStatusAnalyzer.java | 14 +-- .../state/impl/analyzers/StartTimeFinder.java | 2 +- .../sap/sailing/domain/test/RaceLogTest.java | 5 +- .../sailing/gwt/ui/client/SailingService.java | 1 - .../RegattaOverviewEntryPoint.java | 4 +- .../regattaoverview/RegattaOverviewPanel.java | 88 +++++++++---------- .../regattaoverview/RegattaOverviewTable.css | 28 +----- .../gwt/ui/server/SailingServiceImpl.java | 47 +++++----- .../sailing/gwt/ui/shared/RaceColumnDTO.java | 16 ++-- .../sailing/gwt/ui/shared/RaceInfoDTO.java | 15 ++++ .../sap/sailing/gwt/ui/shared/RaceLogDTO.java | 16 ---- ...ingAndRetrievingRaceLogInLeaderboards.java | 2 +- ...tStoringAndRetrievingRaceLogInRegatta.java | 2 +- .../app/data/OfflineDataManager.java | 4 +- .../data/parsers/ManagedRacesDataParser.java | 4 +- .../impl/RaceLogDeserializer.java | 2 +- .../app/domain/impl/ManagedRaceImpl.java | 2 +- .../app/domain/state/impl/RaceStateImpl.java | 6 +- 25 files changed, 144 insertions(+), 161 deletions(-) rename {mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app => java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee}/domain/racelog/PassAwareRaceLog.java (68%) rename {mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app => java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee}/domain/racelog/impl/PassAwareRaceLogImpl.java (73%) rename {mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app => java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee}/domain/state/impl/analyzers/RaceLogAnalyzer.java (85%) rename {mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app => java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee}/domain/state/impl/analyzers/RaceStatusAnalyzer.java (58%) rename {mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app => java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee}/domain/state/impl/analyzers/StartTimeFinder.java (89%) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceInfoDTO.java delete mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index 5da34863da6..c060a475eec 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1013,9 +1013,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return null; } TimePoint startTime = new MillisecondsTimePoint(startTimeInMillis); - RaceLogRaceStatus nextStatus = RaceLogRaceStatus.valueOf((String) dbObject.get(FieldNames.RACE_LOG_EVENT_NEXT_STATUS.name())); - return RaceLogEventFactory.INSTANCE.createStartTimeEvent(timePoint, id, competitors, passId, nextStatus, startTime); + return RaceLogEventFactory.INSTANCE.createStartTimeEvent(timePoint, id, competitors, passId, startTime); } private RaceLogRaceStatusEvent loadRaceLogRaceStatusEvent(TimePoint timePoint, Serializable id, Integer passId, List competitors, DBObject dbObject) { diff --git a/java/com.sap.sailing.domain.shared.android/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.shared.android/META-INF/MANIFEST.MF index 2001923ace7..7c5725e3e0e 100644 --- a/java/com.sap.sailing.domain.shared.android/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.shared.android/META-INF/MANIFEST.MF @@ -14,5 +14,8 @@ Export-Package: com.sap.sailing.domain.base, com.sap.sailing.domain.racelog.impl, com.sap.sailing.domain.tracking, com.sap.sailing.domain.tracking.impl, + com.sap.sailing.racecommittee.domain.racelog, + com.sap.sailing.racecommittee.domain.racelog.impl, + com.sap.sailing.racecommittee.domain.state.impl.analyzers, com.sap.sailing.util, com.sap.sailing.util.impl diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java index d52ba79dcd3..1f4382a88c3 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogEventFactory.java @@ -13,8 +13,8 @@ public interface RaceLogEventFactory { RaceLogFlagEvent createFlagEvent(TimePoint timePoint, Serializable id, List involvedBoats, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed); RaceLogFlagEvent createFlagEvent(TimePoint timePoint, int passId, Flags upperFlag, Flags lowerFlag, boolean isDisplayed); - RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, Serializable id, List involvedBoats, int passId, RaceLogRaceStatus nextStatus, TimePoint startTime); - RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, int passId, RaceLogRaceStatus nextStatus, TimePoint startTime); + RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, Serializable id, List involvedBoats, int passId, TimePoint startTime); + RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, int passId, TimePoint startTime); RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint timePoint, Serializable id, List competitors, int passId, RaceLogRaceStatus nextStatus); RaceLogRaceStatusEvent createRaceStatusEvent(TimePoint timePoint, int passId, RaceLogRaceStatus nextStatus); diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java index d2e49694d7a..f8bf8a5e896 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java @@ -32,13 +32,13 @@ public class RaceLogEventFactoryImpl implements RaceLogEventFactory { @Override public RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, Serializable id, List involvedBoats, int passId, - RaceLogRaceStatus nextStatus, TimePoint startTime) { - return new RaceLogStartTimeEventImpl(timePoint, id, involvedBoats, passId, nextStatus, startTime); + TimePoint startTime) { + return new RaceLogStartTimeEventImpl(timePoint, id, involvedBoats, passId, RaceLogRaceStatus.SCHEDULED, startTime); } @Override - public RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, int passId, RaceLogRaceStatus nextStatus, TimePoint startTime) { - return createStartTimeEvent(timePoint, UUID.randomUUID(), new ArrayList(), passId, nextStatus, startTime); + public RaceLogStartTimeEvent createStartTimeEvent(TimePoint timePoint, int passId, TimePoint startTime) { + return createStartTimeEvent(timePoint, UUID.randomUUID(), new ArrayList(), passId, startTime); } @Override diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/racelog/PassAwareRaceLog.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/racelog/PassAwareRaceLog.java similarity index 68% rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/racelog/PassAwareRaceLog.java rename to java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/racelog/PassAwareRaceLog.java index c4fa9f51875..8255aae3cdc 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/racelog/PassAwareRaceLog.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/racelog/PassAwareRaceLog.java @@ -1,4 +1,4 @@ -package com.sap.sailing.racecommittee.app.domain.racelog; +package com.sap.sailing.racecommittee.domain.racelog; import com.sap.sailing.domain.racelog.RaceLog; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/racelog/impl/PassAwareRaceLogImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/racelog/impl/PassAwareRaceLogImpl.java similarity index 73% rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/racelog/impl/PassAwareRaceLogImpl.java rename to java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/racelog/impl/PassAwareRaceLogImpl.java index 1bd785c35f5..9fdaa707296 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/racelog/impl/PassAwareRaceLogImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/racelog/impl/PassAwareRaceLogImpl.java @@ -1,4 +1,4 @@ -package com.sap.sailing.racecommittee.app.domain.racelog.impl; +package com.sap.sailing.racecommittee.domain.racelog.impl; import java.util.NavigableSet; @@ -6,11 +6,10 @@ import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.impl.RaceLogImpl; import com.sap.sailing.domain.tracking.impl.PartialNavigableSetView; -import com.sap.sailing.racecommittee.app.domain.racelog.PassAwareRaceLog; -import com.sap.sailing.racecommittee.app.logging.ExLog; +import com.sap.sailing.racecommittee.domain.racelog.PassAwareRaceLog; public class PassAwareRaceLogImpl extends RaceLogImpl implements PassAwareRaceLog { - private static final String TAG = PassAwareRaceLogImpl.class.getName(); + //private static final String TAG = PassAwareRaceLogImpl.class.getName(); private static final long serialVersionUID = -1252381252528365834L; private static final String ReadWriteLockName = PassAwareRaceLogImpl.class.getName() + ".lock"; @@ -20,15 +19,21 @@ public class PassAwareRaceLogImpl extends RaceLogImpl implements PassAwareRaceLo public PassAwareRaceLogImpl(RaceLog raceLog) { this(); - for (RaceLogEvent event : raceLog.getRawFixes()) { - this.add(event); + try{ + raceLog.lockForRead(); + for (RaceLogEvent event : raceLog.getRawFixes()) { + this.add(event); + } + }finally{ + raceLog.unlockAfterRead(); } + } public PassAwareRaceLogImpl() { this(DefaultPassId); } - + public PassAwareRaceLogImpl(int currentPassId) { super(ReadWriteLockName); this.currentPassId = currentPassId; @@ -40,7 +45,7 @@ public class PassAwareRaceLogImpl extends RaceLogImpl implements PassAwareRaceLo public void setCurrentPassId(int newPassId) { if (newPassId != this.currentPassId) { - ExLog.i(TAG, String.format("Changing pass id to %d", newPassId)); + //ExLog.i(TAG, String.format("Changing pass id to %d", newPassId)); this.currentPassId = newPassId; } } @@ -75,11 +80,11 @@ public class PassAwareRaceLogImpl extends RaceLogImpl implements PassAwareRaceLo unlockAfterWrite(); } if (isAdded) { - ExLog.i(TAG, String.format("%s (%s) was added to log.", event, event.getClass().getName())); + //ExLog.i(TAG, String.format("%s (%s) was added to log.", event, event.getClass().getName())); setCurrentPassId(Math.max(event.getPassId(), this.currentPassId)); notifyListenersAboutReceive(event); } else { - ExLog.w(TAG, String.format("%s (%s) was not added to log. Ignoring", event, event.getClass().getName())); + //ExLog.w(TAG, String.format("%s (%s) was not added to log. Ignoring", event, event.getClass().getName())); } return isAdded; } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/RaceLogAnalyzer.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/RaceLogAnalyzer.java similarity index 85% rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/RaceLogAnalyzer.java rename to java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/RaceLogAnalyzer.java index 9757c5d4e83..29ca928a3fd 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/RaceLogAnalyzer.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/RaceLogAnalyzer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.racecommittee.app.domain.state.impl.analyzers; +package com.sap.sailing.racecommittee.domain.state.impl.analyzers; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/RaceStatusAnalyzer.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/RaceStatusAnalyzer.java similarity index 58% rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/RaceStatusAnalyzer.java rename to java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/RaceStatusAnalyzer.java index b1779bd582f..243de8f0536 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/RaceStatusAnalyzer.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/RaceStatusAnalyzer.java @@ -1,32 +1,32 @@ -package com.sap.sailing.racecommittee.app.domain.state.impl.analyzers; +package com.sap.sailing.racecommittee.domain.state.impl.analyzers; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent; -import com.sap.sailing.racecommittee.app.logging.ExLog; +//import com.sap.sailing.racecommittee.app.logging.ExLog; public class RaceStatusAnalyzer extends RaceLogAnalyzer { - private static final String TAG = RaceStatusAnalyzer.class.getName(); + //private static final String TAG = RaceStatusAnalyzer.class.getName(); public RaceStatusAnalyzer(RaceLog raceLog) { super(raceLog); } public RaceLogRaceStatus getStatus() { - ExLog.i(TAG, String.format("Updating status...")); + //ExLog.i(TAG, String.format("Updating status...")); RaceLogRaceStatus newStatus = RaceLogRaceStatus.UNSCHEDULED; for (RaceLogEvent event : getPassEvents()) { - ExLog.i(TAG, String.format("Deciding on event of type %s.", event.getClass().getSimpleName())); + //ExLog.i(TAG, String.format("Deciding on event of type %s.", event.getClass().getSimpleName())); if (event instanceof RaceLogRaceStatusEvent) { RaceLogRaceStatusEvent statusEvent = (RaceLogRaceStatusEvent) event; - ExLog.i(TAG, String.format("Decision to %s.", statusEvent.getNextStatus())); + //ExLog.i(TAG, String.format("Decision to %s.", statusEvent.getNextStatus())); newStatus = statusEvent.getNextStatus(); } } - ExLog.i(TAG, String.format("Status will be set to %s.", newStatus)); + //ExLog.i(TAG, String.format("Status will be set to %s.", newStatus)); return newStatus; } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/StartTimeFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/StartTimeFinder.java similarity index 89% rename from mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/StartTimeFinder.java rename to java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/StartTimeFinder.java index e14931bf5f1..8d14a333f1d 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/analyzers/StartTimeFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/racecommittee/domain/state/impl/analyzers/StartTimeFinder.java @@ -1,4 +1,4 @@ -package com.sap.sailing.racecommittee.app.domain.state.impl.analyzers; +package com.sap.sailing.racecommittee.domain.state.impl.analyzers; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLog; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogTest.java index 25256230550..15fa4002758 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceLogTest.java @@ -13,11 +13,10 @@ import org.junit.Test; import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.Flags; +import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventFactory; -import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogFlagEvent; -import com.sap.sailing.domain.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; import com.sap.sailing.domain.racelog.impl.RaceLogImpl; @@ -72,7 +71,7 @@ public class RaceLogTest { RaceLogFlagEvent rcEvent4 = RaceLogEventFactory.INSTANCE.createFlagEvent(t4, passId, Flags.CLASS, Flags.NONE, true); RaceLogStartTimeEvent rcEvent5 = RaceLogEventFactory.INSTANCE.createStartTimeEvent(t5, passId, - RaceLogRaceStatus.SCHEDULED, t1); + t1); rcEventTrack.add(rcEvent5); rcEventTrack.add(rcEvent3); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 5944d7e7f5a..15e4d38e6ae 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -39,7 +39,6 @@ import com.sap.sailing.gwt.ui.shared.QuickRankDTO; import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; import com.sap.sailing.gwt.ui.shared.RegattaDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java index abbd58826bd..35db3ecaf3e 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewEntryPoint.java @@ -23,8 +23,8 @@ public class RegattaOverviewEntryPoint extends AbstractEntryPoint { RootPanel.getBodyElement().getStyle().setPadding(0, Unit.PX); RootPanel.getBodyElement().getStyle().setPaddingTop(20, Unit.PX); } - - RegattaOverviewPanel regattaOverviewPanel = new RegattaOverviewPanel(sailingService, this, stringMessages); + String leaderBoardName = Window.Location.getParameter("leaderboardName"); + RegattaOverviewPanel regattaOverviewPanel = new RegattaOverviewPanel(sailingService, this, stringMessages, leaderBoardName); rootPanel.add(regattaOverviewPanel); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java index 330dcbfd3c9..67896154ed5 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewPanel.java @@ -7,17 +7,14 @@ import com.google.gwt.user.cellview.client.CellTable; import com.google.gwt.user.cellview.client.TextColumn; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.FlowPanel; -import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.VerticalPanel; -import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources; +import com.google.gwt.view.client.ListDataProvider; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.FleetDTO; import com.sap.sailing.gwt.ui.shared.RaceColumnDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogEventDTO; -import com.sap.sailing.gwt.ui.shared.RegattaDTO; +import com.sap.sailing.gwt.ui.shared.RaceInfoDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; public class RegattaOverviewPanel extends FlowPanel { @@ -27,52 +24,70 @@ public class RegattaOverviewPanel extends FlowPanel { @SuppressWarnings("unused") private final StringMessages stringMessages; - private final Label label; - private final VerticalPanel mainPanel; + + private final String leaderboardName; public RegattaOverviewPanel(final SailingServiceAsync sailingService, - ErrorReporter errorReporter, final StringMessages stringMessages) { + ErrorReporter errorReporter, final StringMessages stringMessages, String leaderboardName) { this.sailingService = sailingService; this.errorReporter = errorReporter; this.stringMessages = stringMessages; mainPanel = new VerticalPanel(); this.add(mainPanel); - - label = new Label("Hallo world"); - mainPanel.add(label); + + this.leaderboardName = leaderboardName; loadEventLog(); } private void loadEventLog() { - sailingService.getLeaderboards(new AsyncCallback>() { - + sailingService.getLeaderboard(this.leaderboardName, new AsyncCallback() { + @Override - public void onSuccess(List result) { - for(StrippedLeaderboardDTO leaderboard : result){ - /**final AdminConsoleTableResources tableRes = GWT.create(RegattaOverviewTableResources.class); - CellTable regattaTable = new CellTable(10000, tableRes); + public void onSuccess(StrippedLeaderboardDTO leaderboard) { + + if (leaderboard != null) { + final RegattaOverviewTableResources tableRes = GWT.create(RegattaOverviewTableResources.class); + CellTable regattaTable = new CellTable(10, tableRes); regattaTable.setWidth("100%"); - TextColumn regattaNameColumn = new TextColumn() { + TextColumn raceNameColumn = new TextColumn() { @Override - public String getValue(RaceColumnDTO race) { - return race.name; + public String getValue(RaceInfoDTO raceInfo) { + return raceInfo.raceName; } - };*/ + }; - for(RaceColumnDTO race :leaderboard.getRaceList()){ - RaceLogDTO raceLog = null; - for(FleetDTO fleet : race.getFleets()){ - raceLog = race.getRaceLog(fleet); + TextColumn raceStartTimeColumn = new TextColumn() { + @Override + public String getValue(RaceInfoDTO raceInfo) { + return raceInfo.startTime.toString(); } - - mainPanel.add(new Label(race.name)); - for(RaceLogEventDTO raceLogEventDTO : raceLog.raceEvents){ - mainPanel.add(new Label(raceLogEventDTO.passId+"")); + }; + + regattaTable.addColumn(raceNameColumn, "Race Name"); + regattaTable.addColumn(raceStartTimeColumn, "Starttime"); + + // Create a data provider. + ListDataProvider dataProvider = new ListDataProvider(); + + // Connect the table to the data provider. + dataProvider.addDataDisplay(regattaTable); + + // Add the data to the data provider, which automatically pushes it to the + // widget. + List list = dataProvider.getList(); + + mainPanel.add(regattaTable); + for (RaceColumnDTO race : leaderboard.getRaceList()) { + RaceInfoDTO raceInfo = null; + for (FleetDTO fleet : race.getFleets()) { + raceInfo = race.getRaceLog(fleet); + list.add(raceInfo); } } + } } @@ -82,20 +97,5 @@ public class RegattaOverviewPanel extends FlowPanel { } }); - /**sailingService.getRaceEventLog(new AsyncCallback() { - - @Override - public void onSuccess(RaceEventLogDTO result) { - label.setText(result.raceName); - int i = 0; - for(RaceEventDTO raceEvent: result.raceEvents) { - mainPanel.add(new Label(i++ + ".) " + raceEvent.eventName)); - } - } - - @Override - public void onFailure(Throwable arg0) { - } - });*/ } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css index 5b20bbc145c..0221545003c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/regattaoverview/RegattaOverviewTable.css @@ -101,33 +101,11 @@ border-bottom: 2px solid #21a0e4 !important; } -.cellTableRaceColumnHeader { +.cellTableRaceNameColumnHeader { background-color: #e0e0e0; padding: 3px 12px; } -.cellTableLegColumnHeader { - background-color: #efefef; - padding: 3px 12px; -} - -.cellTableLegDetailColumnHeader { - background-color: #f4f5f6; - padding: 3px 12px; -} - -.cellTableRaceColumn { +.cellTableRaceNameColumn { background-color: #e0e0e0 !important; -} - -.cellTableLegColumn { - background-color: #efefef !important; -} - -.cellTableLegDetailColumn { - background-color: #ffffff !important; -} - -.cellTableTotalColumn { - background-color: #e0e0e0 !important; -} +} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index c0816dcf467..9c66b10f753 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -122,9 +122,7 @@ import com.sap.sailing.domain.persistence.MongoWindStoreFactory; import com.sap.sailing.domain.polarsheets.BoatAndWindSpeed; import com.sap.sailing.domain.polarsheets.PolarSheetGenerationWorker; import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventFactory; -import com.sap.sailing.domain.racelog.impl.RaceLogImpl; import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; @@ -188,8 +186,7 @@ import com.sap.sailing.gwt.ui.shared.RaceColumnDTO; import com.sap.sailing.gwt.ui.shared.RaceColumnInSeriesDTO; import com.sap.sailing.gwt.ui.shared.RaceCourseDTO; import com.sap.sailing.gwt.ui.shared.RaceDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogDTO; -import com.sap.sailing.gwt.ui.shared.RaceLogEventDTO; +import com.sap.sailing.gwt.ui.shared.RaceInfoDTO; import com.sap.sailing.gwt.ui.shared.RaceMapDataDTO; import com.sap.sailing.gwt.ui.shared.RaceStatusDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; @@ -216,6 +213,8 @@ import com.sap.sailing.gwt.ui.shared.WaypointDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO; +import com.sap.sailing.racecommittee.domain.racelog.impl.PassAwareRaceLogImpl; +import com.sap.sailing.racecommittee.domain.state.impl.analyzers.StartTimeFinder; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard; @@ -1086,22 +1085,19 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return result; } - private RaceLogDTO convertToRaceLogDTO(RaceLog raceLog) { - RaceLogDTO raceLogDTO = new RaceLogDTO(); - raceLog.lockForRead(); - try{ - for(RaceLogEvent raceLogEvent : raceLog.getFixes()){ - raceLogDTO.raceEvents.add(convertToRaceLogEventDTO(raceLogEvent)); - } - }finally{ - raceLog.unlockAfterRead(); + private RaceInfoDTO convertToRaceInfoDTO(RaceColumnDTO raceColumnDTO, Fleet fleet, RaceLog raceLog) { + RaceInfoDTO raceInfoDTO = new RaceInfoDTO(); + + PassAwareRaceLogImpl passAwareRaceLog = new PassAwareRaceLogImpl(raceLog); + StartTimeFinder startTimeFinder = new StartTimeFinder(passAwareRaceLog); + if(startTimeFinder.getStartTime()!=null){ + raceInfoDTO.startTime = startTimeFinder.getStartTime().asDate(); } - return raceLogDTO; - } - - private RaceLogEventDTO convertToRaceLogEventDTO(RaceLogEvent raceLogEvent) { - RaceLogEventDTO raceLogEventDTO = new RaceLogEventDTO(raceLogEvent.getTimePoint().asMillis(), raceLogEvent.getPassId()); - return raceLogEventDTO; + + raceInfoDTO.raceName = raceColumnDTO.name; + raceInfoDTO.fleet = fleet.getName(); + + return raceInfoDTO; } private FleetDTO convertToFleetDTO(Fleet fleet) { @@ -2159,10 +2155,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S RaceColumnDTO raceColumnDTO = leaderboardDTO.addRace(raceColumn.getName(), raceColumn.getExplicitFactor(), raceColumn.getFactor(), fleetDTO, raceColumn.isMedalRace(), raceIdentifier, raceDTO); - RaceLog raceLog = raceColumn.getRaceLog(fleet); - raceLog.add(RaceLogEventFactory.INSTANCE.createRaceLogPassChangeEvent(MillisecondsTimePoint.now(), 42)); - RaceLogDTO raceLogDTO = convertToRaceLogDTO(raceLog); - raceColumnDTO.getRaceLogsPerFleet().put(fleetDTO, raceLogDTO); + addRaceInfoToRace(raceColumn, fleet, fleetDTO, raceColumnDTO); if (latestTimePointAfterQueryTimePointWhenATrackedRaceWasLive != null) { raceColumnDTO.setWhenLastTrackedRaceWasLive(fleetDTO, latestTimePointAfterQueryTimePointWhenATrackedRaceWasLive.asDate()); @@ -2171,6 +2164,14 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } return leaderboardDTO; } +//TODO + private void addRaceInfoToRace(RaceColumn raceColumn, Fleet fleet, final FleetDTO fleetDTO, + RaceColumnDTO raceColumnDTO) { + RaceLog raceLog = raceColumn.getRaceLog(fleet); + raceLog.add(RaceLogEventFactory.INSTANCE.createStartTimeEvent(MillisecondsTimePoint.now(), 1, MillisecondsTimePoint.now().plus(1000))); + RaceInfoDTO raceLogDTO = convertToRaceInfoDTO(raceColumnDTO, fleet, raceLog); + raceColumnDTO.getRaceInfoPerFleet().put(fleetDTO, raceLogDTO); + } private RaceDTO createRaceDTO(boolean withGeoLocationData, RegattaAndRaceIdentifier raceIdentifier, TrackedRace trackedRace) { // Optional: Getting the places of the race diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java index a7abc0ad5e0..18e4e3f28be 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceColumnDTO.java @@ -19,7 +19,7 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable { private List fleets; private Map trackedRaceIdentifiersPerFleet; private Map racesPerFleet; - private Map raceLogsPerFleet; + private Map raceInfoPerFleet; private Boolean isValidInTotalScore; private Double explicitFactor; private double effectiveFactor; @@ -46,15 +46,15 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable { racesPerFleet = new HashMap(); fleets = new ArrayList(); whenLastTrackedRaceWasLiveByFleet = new HashMap(); - raceLogsPerFleet = new HashMap(); + raceInfoPerFleet = new HashMap(); } - public Map getRaceLogsPerFleet() { - return raceLogsPerFleet; + public Map getRaceInfoPerFleet() { + return raceInfoPerFleet; } - public void setRaceLogsPerFleet(Map raceLogsPerFleet) { - this.raceLogsPerFleet = raceLogsPerFleet; + public void setRaceInfoPerFleet(Map raceLogsPerFleet) { + this.raceInfoPerFleet = raceLogsPerFleet; } public boolean isValidInTotalScore() { @@ -69,9 +69,9 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable { return explicitFactor; } - public RaceLogDTO getRaceLog(FleetDTO fleet){ + public RaceInfoDTO getRaceLog(FleetDTO fleet){ //TODO handle non-existence - return raceLogsPerFleet.get(fleet); + return raceInfoPerFleet.get(fleet); } public void setExplicitFactor(Double explicitFactor) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceInfoDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceInfoDTO.java new file mode 100644 index 00000000000..b9f3b87af26 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceInfoDTO.java @@ -0,0 +1,15 @@ +package com.sap.sailing.gwt.ui.shared; + +import java.util.Date; + +import com.google.gwt.user.client.rpc.IsSerializable; + +public class RaceInfoDTO implements IsSerializable { + public String raceName; + public String fleet; + public Date startTime; + + // for GWT serialization + public RaceInfoDTO() { } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java deleted file mode 100644 index f85c16c1dbe..00000000000 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RaceLogDTO.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.sap.sailing.gwt.ui.shared; - -import java.util.ArrayList; -import java.util.List; - -import com.google.gwt.user.client.rpc.IsSerializable; - -public class RaceLogDTO implements IsSerializable { - public List raceEvents; - - // for GWT serialization - public RaceLogDTO() { - raceEvents = new ArrayList(); - } - -} diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java index b7740dda5c7..eb4cc21deb3 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java @@ -151,7 +151,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends AbstractMongo @Test public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogStartTimeEvent() { - RaceLogStartTimeEvent event = RaceLogEventFactory.INSTANCE.createStartTimeEvent(now, 0, RaceLogRaceStatus.RUNNING, now); + RaceLogStartTimeEvent event = RaceLogEventFactory.INSTANCE.createStartTimeEvent(now, 0, now); addAndStoreRaceLogEvent(leaderboard, raceColumnName, event); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java index 21274e2a16f..091aaecd736 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java @@ -180,7 +180,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends AbstractMongoDBTes @Test public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogStartTimeEvent() { - RaceLogStartTimeEvent event = RaceLogEventFactory.INSTANCE.createStartTimeEvent(now, 0, RaceLogRaceStatus.RUNNING, now); + RaceLogStartTimeEvent event = RaceLogEventFactory.INSTANCE.createStartTimeEvent(now, 0, now); addAndStoreRaceLogEvent(regatta, raceColumnName, event); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java index 389f24eabc6..5a3d7730640 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/OfflineDataManager.java @@ -23,8 +23,8 @@ import com.sap.sailing.racecommittee.app.data.clients.LoadClient; import com.sap.sailing.racecommittee.app.domain.ManagedRace; import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceIdentifierImpl; import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceImpl; -import com.sap.sailing.racecommittee.app.domain.racelog.PassAwareRaceLog; -import com.sap.sailing.racecommittee.app.domain.racelog.impl.PassAwareRaceLogImpl; +import com.sap.sailing.racecommittee.domain.racelog.PassAwareRaceLog; +import com.sap.sailing.racecommittee.domain.racelog.impl.PassAwareRaceLogImpl; public class OfflineDataManager extends DataManager { diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java index ad1901e3eee..2b9653be6f1 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java @@ -17,8 +17,8 @@ import com.sap.sailing.racecommittee.app.domain.ManagedRace; import com.sap.sailing.racecommittee.app.domain.impl.FleetIdentifierImpl; import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceIdentifierImpl; import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceImpl; -import com.sap.sailing.racecommittee.app.domain.racelog.PassAwareRaceLog; -import com.sap.sailing.racecommittee.app.domain.racelog.impl.PassAwareRaceLogImpl; +import com.sap.sailing.racecommittee.domain.racelog.PassAwareRaceLog; +import com.sap.sailing.racecommittee.domain.racelog.impl.PassAwareRaceLogImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/deserialization/impl/RaceLogDeserializer.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/deserialization/impl/RaceLogDeserializer.java index 19e564ad5be..8a966e32381 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/deserialization/impl/RaceLogDeserializer.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/deserialization/impl/RaceLogDeserializer.java @@ -3,7 +3,7 @@ package com.sap.sailing.racecommittee.app.deserialization.impl; import org.json.simple.JSONObject; import com.sap.sailing.domain.racelog.RaceLog; -import com.sap.sailing.racecommittee.app.domain.racelog.impl.PassAwareRaceLogImpl; +import com.sap.sailing.racecommittee.domain.racelog.impl.PassAwareRaceLogImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java index ae27776dc3e..9419480a1da 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/impl/ManagedRaceImpl.java @@ -9,9 +9,9 @@ import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogRaceStatus; import com.sap.sailing.racecommittee.app.domain.ManagedRace; import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier; -import com.sap.sailing.racecommittee.app.domain.racelog.PassAwareRaceLog; import com.sap.sailing.racecommittee.app.domain.state.RaceState; import com.sap.sailing.racecommittee.app.domain.state.impl.RaceStateImpl; +import com.sap.sailing.racecommittee.domain.racelog.PassAwareRaceLog; public class ManagedRaceImpl implements ManagedRace { private static final long serialVersionUID = -4936566684992524001L; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java index 4c176650c9d..6d10f6b5127 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/state/impl/RaceStateImpl.java @@ -13,12 +13,12 @@ import com.sap.sailing.domain.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.racelog.impl.RaceLogPassChangeEventImpl; import com.sap.sailing.domain.racelog.impl.RaceLogRaceStatusEventImpl; import com.sap.sailing.domain.racelog.impl.RaceLogStartTimeEventImpl; -import com.sap.sailing.racecommittee.app.domain.racelog.PassAwareRaceLog; import com.sap.sailing.racecommittee.app.domain.state.RaceLogChangedListener; import com.sap.sailing.racecommittee.app.domain.state.RaceState; import com.sap.sailing.racecommittee.app.domain.state.RaceStateChangedListener; -import com.sap.sailing.racecommittee.app.domain.state.impl.analyzers.RaceStatusAnalyzer; -import com.sap.sailing.racecommittee.app.domain.state.impl.analyzers.StartTimeFinder; +import com.sap.sailing.racecommittee.domain.racelog.PassAwareRaceLog; +import com.sap.sailing.racecommittee.domain.state.impl.analyzers.RaceStatusAnalyzer; +import com.sap.sailing.racecommittee.domain.state.impl.analyzers.StartTimeFinder; public class RaceStateImpl implements RaceState, RaceLogChangedListener { //private static final String TAG = RaceStateImpl.class.getName();