mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-11 06:40:53 +00:00
Merge branch 'master' into translation
This commit is contained in:
commit
beee35fe90
15 files changed
+151
-127
No files matched your search
+10
-3
@@ -1615,8 +1615,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
loadRegattaLogEvents(result, query, identifier);
|
||||
} catch (Throwable t) {
|
||||
// something went wrong during DB access; report, then use empty new regatta log
|
||||
logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load recorded regatta log data. Check MongoDB settings.");
|
||||
logger.log(Level.SEVERE, "loadRegattaLog", t);
|
||||
logger.log(Level.SEVERE, "Error connecting to MongoDB, unable to load recorded regatta log data for "+identifier+". Check MongoDB settings.", t);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1708,7 +1707,15 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
private RegattaLogRegisterCompetitorEvent loadRegattaLogRegisterCompetitorEvent(TimePoint createdAt, AbstractLogEventAuthor author,
|
||||
TimePoint logicalTimePoint, Serializable id, DBObject dbObject) {
|
||||
Competitor comp = getCompetitorByID(dbObject);
|
||||
return new RegattaLogRegisterCompetitorEventImpl(createdAt, logicalTimePoint, author, id, comp);
|
||||
final RegattaLogRegisterCompetitorEvent result;
|
||||
if (comp == null) {
|
||||
result = null;
|
||||
logger.log(Level.SEVERE, "Couldn't resolve competitor with ID "+dbObject.get(FieldNames.REGATTA_LOG_COMPETITOR_ID.name())+
|
||||
" from registration event with ID "+id+". Skipping this competitor registration.");
|
||||
} else {
|
||||
result = new RegattaLogRegisterCompetitorEventImpl(createdAt, logicalTimePoint, author, id, comp);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private RegattaLogCloseOpenEndedDeviceMappingEvent loadRegattaLogCloseOpenEndedDeviceMappingEvent(TimePoint createdAt,
|
||||
|
||||
+9
@@ -24,6 +24,7 @@ import com.sap.sailing.domain.abstractlog.race.analyzing.impl.LastPublishedCours
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.TrackingTimesFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.BaseRaceLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogEndOfTrackingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogStartOfTrackingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogStartTrackingEvent;
|
||||
@@ -181,6 +182,14 @@ public class RaceLogRaceTracker implements RaceTracker, GPSFixReceivedListener {
|
||||
|
||||
@Override
|
||||
public void stop(boolean preemptive) {
|
||||
RaceLog raceLog = params.getRaceLog();
|
||||
final Pair<TimePoint, TimePoint> trackingTimes = new TrackingTimesFinder(raceLog).analyze();
|
||||
if (trackingTimes == null || trackingTimes.getB() == null) {
|
||||
// seems the first time tracking for this race is started; enter "now" as start of tracking
|
||||
// into the race log
|
||||
raceLog.add(new RaceLogEndOfTrackingEventImpl(MillisecondsTimePoint.now(), raceLogEventAuthor, /* passId */ 0));
|
||||
}
|
||||
|
||||
// mark passing calculator is automatically stopped, when the race status is set to {@link
|
||||
// TrackedRaceStatusEnum#FINISHED}
|
||||
trackedRace.setStatus(new TrackedRaceStatusImpl(TrackedRaceStatusEnum.FINISHED, 100));
|
||||
|
||||
+5
@@ -49,4 +49,9 @@ public class FlexibleLeaderboardAsRegattaLikeIdentifier implements RegattaLikeId
|
||||
public String getIdentifierType() {
|
||||
return FlexibleLeaderboard.class.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getClass().getName()+": leaderboardName="+getName();
|
||||
}
|
||||
}
|
||||
+5
@@ -49,4 +49,9 @@ public class RegattaAsRegattaLikeIdentifier implements RegattaLikeIdentifier {
|
||||
public String getIdentifierType() {
|
||||
return Regatta.class.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getClass().getName()+": regattaName="+getName();
|
||||
}
|
||||
}
|
||||
+2
-8
@@ -57,14 +57,8 @@ public class RaceLogTrackingEventManagementRaceImagesBarCell extends ImagesBarCe
|
||||
if (startEndTrackingTime == null){
|
||||
result.add(new ImageSpec(ACTION_START_TRACKING, stringMessages.startTracking(), makeImagePrototype(resources.startRaceLogTracking())));
|
||||
} else {
|
||||
if (startEndTrackingTime.getA() != null){
|
||||
if (startEndTrackingTime.getB() != null){
|
||||
result.add(new ImageSpec(ACTION_START_TRACKING, stringMessages.startTracking(), makeImagePrototype(resources.startRaceLogTracking())));
|
||||
} else {
|
||||
result.add(new ImageSpec(ACTION_STOP_TRACKING, stringMessages.stopTracking(), makeImagePrototype(resources.stopRaceLogTracking())));
|
||||
}
|
||||
} else {
|
||||
result.add(new ImageSpec(ACTION_START_TRACKING, stringMessages.startTracking(), makeImagePrototype(resources.startRaceLogTracking())));
|
||||
if (startEndTrackingTime.getB() == null){
|
||||
result.add(new ImageSpec(ACTION_STOP_TRACKING, stringMessages.stopTracking(), makeImagePrototype(resources.stopRaceLogTracking())));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-44
@@ -17,7 +17,6 @@ import com.google.gwt.user.client.ui.Image;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.PushButton;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.ToggleButton;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.gwt.ui.client.DataEntryDialogWithBootstrap;
|
||||
@@ -50,7 +49,6 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
|
||||
private BetterDateTimeBox startTimeBox;
|
||||
private BetterDateTimeBox endTimeBox;
|
||||
private ToggleButton startStopButton;
|
||||
private TextBox authorNameBox;
|
||||
private com.sap.sse.gwt.client.controls.IntegerBox authorPriorityBox;
|
||||
|
||||
@@ -90,13 +88,6 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
currentEnd = result == null ? null : result.getB();
|
||||
updateDateTimeLabelAndTimeBoxFromDate(currentStart, currentStartLabel, startTimeBox);
|
||||
updateDateTimeLabelAndTimeBoxFromDate(currentEnd, currentEndLabel, endTimeBox);
|
||||
if (currentStart == null){
|
||||
setupStartStopButton(false);
|
||||
} else if (currentStart != null && currentEnd == null){
|
||||
setupStartStopButton(true);
|
||||
} else {
|
||||
setupStartStopButton(false);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -111,10 +102,6 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
}
|
||||
}
|
||||
|
||||
private void setupStartStopButton(boolean startTimeSet) {
|
||||
startStopButton.setDown(startTimeSet);
|
||||
}
|
||||
|
||||
private Widget createInputPanel() {
|
||||
Grid content = new Grid(4, 3);
|
||||
|
||||
@@ -179,37 +166,6 @@ public class SetTrackingTimesDialog extends DataEntryDialogWithBootstrap<RaceLog
|
||||
}
|
||||
});
|
||||
currentPanel.add(refreshButton);
|
||||
|
||||
Image startImage = new Image(resources.startRaceLogTracking());
|
||||
Image stopImage = new Image(resources.stopRaceLogTracking());
|
||||
|
||||
startStopButton = new ToggleButton(startImage, stopImage, new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
RaceLogSetTrackingTimesDTO trackingTimesDTO;
|
||||
if (startStopButton.isDown()){
|
||||
trackingTimesDTO = generateRaceLogSetTrackingTimesDTOWith(new Date(), null);
|
||||
} else {
|
||||
trackingTimesDTO = generateRaceLogSetTrackingTimesDTOWith(startTimeBox.getValue(), new Date());
|
||||
}
|
||||
|
||||
service.setTrackingTimes(trackingTimesDTO, new AsyncCallback<Void>(){
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error while setting tracking times: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
refreshTimes();
|
||||
getCancelButton().click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
currentPanel.add(startStopButton);
|
||||
|
||||
current.add(currentPanel);
|
||||
return current;
|
||||
}
|
||||
|
||||
+109
-62
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -16,18 +17,21 @@ import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
|
||||
import com.google.gwt.user.cellview.client.TextColumn;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.CaptionPanel;
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.Panel;
|
||||
import com.google.gwt.user.client.ui.ToggleButton;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
|
||||
import com.sap.sailing.domain.common.dto.CompetitorDTO;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
|
||||
import com.sap.sailing.domain.common.dto.RaceDTO;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher;
|
||||
@@ -45,8 +49,8 @@ import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
import com.sap.sse.common.Util.Triple;
|
||||
import com.sap.sse.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sse.gwt.client.ErrorReporter;
|
||||
import com.sap.sse.gwt.client.async.MarkedAsyncCallback;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
|
||||
import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
|
||||
@@ -54,7 +58,7 @@ import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback;
|
||||
* Allows the user to start and stop tracking of races using the RaceLog-tracking connector.
|
||||
*/
|
||||
public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardConfigPanel implements LeaderboardsDisplayer {
|
||||
private Button startTrackingButton;
|
||||
private ToggleButton startStopTrackingButton;
|
||||
private TrackFileImportDeviceIdentifierTableWrapper deviceIdentifierTable;
|
||||
private CheckBox correctWindDirectionForDeclination;
|
||||
private CheckBox trackWind;
|
||||
@@ -77,6 +81,18 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
importPanel.add(importContent);
|
||||
importContent.add(importWidget);
|
||||
importContent.add(deviceIdentifierTable);
|
||||
trackedRacesListComposite.addTrackedRaceChangeListener(new TrackedRaceChangedListener() {
|
||||
|
||||
@Override
|
||||
public void racesStoppedTracking(Iterable<? extends RegattaAndRaceIdentifier> regattaAndRaceIdentifiers) {
|
||||
loadAndRefreshLeaderboard(getSelectedLeaderboard().name, getSelectedRaceColumnWithFleet().getA().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void racesRemoved(Iterable<? extends RegattaAndRaceIdentifier> regattaAndRaceIdentifiers) {
|
||||
loadAndRefreshLeaderboard(getSelectedLeaderboard().name, getSelectedRaceColumnWithFleet().getA().getName());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private static interface ShowWithBoatClass {
|
||||
@@ -184,6 +200,20 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
return race.getA().getRaceLogTrackingInfo(race.getB()).raceLogTrackingState;
|
||||
}
|
||||
|
||||
private boolean trackerExists(RaceColumnDTOAndFleetDTOWithNameBasedEquality race) {
|
||||
return race.getA().getRaceLogTrackingInfo(race.getB()).raceLogTrackerExists;
|
||||
}
|
||||
|
||||
private boolean isFinished(RaceColumnDTOAndFleetDTOWithNameBasedEquality race) {
|
||||
RaceDTO raceDTO = race.getA().getRace(race.getB());
|
||||
|
||||
boolean raceFinished = false;
|
||||
if (raceDTO != null){
|
||||
raceFinished = raceDTO.status.status.equals(TrackedRaceStatusEnum.FINISHED);
|
||||
}
|
||||
return raceFinished;
|
||||
}
|
||||
|
||||
private boolean doesTrackerExist(RaceColumnDTOAndFleetDTOWithNameBasedEquality race) {
|
||||
return race.getA().getRaceLogTrackingInfo(race.getB()).raceLogTrackerExists;
|
||||
}
|
||||
@@ -309,15 +339,9 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
} else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_SET_TRACKING_TIMES.equals(value)) {
|
||||
showSetTrackingTimesDialog(getSelectedRaceColumnWithFleet().getA(), getSelectedRaceColumnWithFleet().getB());;
|
||||
} else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_START_TRACKING.equals(value)) {
|
||||
TimePoint newStart = MillisecondsTimePoint.now();
|
||||
RaceLogSetTrackingTimesDTO setTrackingTimesDTO = generateRaceLogSetTrackingTimesDTOWith(newStart, null);
|
||||
setTrackingTimes(setTrackingTimesDTO, raceColumnName);
|
||||
startTracking(Collections.singleton(raceColumnDTOAndFleetDTO), trackWind.getValue(), correctWindDirectionForDeclination.getValue());
|
||||
} else if (RaceLogTrackingEventManagementRaceImagesBarCell.ACTION_STOP_TRACKING.equals(value)) {
|
||||
Pair<TimePoint, TimePoint> startEndTrackingTime = getTrackingTimesFor(raceColumnDTOAndFleetDTO);
|
||||
TimePoint currentStart = startEndTrackingTime.getA();
|
||||
TimePoint newEnd = MillisecondsTimePoint.now();
|
||||
RaceLogSetTrackingTimesDTO setTrackingTimesDTO = generateRaceLogSetTrackingTimesDTOWith(currentStart, newEnd);
|
||||
setTrackingTimes(setTrackingTimesDTO, raceColumnName);
|
||||
stopTracking(Collections.singleton(raceColumnDTOAndFleetDTO));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -327,46 +351,6 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
racesTable.addColumn(raceActionColumn, stringMessages.actions());
|
||||
racesTable.setWidth("600px");
|
||||
}
|
||||
|
||||
private void setTrackingTimes(RaceLogSetTrackingTimesDTO trackingTimesDTO, final String raceColumnName){
|
||||
sailingService.setTrackingTimes(trackingTimesDTO, new AsyncCallback<Void>(){
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error while setting tracking times: " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
loadAndRefreshLeaderboard(getSelectedLeaderboard().name, raceColumnName);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private RaceLogSetTrackingTimesDTO generateRaceLogSetTrackingTimesDTOWith(TimePoint startTime, TimePoint endTime) {
|
||||
Pair<TimePoint, TimePoint> startEndTrackingTime = getTrackingTimesFor(getSelectedRaceColumnWithFleet());
|
||||
TimePoint currentStart;
|
||||
TimePoint currentEnd;
|
||||
if (startEndTrackingTime == null){
|
||||
currentStart = null;
|
||||
currentEnd = null;
|
||||
} else {
|
||||
currentStart = startEndTrackingTime.getA();
|
||||
currentEnd = startEndTrackingTime.getB();
|
||||
}
|
||||
|
||||
RaceLogSetTrackingTimesDTO dto = new RaceLogSetTrackingTimesDTO();
|
||||
dto.leaderboardName = getSelectedLeaderboardName();
|
||||
dto.raceColumnName = getSelectedRaceColumnWithFleet().getA().getName();
|
||||
dto.fleetName = getSelectedRaceColumnWithFleet().getB().getName();
|
||||
dto.authorName = "Shore";
|
||||
dto.authorPriority = 4;
|
||||
dto.logicalTimePoint = MillisecondsTimePoint.now();
|
||||
dto.newStartOfTracking = startTime;
|
||||
dto.newEndOfTracking = endTime;
|
||||
dto.currentStartOfTracking = currentStart;
|
||||
dto.currentEndOfTracking = currentEnd;
|
||||
return dto;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addLeaderboardControls(Panel controlsPanel) {}
|
||||
@@ -375,16 +359,21 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
protected void addSelectedLeaderboardRacesControls(Panel racesPanel) {
|
||||
trackWind = new CheckBox(stringMessages.trackWind());
|
||||
correctWindDirectionForDeclination = new CheckBox(stringMessages.declinationCheckbox());
|
||||
startTrackingButton = new Button(stringMessages.startTracking());
|
||||
startTrackingButton.ensureDebugId("StartTrackingButton");
|
||||
startTrackingButton.setEnabled(false);
|
||||
startStopTrackingButton = new ToggleButton(stringMessages.startTracking(), stringMessages.stopTracking());
|
||||
startStopTrackingButton.ensureDebugId("StartTrackingButton");
|
||||
startStopTrackingButton.setEnabled(false);
|
||||
racesPanel.add(trackWind);
|
||||
racesPanel.add(correctWindDirectionForDeclination);
|
||||
racesPanel.add(startTrackingButton);
|
||||
startTrackingButton.addClickHandler(new ClickHandler() {
|
||||
racesPanel.add(startStopTrackingButton);
|
||||
startStopTrackingButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
startTracking(raceColumnTableSelectionModel.getSelectedSet(), trackWind.getValue(), correctWindDirectionForDeclination.getValue());
|
||||
if (startStopTrackingButton.isDown()){
|
||||
startTracking(raceColumnTableSelectionModel.getSelectedSet(), trackWind.getValue(), correctWindDirectionForDeclination.getValue());
|
||||
} else {
|
||||
stopTracking(raceColumnTableSelectionModel.getSelectedSet());
|
||||
}
|
||||
refreshTrackingActionButtons();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -396,14 +385,72 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
});
|
||||
}
|
||||
|
||||
private void stopTracking(final Set<RaceColumnDTOAndFleetDTOWithNameBasedEquality> selectedSet) {
|
||||
final List<RegattaAndRaceIdentifier> racesToStopTracking = new ArrayList<RegattaAndRaceIdentifier>();
|
||||
for (RaceColumnDTOAndFleetDTOWithNameBasedEquality raceColumnDTOAndFleetDTOWithNameBasedEquality : selectedSet) {
|
||||
RaceDTO race = raceColumnDTOAndFleetDTOWithNameBasedEquality.getA().getRace(raceColumnDTOAndFleetDTOWithNameBasedEquality.getB());
|
||||
if (race != null && race.isTracked){
|
||||
racesToStopTracking.add(race.getRaceIdentifier());
|
||||
}
|
||||
}
|
||||
|
||||
sailingService.stopTrackingRaces(racesToStopTracking, new MarkedAsyncCallback<Void>(
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Exception trying to stop tracking races " + racesToStopTracking + ": " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
trackedRacesListComposite.regattaRefresher.fillRegattas();
|
||||
for (TrackedRaceChangedListener listener : trackedRacesListComposite.raceIsTrackedRaceChangeListener) {
|
||||
listener.racesStoppedTracking(racesToStopTracking);
|
||||
}
|
||||
|
||||
for (RaceColumnDTOAndFleetDTOWithNameBasedEquality raceColumndDTOAndFleet : selectedSet) {
|
||||
loadAndRefreshLeaderboard(getSelectedLeaderboard().name, raceColumndDTOAndFleet.getA().getName());
|
||||
}
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
private void enableStartTrackingButtonIfAppropriateRacesSelected() {
|
||||
boolean enable = raceColumnTableSelectionModel.getSelectedSet().size() > 0;
|
||||
boolean onlyUntrackedRacesPresent = raceColumnTableSelectionModel.getSelectedSet().size() > 0;
|
||||
boolean onlyTrackedRacesPresent = raceColumnTableSelectionModel.getSelectedSet().size() > 0;
|
||||
boolean onlyRacesWithNonExistentTracker = raceColumnTableSelectionModel.getSelectedSet().size() > 0;
|
||||
|
||||
for (RaceColumnDTOAndFleetDTOWithNameBasedEquality race : raceColumnTableSelectionModel.getSelectedSet()) {
|
||||
if (! getTrackingState(race).isForTracking() || doesTrackerExist(race)) {
|
||||
enable = false;
|
||||
if (getTrackingState(race).isForTracking() && isFinished(race)){
|
||||
onlyUntrackedRacesPresent = false;
|
||||
onlyTrackedRacesPresent = false;
|
||||
}
|
||||
|
||||
if (! getTrackingState(race).isForTracking() || doesTrackerExist(race) || isFinished(race)) {
|
||||
onlyUntrackedRacesPresent = false;
|
||||
} else {
|
||||
onlyTrackedRacesPresent = false;
|
||||
}
|
||||
|
||||
if (trackerExists(race)){
|
||||
onlyRacesWithNonExistentTracker = false;
|
||||
}
|
||||
}
|
||||
startTrackingButton.setEnabled(enable);
|
||||
|
||||
if ((!onlyTrackedRacesPresent && !onlyUntrackedRacesPresent)){
|
||||
startStopTrackingButton.setEnabled(false);
|
||||
}
|
||||
|
||||
if (onlyTrackedRacesPresent){
|
||||
startStopTrackingButton.setDown(true);
|
||||
startStopTrackingButton.setEnabled(true);
|
||||
}
|
||||
|
||||
if (onlyUntrackedRacesPresent || onlyRacesWithNonExistentTracker){
|
||||
startStopTrackingButton.setDown(false);
|
||||
startStopTrackingButton.setEnabled(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -552,7 +599,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
loadAndRefreshLeaderboard(leaderboard.name, raceColumn.getName());
|
||||
loadAndRefreshLeaderboard(leaderboard.name, getSelectedRaceColumnWithFleet().getA().getName());
|
||||
trackedRacesListComposite.regattaRefresher.fillRegattas();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -28,7 +28,7 @@ import com.sap.sse.gwt.client.shared.components.SettingsDialog;
|
||||
* the {@link AdminConsoleEntryPoint}.
|
||||
*/
|
||||
public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite {
|
||||
private final Set<TrackedRaceChangedListener> raceIsTrackedRaceChangeListener;
|
||||
final Set<TrackedRaceChangedListener> raceIsTrackedRaceChangeListener;
|
||||
private Button btnUntrack;
|
||||
private Button btnRemoveRace;
|
||||
private Button btnSetDelayToLive;
|
||||
@@ -56,7 +56,7 @@ public class TrackedRacesListComposite extends AbstractTrackedRacesListComposite
|
||||
this.raceIsTrackedRaceChangeListener.add(listener);
|
||||
}
|
||||
|
||||
private void stopTrackingRaces(final Iterable<RaceDTO> races) {
|
||||
void stopTrackingRaces(final Iterable<RaceDTO> races) {
|
||||
final List<RegattaAndRaceIdentifier> racesToStopTracking = new ArrayList<RegattaAndRaceIdentifier>();
|
||||
for (RaceDTO race : races) {
|
||||
if (race.isTracked) {
|
||||
|
||||
+1
-1
@@ -277,7 +277,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
|
||||
Map<CompetitorDTO, List<ManeuverDTO>> getManeuvers(RegattaAndRaceIdentifier raceIdentifier,
|
||||
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to) throws NoWindException;
|
||||
|
||||
List<StrippedLeaderboardDTO> getLeaderboardsByRaceAndRegatta(RaceDTO race, RegattaIdentifier regattaIdentifier);
|
||||
List<StrippedLeaderboardDTO> getLeaderboardsByRaceAndRegatta(String raceName, RegattaIdentifier regattaIdentifier);
|
||||
|
||||
List<LeaderboardGroupDTO> getLeaderboardGroups(boolean withGeoLocationData);
|
||||
|
||||
|
||||
+1
-1
@@ -228,7 +228,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
|
||||
|
||||
void getLeaderboards(AsyncCallback<List<StrippedLeaderboardDTO>> callback);
|
||||
|
||||
void getLeaderboardsByRaceAndRegatta(RaceDTO race, RegattaIdentifier regattaIdentifier,
|
||||
void getLeaderboardsByRaceAndRegatta(String raceName, RegattaIdentifier regattaIdentifier,
|
||||
AsyncCallback<List<StrippedLeaderboardDTO>> callback);
|
||||
|
||||
void updateLeaderboard(String leaderboardName, String newLeaderboardName, String newLeaderboardDisplayName,
|
||||
|
||||
+5
-5
@@ -1112,10 +1112,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void stopTrackingRaces(Iterable<RegattaAndRaceIdentifier> regattaAndRaceIdentifiers) throws Exception {
|
||||
for (RegattaAndRaceIdentifier regattaAndRaceIdentifier : regattaAndRaceIdentifiers) {
|
||||
for (RegattaAndRaceIdentifier regattaAndRaceIdentifier : regattaAndRaceIdentifiers) {
|
||||
getService().apply(new StopTrackingRace(regattaAndRaceIdentifier));
|
||||
}
|
||||
}
|
||||
@@ -2350,7 +2350,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
List<StrippedLeaderboardDTO> results = new ArrayList<StrippedLeaderboardDTO>();
|
||||
if (regatta != null && regatta.races != null) {
|
||||
for (RaceDTO race : regatta.races) {
|
||||
List<StrippedLeaderboardDTO> leaderboard = getLeaderboardsByRaceAndRegatta(race, regatta.getRegattaIdentifier());
|
||||
List<StrippedLeaderboardDTO> leaderboard = getLeaderboardsByRaceAndRegatta(race.getName(), regatta.getRegattaIdentifier());
|
||||
if (leaderboard != null && !leaderboard.isEmpty()) {
|
||||
results.addAll(leaderboard);
|
||||
}
|
||||
@@ -2364,7 +2364,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<StrippedLeaderboardDTO> getLeaderboardsByRaceAndRegatta(RaceDTO race, RegattaIdentifier regattaIdentifier) {
|
||||
public List<StrippedLeaderboardDTO> getLeaderboardsByRaceAndRegatta(String raceName, RegattaIdentifier regattaIdentifier) {
|
||||
List<StrippedLeaderboardDTO> results = new ArrayList<StrippedLeaderboardDTO>();
|
||||
Map<String, Leaderboard> leaderboards = getService().getLeaderboards();
|
||||
for (Leaderboard leaderboard : leaderboards.values()) {
|
||||
@@ -2375,7 +2375,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
TrackedRace trackedRace = raceInLeaderboard.getTrackedRace(fleet);
|
||||
if (trackedRace != null) {
|
||||
RaceDefinition trackedRaceDef = trackedRace.getRace();
|
||||
if (trackedRaceDef.getName().equals(race.getName())) {
|
||||
if (trackedRaceDef.getName().equals(raceName)) {
|
||||
results.add(createStrippedLeaderboardDTO(leaderboard, false, false));
|
||||
break;
|
||||
}
|
||||
|
||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
Reference in new issue
Block a user