added some things to the gwt ui. moved Flags.java and RaceLogRaceStatus.java to domain.common

This commit is contained in:
Fabian Tschirschnitz
2013-03-05 16:10:03 +01:00
parent 10056a7b49
commit ca738ad311
63 changed files with 198 additions and 192 deletions
@@ -9,4 +9,5 @@ Bundle-ActivationPolicy: lazy
Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.impl,
com.sap.sailing.domain.common.quadtree,
com.sap.sailing.domain.common.quadtree.impl;x-friends:="com.sap.sailing.domain.test"
com.sap.sailing.domain.common.quadtree.impl;x-friends:="com.sap.sailing.domain.test",
com.sap.sailing.domain.racelog
@@ -1,24 +1,24 @@
package com.sap.sailing.domain.racelog;
public enum Flags {
NONE,
ALPHA,
BRAVO,
CLASS,
FOXTROTT,
GOLF,
HOTEL,
INDIA,
NOVEMBER,
PAPA,
XRAY,
ZULU,
FIRSTSUBSTITUTE,
BLACK,
BLUE,
JURY,
AP,
ESSONE,
ESSTWO,
ESSTHREE
}
package com.sap.sailing.domain.racelog;
public enum Flags {
NONE,
ALPHA,
BRAVO,
CLASS,
FOXTROTT,
GOLF,
HOTEL,
INDIA,
NOVEMBER,
PAPA,
XRAY,
ZULU,
FIRSTSUBSTITUTE,
BLACK,
BLUE,
JURY,
AP,
ESSONE,
ESSTWO,
ESSTHREE
}
@@ -1,9 +1,9 @@
package com.sap.sailing.domain.racelog;
/**
* @author D053502
*
*/
public enum RaceLogRaceStatus {
UNKNOWN, UNSCHEDULED, SCHEDULED, STARTPHASE, RUNNING, FINISHING, FINISHED
}
package com.sap.sailing.domain.racelog;
/**
* @author D053502
*
*/
public enum RaceLogRaceStatus {
UNKNOWN, UNSCHEDULED, SCHEDULED, STARTPHASE, RUNNING, FINISHING, FINISHED
}
@@ -14,8 +14,6 @@ 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
@@ -0,0 +1,6 @@
package com.sap.sailing.domain.racelog;
public interface PassAwareRaceLog extends RaceLog {
int getCurrentPassId();
}
@@ -1,12 +1,11 @@
package com.sap.sailing.racecommittee.domain.racelog.impl;
package com.sap.sailing.domain.racelog.impl;
import java.util.NavigableSet;
import com.sap.sailing.domain.racelog.PassAwareRaceLog;
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.domain.racelog.PassAwareRaceLog;
public class PassAwareRaceLogImpl extends RaceLogImpl implements PassAwareRaceLog {
// private static final String TAG = PassAwareRaceLogImpl.class.getName();
@@ -1,7 +0,0 @@
package com.sap.sailing.racecommittee.domain.racelog;
import com.sap.sailing.domain.racelog.RaceLog;
public interface PassAwareRaceLog extends RaceLog {
int getCurrentPassId();
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 497 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 841 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 523 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 827 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 340 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 277 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 988 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 358 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

@@ -513,4 +513,6 @@ public interface StringMessages extends Messages {
String totalDistanceTraveledTooltip();
String totalAverageSpeedOverGround();
String totalAverageSpeedOverGroundTooltip();
String noStarttimeAnnouncedYet();
String lastFlag();
}
@@ -515,4 +515,6 @@ courseAreas=Course areas
courseArea=Course area
pleaseEnterNonEmptyCourseArea=Please enter a course area.
pleaseSelectACourseArea=Please select a course area.
radiusInMeters=Radius (m)
radiusInMeters=Radius (m)
noStarttimeAnnouncedYet=No start time announced yet
lastFlag=Last flag
@@ -0,0 +1,31 @@
package com.sap.sailing.gwt.ui.regattaoverview;
import java.util.Arrays;
import com.google.gwt.core.client.GWT;
import com.google.gwt.text.shared.SafeHtmlRenderer;
import com.sap.sailing.gwt.ui.adminconsole.ImagesBarCell;
import com.sap.sailing.gwt.ui.client.StringMessages;
public class FlagImageCell extends ImagesBarCell {
static final String ACTION_EDIT = "ACTION_EDIT";
private final StringMessages stringMessages;
private static RegattaOverviewResources resources = GWT.create(RegattaOverviewResources.class);
public FlagImageCell(StringMessages stringConstants) {
super();
this.stringMessages = stringConstants;
}
public FlagImageCell(SafeHtmlRenderer<String> renderer, StringMessages stringMessages) {
super();
this.stringMessages = stringMessages;
}
@Override
protected Iterable<ImageSpec> getImageSpecs() {
return Arrays.asList(
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.flagAP())),
new ImageSpec(ACTION_EDIT, stringMessages.actionEdit(), makeImagePrototype(resources.arrowUp())));
}
}
@@ -1,101 +0,0 @@
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.VerticalPanel;
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.RaceInfoDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
public class RegattaOverviewPanel extends FlowPanel {
private final SailingServiceAsync sailingService;
@SuppressWarnings("unused")
private final ErrorReporter errorReporter;
@SuppressWarnings("unused")
private final StringMessages stringMessages;
private final VerticalPanel mainPanel;
private final String leaderboardName;
public RegattaOverviewPanel(final SailingServiceAsync sailingService,
ErrorReporter errorReporter, final StringMessages stringMessages, String leaderboardName) {
this.sailingService = sailingService;
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
mainPanel = new VerticalPanel();
this.add(mainPanel);
this.leaderboardName = leaderboardName;
loadEventLog();
}
private void loadEventLog() {
sailingService.getLeaderboard(this.leaderboardName, new AsyncCallback<StrippedLeaderboardDTO>() {
@Override
public void onSuccess(StrippedLeaderboardDTO leaderboard) {
if (leaderboard != null) {
final RegattaOverviewTableResources tableRes = GWT.create(RegattaOverviewTableResources.class);
CellTable<RaceInfoDTO> regattaTable = new CellTable<RaceInfoDTO>(10, tableRes);
regattaTable.setWidth("100%");
TextColumn<RaceInfoDTO> raceNameColumn = new TextColumn<RaceInfoDTO>() {
@Override
public String getValue(RaceInfoDTO raceInfo) {
return raceInfo.raceName;
}
};
TextColumn<RaceInfoDTO> raceStartTimeColumn = new TextColumn<RaceInfoDTO>() {
@Override
public String getValue(RaceInfoDTO raceInfo) {
return raceInfo.startTime.toString();
}
};
regattaTable.addColumn(raceNameColumn, "Race Name");
regattaTable.addColumn(raceStartTimeColumn, "Starttime");
// Create a data provider.
ListDataProvider<RaceInfoDTO> dataProvider = new ListDataProvider<RaceInfoDTO>();
// 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<RaceInfoDTO> 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);
}
}
}
}
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
});
}
}
@@ -0,0 +1,12 @@
package com.sap.sailing.gwt.ui.regattaoverview;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.ImageResource;
interface RegattaOverviewResources extends ClientBundle {
@Source("com/sap/sailing/gwt/ui/client/images/flags/flagsRacecommittee/ap.png")
ImageResource flagAP();
@Source("com/sap/sailing/gwt/ui/client/images/flags/flagsRacecommittee/up.png")
ImageResource arrowUp();
}
@@ -2,9 +2,12 @@ package com.sap.sailing.gwt.ui.regattaoverview;
import java.util.Date;
import com.google.gwt.cell.client.ImageResourceCell;
import com.google.gwt.core.client.GWT;
import com.google.gwt.i18n.client.DateTimeFormat;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.Column;
import com.google.gwt.user.cellview.client.TextColumn;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Composite;
@@ -23,15 +26,17 @@ import com.sap.sailing.gwt.ui.shared.RaceColumnDTO;
import com.sap.sailing.gwt.ui.shared.RaceInfoDTO;
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
public class RegattaOverviewTableComposite extends Composite implements TimeListener {
private final long updateRate = 1000;
public class RegattaOverviewTableComposite extends Composite {
private final long serverUpdateRate = 30000;
private final long uiUpdateRate = 1000;
private final CellTable<RaceInfoDTO> regattaOverviewTable;
private ListDataProvider<RaceInfoDTO> raceListDataProvider;
private final SimplePanel mainPanel;
private final VerticalPanel panel;
private final Timer updateTimer;
private final Timer serverUpdateTimer;
private final Timer uiUpdateTimer;
private final Label timeLabel;
private final DateTimeFormat timeFormatter = DateTimeFormat.getFormat("HH:mm:ss");
@@ -40,43 +45,63 @@ public class RegattaOverviewTableComposite extends Composite implements TimeList
private final StringMessages stringMessages;
private final String leaderboardName;
private static RegattaOverviewResources resources = GWT.create(RegattaOverviewResources.class);
private static RegattaOverviewTableResources tableRes = GWT.create(RegattaOverviewTableResources.class);
public RegattaOverviewTableComposite(final SailingServiceAsync sailingService,
ErrorReporter errorReporter, final StringMessages stringMessages,final String leaderboardName) {
public RegattaOverviewTableComposite(final SailingServiceAsync sailingService, ErrorReporter errorReporter,
final StringMessages stringMessages, final String leaderboardName) {
this.sailingService = sailingService;
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
this.leaderboardName = leaderboardName;
this.updateTimer = new Timer(PlayModes.Live, updateRate);
this.updateTimer.addTimeListener(this);
this.updateTimer.play();
this.serverUpdateTimer = new Timer(PlayModes.Live, serverUpdateRate);
this.serverUpdateTimer.addTimeListener(new TimeListener() {
@Override
public void timeChanged(Date date) {
RegattaOverviewTableComposite.this.onUpdateServer(date);
}
});
this.serverUpdateTimer.play();
this.uiUpdateTimer = new Timer(PlayModes.Live, uiUpdateRate);
this.uiUpdateTimer.addTimeListener(new TimeListener() {
@Override
public void timeChanged(Date date) {
RegattaOverviewTableComposite.this.onUpdateUI(date);
}
});
this.uiUpdateTimer.play();
mainPanel = new SimplePanel();
panel = new VerticalPanel();
mainPanel.setWidget(panel);
raceListDataProvider = new ListDataProvider<RaceInfoDTO>();
regattaOverviewTable = createRegattaTable();
timeLabel = new Label();
panel.add(timeLabel);
panel.add(regattaOverviewTable);
initWidget(mainPanel);
}
@Override
public void timeChanged(Date time) {
timeLabel.setText(timeFormatter.format(time));
loadAndUpdateEventLog();
onUpdateUI(new Date());
}
public void onUpdateServer(Date time) {
loadAndUpdateEventLog();
}
public void onUpdateUI(Date time) {
timeLabel.setText(timeFormatter.format(time));
}
private void loadAndUpdateEventLog() {
sailingService.getLeaderboard(this.leaderboardName, new AsyncCallback<StrippedLeaderboardDTO>() {
@@ -86,17 +111,17 @@ public class RegattaOverviewTableComposite extends Composite implements TimeList
if (leaderboard != null) {
for (RaceColumnDTO race : leaderboard.getRaceList()) {
for (FleetDTO fleet : race.getFleets()) {
raceListDataProvider.getList().add(race.getRaceLog(fleet));
raceListDataProvider.getList().add(race.getRaceInfo(fleet));
}
}
}
}
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
}
});
}
@@ -105,24 +130,51 @@ public class RegattaOverviewTableComposite extends Composite implements TimeList
CellTable<RaceInfoDTO> table = new CellTable<RaceInfoDTO>(/* pageSize */10000, tableRes);
raceListDataProvider.addDataDisplay(table);
table.setWidth("100%");
TextColumn<RaceInfoDTO> raceNameColumn = new TextColumn<RaceInfoDTO>() {
@Override
public String getValue(RaceInfoDTO raceInfo) {
return raceInfo.raceName;
}
};
TextColumn<RaceInfoDTO> raceStartTimeColumn = new TextColumn<RaceInfoDTO>() {
@Override
public String getValue(RaceInfoDTO raceInfo) {
return raceInfo.startTime.toString();
if (raceInfo.startTime != null) {
return timeFormatter.format(raceInfo.startTime);
}
return stringMessages.noStarttimeAnnouncedYet();
}
};
table.addColumn(raceNameColumn, "Race Name");
table.addColumn(raceStartTimeColumn, "Starttime");
TextColumn<RaceInfoDTO> raceStatusColumn = new TextColumn<RaceInfoDTO>() {
@Override
public String getValue(RaceInfoDTO raceInfo) {
return raceInfo.lastStatus.toString();
}
};
Column<RaceInfoDTO, ImageResource> lastFlagColumn = new Column<RaceInfoDTO, ImageResource>(new ImageResourceCell()) {
@Override
public ImageResource getValue(RaceInfoDTO object) {
return resources.flagAP();
}
};
Column<RaceInfoDTO, ImageResource> lastFlagDirectionColumn = new Column<RaceInfoDTO, ImageResource>(new ImageResourceCell()) {
@Override
public ImageResource getValue(RaceInfoDTO object) {
return resources.arrowUp();
}
};
table.addColumn(raceNameColumn, stringMessages.race());
table.addColumn(raceStartTimeColumn, stringMessages.startTime());
table.addColumn(raceStatusColumn, stringMessages.status());
table.addColumn(lastFlagColumn, stringMessages.lastFlag());
table.addColumn(lastFlagDirectionColumn, "");
return table;
}
}
@@ -123,6 +123,7 @@ 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.RaceLogEventFactory;
import com.sap.sailing.domain.racelog.impl.PassAwareRaceLogImpl;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingArchiveConfiguration;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingConfiguration;
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory;
@@ -213,7 +214,7 @@ 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.RaceStatusAnalyzer;
import com.sap.sailing.racecommittee.domain.state.impl.analyzers.StartTimeFinder;
import com.sap.sailing.server.RacingEventService;
import com.sap.sailing.server.RacingEventServiceOperation;
@@ -1097,6 +1098,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
raceInfoDTO.raceName = raceColumnDTO.name;
raceInfoDTO.fleet = fleet.getName();
RaceStatusAnalyzer raceStatusAnalyzer = new RaceStatusAnalyzer(passAwareRaceLog);
raceInfoDTO.lastStatus = raceStatusAnalyzer.getStatus();
return raceInfoDTO;
}
@@ -2163,13 +2169,12 @@ 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);
RaceInfoDTO raceInfoDTO = convertToRaceInfoDTO(raceColumnDTO, fleet, raceLog);
raceColumnDTO.getRaceInfoPerFleet().put(fleetDTO, raceInfoDTO);
}
private RaceDTO createRaceDTO(boolean withGeoLocationData, RegattaAndRaceIdentifier raceIdentifier, TrackedRace trackedRace) {
@@ -69,7 +69,7 @@ public class RaceColumnDTO extends NamedDTO implements IsSerializable {
return explicitFactor;
}
public RaceInfoDTO getRaceLog(FleetDTO fleet){
public RaceInfoDTO getRaceInfo(FleetDTO fleet){
//TODO handle non-existence
return raceInfoPerFleet.get(fleet);
}
@@ -2,12 +2,18 @@ package com.sap.sailing.gwt.ui.shared;
import java.util.Date;
import com.sap.sailing.domain.racelog.Flags;
import com.google.gwt.user.client.rpc.IsSerializable;
import com.sap.sailing.domain.racelog.RaceLogRaceStatus;
public class RaceInfoDTO implements IsSerializable {
public String raceName;
public String fleet;
public Date startTime;
public RaceLogRaceStatus lastStatus;
public Flags lastFlag;
public boolean displayed;
// for GWT serialization
public RaceInfoDTO() { }
@@ -16,15 +16,15 @@ import com.sap.sailing.domain.base.racegroup.RaceGroup;
import com.sap.sailing.domain.base.racegroup.SeriesWithRows;
import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl;
import com.sap.sailing.domain.base.racegroup.impl.SeriesWithRowsImpl;
import com.sap.sailing.domain.racelog.PassAwareRaceLog;
import com.sap.sailing.domain.racelog.RaceLogEventFactory;
import com.sap.sailing.domain.racelog.RaceLogRaceStatus;
import com.sap.sailing.domain.racelog.impl.PassAwareRaceLogImpl;
import com.sap.sailing.domain.racelog.impl.RaceLogEventFactoryImpl;
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.domain.racelog.PassAwareRaceLog;
import com.sap.sailing.racecommittee.domain.racelog.impl.PassAwareRaceLogImpl;
public class OfflineDataManager extends DataManager {
@@ -13,12 +13,12 @@ import com.sap.sailing.domain.base.racegroup.RaceCell;
import com.sap.sailing.domain.base.racegroup.RaceGroup;
import com.sap.sailing.domain.base.racegroup.RaceRow;
import com.sap.sailing.domain.base.racegroup.SeriesWithRows;
import com.sap.sailing.domain.racelog.PassAwareRaceLog;
import com.sap.sailing.domain.racelog.impl.PassAwareRaceLogImpl;
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.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;
@@ -5,7 +5,7 @@ import org.json.simple.JSONObject;
import com.sap.sailing.domain.racelog.RaceLog;
import com.sap.sailing.domain.racelog.RaceLogEvent;
import com.sap.sailing.racecommittee.domain.racelog.impl.PassAwareRaceLogImpl;
import com.sap.sailing.domain.racelog.impl.PassAwareRaceLogImpl;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
@@ -5,13 +5,13 @@ import java.io.Serializable;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.SeriesData;
import com.sap.sailing.domain.base.racegroup.RaceGroup;
import com.sap.sailing.domain.racelog.PassAwareRaceLog;
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.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;
@@ -7,6 +7,7 @@ import java.util.UUID;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.racelog.PassAwareRaceLog;
import com.sap.sailing.domain.racelog.RaceLog;
import com.sap.sailing.domain.racelog.RaceLogEvent;
import com.sap.sailing.domain.racelog.RaceLogRaceStatus;
@@ -19,7 +20,6 @@ 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.StartProcedure;
import com.sap.sailing.racecommittee.app.domain.state.impl.analyzers.FinishedTimeFinder;
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;