mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-04 11:23:50 +00:00
replaced Triple<EventDTO, RegattoDTO, RaceDTO> with simple RaceDTO in all race selection providers and listeners
This commit is contained in:
1 parent
9edd08373a
commit
133074db3a
14 files changed
+178
-192
No files matched your search
+11
-12
@@ -42,7 +42,6 @@ import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
@@ -52,7 +51,6 @@ import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceInLeaderboardDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.server.api.EventNameAndRaceName;
|
||||
|
||||
public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer, RaceSelectionChangeListener,
|
||||
@@ -535,7 +533,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
columnMoveUpButton.setEnabled(true);
|
||||
columnMoveDownButton.setEnabled(true);
|
||||
reloadRaceInLeaderboardRow(selectedRaceInLeaderboard.getRaceColumnName(), selectedRaceInLeaderboard);
|
||||
selectTrackedRaceInRaceTree();
|
||||
selectTrackedRaceInRaceList();
|
||||
} else {
|
||||
columnMoveUpButton.setEnabled(false);
|
||||
columnMoveDownButton.setEnabled(false);
|
||||
@@ -543,7 +541,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
}
|
||||
|
||||
private void selectTrackedRaceInRaceTree() {
|
||||
private void selectTrackedRaceInRaceList() {
|
||||
final String selectedLeaderboardName = getSelectedLeaderboardName();
|
||||
final String selectedRaceColumnName = getSelectedRaceInLeaderboard().getRaceColumnName();
|
||||
sailingService.getEventAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(selectedLeaderboardName,
|
||||
@@ -558,7 +556,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
@Override
|
||||
public void onSuccess(Pair<String, String> eventAndRaceName) {
|
||||
if (eventAndRaceName != null) {
|
||||
selectRaceInTree(eventAndRaceName.getA(), eventAndRaceName.getB());
|
||||
selectRaceInList(eventAndRaceName.getA(), eventAndRaceName.getB());
|
||||
} else {
|
||||
trackedEventsComposite.clearSelection();
|
||||
}
|
||||
@@ -566,8 +564,9 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
});
|
||||
}
|
||||
|
||||
private void selectRaceInTree(String eventName, String raceName) {
|
||||
trackedEventsComposite.selectRaceByName(eventName, raceName);
|
||||
private void selectRaceInList(String eventName, String raceName) {
|
||||
EventNameAndRaceName raceIdentifier = new EventNameAndRaceName(eventName, raceName);
|
||||
trackedEventsComposite.selectRaceByIdentifier(raceIdentifier);
|
||||
}
|
||||
|
||||
private RaceInLeaderboardDTO getSelectedRaceInLeaderboard() {
|
||||
@@ -835,7 +834,7 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRaceSelectionChange(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
public void onRaceSelectionChange(List<RaceDTO> selectedRaces) {
|
||||
// if no leaderboard column is selected, ignore the race selection change
|
||||
RaceInLeaderboardDTO selectedRaceInLeaderboard = getSelectedRaceInLeaderboard();
|
||||
if (selectedRaceInLeaderboard != null) {
|
||||
@@ -848,14 +847,14 @@ public class LeaderboardConfigPanel extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
|
||||
private void linkTrackedRaceToSelectedRaceColumn(final RaceInLeaderboardDTO selectedRaceInLeaderboard,
|
||||
final Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace) {
|
||||
final RaceDTO selectedRace) {
|
||||
sailingService.connectTrackedRaceToLeaderboardColumn(getSelectedLeaderboardName(), selectedRaceInLeaderboard
|
||||
.getRaceColumnName(), new EventNameAndRaceName(selectedRace.getA().name, selectedRace.getC().name),
|
||||
.getRaceColumnName(), new EventNameAndRaceName(selectedRace.getEvent().name, selectedRace.name),
|
||||
new AsyncCallback<Boolean>() {
|
||||
@Override
|
||||
public void onFailure(Throwable t) {
|
||||
errorReporter.reportError("Error trying to link tracked race " + selectedRace.getC().name
|
||||
+ " of event " + selectedRace.getA().name + " to race column named "
|
||||
errorReporter.reportError("Error trying to link tracked race " + selectedRace.name
|
||||
+ " of event " + selectedRace.getEvent().name + " to race column named "
|
||||
+ selectedRaceInLeaderboard.getRaceColumnName() + " of leaderboard "
|
||||
+ getSelectedLeaderboardName() + ": " + t.getMessage());
|
||||
trackedEventsComposite.clearSelection();
|
||||
|
||||
+10
-10
@@ -57,7 +57,6 @@ import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.MarkDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.server.api.EventNameAndRaceName;
|
||||
@@ -120,7 +119,7 @@ public class RaceMap implements TimeListener, CompetitorSelectionChangeListener,
|
||||
|
||||
private CompetitorSelectionProvider competitorSelection;
|
||||
|
||||
private List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedEventAndRace;
|
||||
private List<RaceDTO> selectedRaces;
|
||||
|
||||
/**
|
||||
* If the user explicitly zoomed or panned the map, don't adjust zoom/pan unless a new race is selected
|
||||
@@ -241,18 +240,19 @@ public class RaceMap implements TimeListener, CompetitorSelectionChangeListener,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRaceSelectionChange(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
public void onRaceSelectionChange(List<RaceDTO> selectedRaces) {
|
||||
mapFirstZoomDone = false;
|
||||
mapZoomedOrPannedSinceLastRaceSelectionChange = false;
|
||||
this.selectedEventAndRace = selectedRaces;
|
||||
this.selectedRaces = selectedRaces;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void timeChanged(final Date date) {
|
||||
if (date != null) {
|
||||
if (selectedEventAndRace != null && !selectedEventAndRace.isEmpty()) {
|
||||
EventDTO event = selectedEventAndRace.get(selectedEventAndRace.size() - 1).getA();
|
||||
RaceDTO race = selectedEventAndRace.get(selectedEventAndRace.size() - 1).getC();
|
||||
if (selectedRaces != null && !selectedRaces.isEmpty()) {
|
||||
RaceDTO race = selectedRaces.get(selectedRaces.size() - 1);
|
||||
EventDTO event = race.getEvent();
|
||||
|
||||
if (event != null && race != null) {
|
||||
final Triple<Map<CompetitorDTO, Date>, Map<CompetitorDTO, Date>, Map<CompetitorDTO, Boolean>> fromAndToAndOverlap =
|
||||
computeFromAndTo(date, getCompetitorsToShow());
|
||||
@@ -610,9 +610,9 @@ public class RaceMap implements TimeListener, CompetitorSelectionChangeListener,
|
||||
result.add(new Label(lastFix.speedWithBearing.speedInKnots + "kts " + lastFix.speedWithBearing.bearingInDegrees
|
||||
+ "deg"));
|
||||
result.add(new Label("Tack: " + lastFix.tack.name()));
|
||||
if (!selectedEventAndRace.isEmpty()) {
|
||||
EventDTO event = selectedEventAndRace.get(selectedEventAndRace.size() - 1).getA();
|
||||
RaceDTO race = selectedEventAndRace.get(selectedEventAndRace.size() - 1).getC();
|
||||
if (!selectedRaces.isEmpty()) {
|
||||
RaceDTO race = selectedRaces.get(selectedRaces.size() - 1);
|
||||
EventDTO event = race.getEvent();
|
||||
if (event != null && race != null) {
|
||||
Map<CompetitorDTO, Date> from = new HashMap<CompetitorDTO, Date>();
|
||||
from.put(competitorDTO, fixes.get(competitorDTO).get(firstShownFix.get(competitorDTO)).timepoint);
|
||||
|
||||
+5
-7
@@ -19,7 +19,6 @@ import com.google.gwt.user.client.ui.ProvidesResize;
|
||||
import com.google.gwt.user.client.ui.RequiresResize;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
||||
@@ -34,7 +33,6 @@ import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.QuickRankDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.server.api.EventNameAndRaceName;
|
||||
|
||||
@@ -117,9 +115,9 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer, TimeListe
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRaceSelectionChange(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
public void onRaceSelectionChange(List<RaceDTO> selectedRaces) {
|
||||
if (!selectedRaces.isEmpty() && selectedRaces.get(selectedRaces.size() - 1) != null) {
|
||||
RaceDTO raceDTO = selectedRaces.get(selectedRaces.size() - 1).getC();
|
||||
RaceDTO raceDTO = selectedRaces.get(selectedRaces.size() - 1);
|
||||
competitorSelectionProvider.setCompetitors(raceDTO.competitors);
|
||||
if (raceDTO.startOfRace != null) {
|
||||
timePanel.timeChanged(raceDTO.startOfRace);
|
||||
@@ -142,10 +140,10 @@ public class RaceMapPanel extends FormPanel implements EventDisplayer, TimeListe
|
||||
@Override
|
||||
public void timeChanged(final Date date) {
|
||||
if (date != null) {
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> selection = raceListBox.getSelectedEventAndRace();
|
||||
List<RaceDTO> selection = raceListBox.getSelectedRaces();
|
||||
if (!selection.isEmpty()) {
|
||||
EventDTO event = selection.get(selection.size() - 1).getA();
|
||||
RaceDTO race = selection.get(selection.size() - 1).getC();
|
||||
RaceDTO race = selection.get(selection.size() - 1);
|
||||
EventDTO event = race.getEvent();
|
||||
if (event != null && race != null) {
|
||||
sailingService.getQuickRanks(new EventNameAndRaceName(event.name, race.name), date,
|
||||
new AsyncCallback<List<QuickRankDTO>>() {
|
||||
|
||||
+1
-4
@@ -2,17 +2,14 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
public interface RaceSelectionProvider {
|
||||
/**
|
||||
* @return a non-<code>null</code> list which may be empty
|
||||
*/
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> getSelectedEventAndRace();
|
||||
List<RaceDTO> getSelectedRaces();
|
||||
|
||||
void addRaceSelectionChangeListener(RaceSelectionChangeListener listener);
|
||||
|
||||
|
||||
+17
-18
@@ -17,7 +17,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
|
||||
@@ -28,7 +27,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
public class RacesListBoxPanel extends FormPanel implements RaceSelectionProvider, EventDisplayer {
|
||||
private final Set<RaceSelectionChangeListener> raceSelectionChangeListeners;
|
||||
private final List<Triple<EventDTO, RegattaDTO, RaceDTO>> raceList;
|
||||
private final List<RaceDTO> raceList;
|
||||
private final ListBox raceListBox;
|
||||
private final EventRefresher eventRefresher;
|
||||
private final StringMessages stringConstants;
|
||||
@@ -47,15 +46,15 @@ public class RacesListBoxPanel extends FormPanel implements RaceSelectionProvide
|
||||
raceListBox.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace = getSelectedRace();
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRacesCollection = Collections.emptyList();
|
||||
RaceDTO selectedRace = getSelectedRace();
|
||||
List<RaceDTO> selectedRacesCollection = Collections.emptyList();
|
||||
if (selectedRace != null) {
|
||||
selectedRacesCollection = Collections.singletonList(selectedRace);
|
||||
}
|
||||
fireRaceSelectionChanged(selectedRacesCollection);
|
||||
}
|
||||
});
|
||||
raceList = new ArrayList<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||
raceList = new ArrayList<RaceDTO>();
|
||||
VerticalPanel vp = new VerticalPanel();
|
||||
HorizontalPanel labelAndRefreshButton = new HorizontalPanel();
|
||||
labelAndRefreshButton.setSpacing(20);
|
||||
@@ -73,9 +72,9 @@ public class RacesListBoxPanel extends FormPanel implements RaceSelectionProvide
|
||||
setWidget(vp);
|
||||
}
|
||||
|
||||
private Triple<EventDTO, RegattaDTO, RaceDTO> getSelectedRace() {
|
||||
private RaceDTO getSelectedRace() {
|
||||
int i = raceListBox.getSelectedIndex();
|
||||
Triple<EventDTO, RegattaDTO, RaceDTO> result = null;
|
||||
RaceDTO result = null;
|
||||
if (i >= 0) {
|
||||
result = raceList.get(i);
|
||||
}
|
||||
@@ -89,30 +88,30 @@ public class RacesListBoxPanel extends FormPanel implements RaceSelectionProvide
|
||||
for (EventDTO event : result) {
|
||||
for (RegattaDTO regatta : event.regattas) {
|
||||
for (RaceDTO race : regatta.races) {
|
||||
raceList.add(new Triple<EventDTO, RegattaDTO, RaceDTO>(event, regatta, race));
|
||||
raceList.add(race);
|
||||
}
|
||||
}
|
||||
}
|
||||
Collections.sort(raceList, new Comparator<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
Collections.sort(raceList, new Comparator<RaceDTO>() {
|
||||
@Override
|
||||
public int compare(Triple<EventDTO, RegattaDTO, RaceDTO> o1, Triple<EventDTO, RegattaDTO, RaceDTO> o2) {
|
||||
public int compare(RaceDTO o1, RaceDTO o2) {
|
||||
String name1 = RacesListBoxPanel.this.toString(o1);
|
||||
String name2 = RacesListBoxPanel.this.toString(o2);
|
||||
return name1.compareTo(name2);
|
||||
}
|
||||
|
||||
});
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> p : raceList) {
|
||||
for (RaceDTO p : raceList) {
|
||||
raceListBox.addItem(toString(p));
|
||||
}
|
||||
fireRaceSelectionChanged(getSelectedEventAndRace());
|
||||
fireRaceSelectionChanged(getSelectedRaces());
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Triple<EventDTO, RegattaDTO, RaceDTO>> getSelectedEventAndRace() {
|
||||
public List<RaceDTO> getSelectedRaces() {
|
||||
int i=0;
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> result = new ArrayList<Triple<EventDTO,RegattaDTO,RaceDTO>>();
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> triple : raceList) {
|
||||
List<RaceDTO> result = new ArrayList<RaceDTO>();
|
||||
for (RaceDTO triple : raceList) {
|
||||
if (raceListBox.isItemSelected(i)) {
|
||||
result.add(triple);
|
||||
}
|
||||
@@ -131,14 +130,14 @@ public class RacesListBoxPanel extends FormPanel implements RaceSelectionProvide
|
||||
raceSelectionChangeListeners.remove(listener);
|
||||
}
|
||||
|
||||
private void fireRaceSelectionChanged(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
private void fireRaceSelectionChanged(List<RaceDTO> selectedRaces) {
|
||||
for (RaceSelectionChangeListener listener : raceSelectionChangeListeners) {
|
||||
listener.onRaceSelectionChange(selectedRaces);
|
||||
}
|
||||
}
|
||||
|
||||
private String toString(Triple<EventDTO, RegattaDTO, RaceDTO> pair) {
|
||||
return pair.getA().name+" - "+pair.getC().name+(pair.getC().currentlyTracked ? " ("+stringConstants.tracked()+")" : "");
|
||||
private String toString(RaceDTO race) {
|
||||
return race.getEvent().name+" - "+race.name+(race.currentlyTracked ? " ("+stringConstants.tracked()+")" : "");
|
||||
}
|
||||
|
||||
}
|
||||
+79
-84
@@ -34,7 +34,6 @@ import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
import com.google.gwt.view.client.SelectionModel;
|
||||
import com.google.gwt.view.client.SingleSelectionModel;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
||||
@@ -59,11 +58,11 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
|
||||
private boolean dontFireNextSelectionChangeEvent;
|
||||
|
||||
private final SelectionModel<Triple<EventDTO, RegattaDTO, RaceDTO>> selectionModel;
|
||||
private final SelectionModel<RaceDTO> selectionModel;
|
||||
|
||||
private CellTable<Triple<EventDTO, RegattaDTO, RaceDTO>> raceTable;
|
||||
private CellTable<RaceDTO> raceTable;
|
||||
|
||||
private ListDataProvider<Triple<EventDTO, RegattaDTO, RaceDTO>> raceList;
|
||||
private ListDataProvider<RaceDTO> raceList;
|
||||
|
||||
private VerticalPanel panel;
|
||||
|
||||
@@ -84,9 +83,9 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
|
||||
private TextBox filterRacesTextbox;
|
||||
|
||||
private List<Triple<EventDTO, RegattaDTO, RaceDTO>> availableRaceList;
|
||||
private List<RaceDTO> availableRaceList;
|
||||
|
||||
private Triple<EventDTO, RegattaDTO, RaceDTO> lastSelectedTriple;
|
||||
private RaceDTO lastSelectedRace;
|
||||
|
||||
public TrackedEventsComposite(final SailingServiceAsync sailingService, final ErrorReporter errorReporter,
|
||||
final EventRefresher eventRefresher, StringMessages stringConstants, boolean hasMultiSelection) {
|
||||
@@ -99,11 +98,11 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
this.multiSelection = hasMultiSelection;
|
||||
this.raceSelectionChangeListeners = new HashSet<RaceSelectionChangeListener>();
|
||||
this.raceIsTrackedRaceChangeListener = new HashSet<TrackedRaceChangedListener>();
|
||||
this.availableRaceList = new ArrayList<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||
this.lastSelectedTriple = null;
|
||||
raceList = new ListDataProvider<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||
selectionModel = multiSelection ? new MultiSelectionModel<Triple<EventDTO, RegattaDTO, RaceDTO>>()
|
||||
: new SingleSelectionModel<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||
this.availableRaceList = new ArrayList<RaceDTO>();
|
||||
this.lastSelectedRace = null;
|
||||
raceList = new ListDataProvider<RaceDTO>();
|
||||
selectionModel = multiSelection ? new MultiSelectionModel<RaceDTO>()
|
||||
: new SingleSelectionModel<RaceDTO>();
|
||||
panel = new VerticalPanel();
|
||||
setWidget(panel);
|
||||
HorizontalPanel filterPanel = new HorizontalPanel();
|
||||
@@ -126,22 +125,22 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
panel.add(noTrackedRacesLabel);
|
||||
|
||||
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
|
||||
raceTable = new CellTable<Triple<EventDTO, RegattaDTO, RaceDTO>>(/* pageSize */200, tableRes);
|
||||
ListHandler<Triple<EventDTO, RegattaDTO, RaceDTO>> columnSortHandler = new ListHandler<Triple<EventDTO, RegattaDTO, RaceDTO>>(
|
||||
raceTable = new CellTable<RaceDTO>(/* pageSize */200, tableRes);
|
||||
ListHandler<RaceDTO> columnSortHandler = new ListHandler<RaceDTO>(
|
||||
raceList.getList());
|
||||
TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>> eventNameColumn = new TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
TextColumn<RaceDTO> eventNameColumn = new TextColumn<RaceDTO>() {
|
||||
@Override
|
||||
public String getValue(Triple<EventDTO, RegattaDTO, RaceDTO> object) {
|
||||
return object.getA().name;
|
||||
public String getValue(RaceDTO raceDTO) {
|
||||
return raceDTO.name;
|
||||
}
|
||||
};
|
||||
eventNameColumn.setSortable(true);
|
||||
|
||||
columnSortHandler.setComparator(eventNameColumn, new Comparator<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
columnSortHandler.setComparator(eventNameColumn, new Comparator<RaceDTO>() {
|
||||
@Override
|
||||
public int compare(Triple<EventDTO, RegattaDTO, RaceDTO> t1, Triple<EventDTO, RegattaDTO, RaceDTO> t2) {
|
||||
EventDTO eventOne = t1.getA();
|
||||
EventDTO eventTwo = t2.getA();
|
||||
public int compare(RaceDTO t1, RaceDTO t2) {
|
||||
EventDTO eventOne = t1.getEvent();
|
||||
EventDTO eventTwo = t2.getEvent();
|
||||
boolean ascending = isSortedAscending();
|
||||
if (eventOne.name.equals(eventTwo.name)) {
|
||||
return 0;
|
||||
@@ -158,19 +157,19 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
});
|
||||
|
||||
TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>> regattaNameColumn = new TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
TextColumn<RaceDTO> regattaNameColumn = new TextColumn<RaceDTO>() {
|
||||
@Override
|
||||
public String getValue(Triple<EventDTO, RegattaDTO, RaceDTO> object) {
|
||||
return object.getB().boatClass.name;
|
||||
public String getValue(RaceDTO raceDTO) {
|
||||
return raceDTO.getRegatta().boatClass.name;
|
||||
}
|
||||
};
|
||||
regattaNameColumn.setSortable(true);
|
||||
|
||||
columnSortHandler.setComparator(regattaNameColumn, new Comparator<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
columnSortHandler.setComparator(regattaNameColumn, new Comparator<RaceDTO>() {
|
||||
@Override
|
||||
public int compare(Triple<EventDTO, RegattaDTO, RaceDTO> t1, Triple<EventDTO, RegattaDTO, RaceDTO> t2) {
|
||||
RegattaDTO regattaOne = t1.getB();
|
||||
RegattaDTO regattaTwo = t2.getB();
|
||||
public int compare(RaceDTO t1, RaceDTO t2) {
|
||||
RegattaDTO regattaOne = t1.getRegatta();
|
||||
RegattaDTO regattaTwo = t2.getRegatta();
|
||||
boolean ascending = isSortedAscending();
|
||||
if (regattaOne.boatClass.name.equals(regattaTwo.boatClass.name)) {
|
||||
return 0;
|
||||
@@ -188,25 +187,24 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
});
|
||||
|
||||
TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>> raceNameColumn = new TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
TextColumn<RaceDTO> raceNameColumn = new TextColumn<RaceDTO>() {
|
||||
|
||||
@Override
|
||||
public String getValue(Triple<EventDTO, RegattaDTO, RaceDTO> object) {
|
||||
return object.getC().name;
|
||||
public String getValue(RaceDTO raceDTO) {
|
||||
return raceDTO.name;
|
||||
}
|
||||
};
|
||||
raceNameColumn.setSortable(true);
|
||||
|
||||
columnSortHandler.setComparator(raceNameColumn, new Comparator<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
columnSortHandler.setComparator(raceNameColumn, new Comparator<RaceDTO>() {
|
||||
@Override
|
||||
public int compare(Triple<EventDTO, RegattaDTO, RaceDTO> t1, Triple<EventDTO, RegattaDTO, RaceDTO> t2) {
|
||||
public int compare(RaceDTO t1, RaceDTO t2) {
|
||||
boolean ascending = isSortedAscending();
|
||||
if (t1.getC().name.equals(t2.getC().name)) {
|
||||
if (t1.name.equals(t2.name)) {
|
||||
return 0;
|
||||
}
|
||||
int val = -1;
|
||||
val = (t1 != null && t2 != null && ascending) ? (t1.getC().name.compareTo(t2.getC().name)) : -(t2
|
||||
.getC().name.compareTo(t1.getC().name));
|
||||
val = (t1 != null && t2 != null && ascending) ? (t1.name.compareTo(t2.name)) : -(t2.name.compareTo(t1.name));
|
||||
return val;
|
||||
}
|
||||
|
||||
@@ -216,12 +214,12 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
});
|
||||
|
||||
TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>> raceStartColumn = new TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
TextColumn<RaceDTO> raceStartColumn = new TextColumn<RaceDTO>() {
|
||||
@Override
|
||||
public String getValue(Triple<EventDTO, RegattaDTO, RaceDTO> object) {
|
||||
if (object.getC().startOfRace != null) {
|
||||
return dateFormatter.render(object.getC().startOfRace) + " "
|
||||
+ timeFormatter.render(object.getC().startOfRace);
|
||||
public String getValue(RaceDTO raceDTO) {
|
||||
if (raceDTO.startOfRace != null) {
|
||||
return dateFormatter.render(raceDTO.startOfRace) + " "
|
||||
+ timeFormatter.render(raceDTO.startOfRace);
|
||||
}
|
||||
|
||||
return "";
|
||||
@@ -229,13 +227,13 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
};
|
||||
raceStartColumn.setSortable(true);
|
||||
|
||||
columnSortHandler.setComparator(raceStartColumn, new Comparator<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
columnSortHandler.setComparator(raceStartColumn, new Comparator<RaceDTO>() {
|
||||
@Override
|
||||
public int compare(Triple<EventDTO, RegattaDTO, RaceDTO> t1, Triple<EventDTO, RegattaDTO, RaceDTO> t2) {
|
||||
if (t1.getC().startOfRace != null && t2.getC().startOfRace != null) {
|
||||
public int compare(RaceDTO t1, RaceDTO t2) {
|
||||
if (t1.startOfRace != null && t2.startOfRace != null) {
|
||||
boolean ascending = isSortedAscending();
|
||||
int val = -1;
|
||||
val = (t1.getC().startOfRace.after(t2.getC().startOfRace) && ascending) ? 1 : -1;
|
||||
val = (t1.startOfRace.after(t2.startOfRace) && ascending) ? 1 : -1;
|
||||
return val;
|
||||
}
|
||||
return 0;
|
||||
@@ -247,10 +245,10 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
});
|
||||
|
||||
TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>> raceTrackedColumn = new TextColumn<Triple<EventDTO, RegattaDTO, RaceDTO>>() {
|
||||
TextColumn<RaceDTO> raceTrackedColumn = new TextColumn<RaceDTO>() {
|
||||
@Override
|
||||
public String getValue(Triple<EventDTO, RegattaDTO, RaceDTO> object) {
|
||||
if (object.getC().currentlyTracked == true)
|
||||
public String getValue(RaceDTO raceDTO) {
|
||||
if (raceDTO.currentlyTracked == true)
|
||||
return "tracked";
|
||||
|
||||
return "";
|
||||
@@ -271,17 +269,17 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
raceTable.getSelectionModel().addSelectionChangeHandler(new Handler() {
|
||||
@Override
|
||||
public void onSelectionChange(SelectionChangeEvent event) {
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedEventAndRace = getSelectedEventAndRace();
|
||||
if (selectedEventAndRace.isEmpty()) {
|
||||
lastSelectedTriple = null;
|
||||
List<RaceDTO> selectedRaces = getSelectedRaces();
|
||||
if (selectedRaces.isEmpty()) {
|
||||
lastSelectedRace = null;
|
||||
btnRemoveRace.setEnabled(false);
|
||||
btnUntrack.setEnabled(false);
|
||||
} else {
|
||||
lastSelectedTriple = selectedEventAndRace.get(0);
|
||||
lastSelectedRace = selectedRaces.get(0);
|
||||
btnRemoveRace.setEnabled(true);
|
||||
btnUntrack.setEnabled(true);
|
||||
}
|
||||
fireRaceSelectionChanged(selectedEventAndRace);
|
||||
fireRaceSelectionChanged(selectedRaces);
|
||||
}
|
||||
});
|
||||
HorizontalPanel trackedRacesButtonPanel = new HorizontalPanel();
|
||||
@@ -291,8 +289,8 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
btnRemoveRace.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> selection : getSelectedEventAndRace()) {
|
||||
removeAndUntrackRace(selection.getA(), selection.getC());
|
||||
for (RaceDTO selectedRace : getSelectedRaces()) {
|
||||
removeAndUntrackRace(selectedRace);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -302,9 +300,9 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
btnUntrack.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent click) {
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> selection : getSelectedEventAndRace()) {
|
||||
if (selection.getC().currentlyTracked) {
|
||||
stopTrackingRace(selection.getA(), selection.getC());
|
||||
for (RaceDTO selectedRace : getSelectedRaces()) {
|
||||
if (selectedRace.currentlyTracked) {
|
||||
stopTrackingRace(selectedRace);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -324,10 +322,10 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Triple<EventDTO, RegattaDTO, RaceDTO>> getSelectedEventAndRace() {
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> result = new ArrayList<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||
public List<RaceDTO> getSelectedRaces() {
|
||||
List<RaceDTO> result = new ArrayList<RaceDTO>();
|
||||
if (raceList != null) {
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> raceTriple : raceList.getList()) {
|
||||
for (RaceDTO raceTriple : raceList.getList()) {
|
||||
if (selectionModel.isSelected(raceTriple)) {
|
||||
result.add(raceTriple);
|
||||
}
|
||||
@@ -336,15 +334,14 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
return result;
|
||||
}
|
||||
|
||||
public void selectRaceByName(String eventName, String raceName) {
|
||||
public void selectRaceByIdentifier(EventNameAndRaceName raceIdentifier) {
|
||||
if (raceList != null) {
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> raceTriple : raceList.getList()) {
|
||||
EventDTO event = raceTriple.getA();
|
||||
RaceDTO race = raceTriple.getC();
|
||||
for (RaceDTO race : raceList.getList()) {
|
||||
EventDTO event = race.getEvent();
|
||||
|
||||
if (event.name.equals(eventName) && race.name.equals(raceName)) {
|
||||
if (event.name.equals(raceIdentifier.getEventName()) && race.name.equals(raceIdentifier.getRaceName())) {
|
||||
dontFireNextSelectionChangeEvent = true;
|
||||
selectionModel.setSelected(raceTriple, true);
|
||||
selectionModel.setSelected(race, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -353,7 +350,7 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
|
||||
public void clearSelection() {
|
||||
if (raceList != null) {
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> raceTriple : raceList.getList()) {
|
||||
for (RaceDTO raceTriple : raceList.getList()) {
|
||||
selectionModel.setSelected(raceTriple, false);
|
||||
}
|
||||
}
|
||||
@@ -369,7 +366,7 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
raceSelectionChangeListeners.remove(listener);
|
||||
}
|
||||
|
||||
private void fireRaceSelectionChanged(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
private void fireRaceSelectionChanged(List<RaceDTO> selectedRaces) {
|
||||
if (dontFireNextSelectionChangeEvent) {
|
||||
dontFireNextSelectionChangeEvent = false;
|
||||
} else {
|
||||
@@ -398,17 +395,15 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
for (EventDTO event : events) {
|
||||
for (RegattaDTO regatta : event.regattas) {
|
||||
for (RaceDTO race : regatta.races) {
|
||||
Triple<EventDTO, RegattaDTO, RaceDTO> triple = new Triple<EventDTO, RegattaDTO, RaceDTO>(event,
|
||||
regatta, race);
|
||||
if (race != null) {
|
||||
availableRaceList.add(triple);
|
||||
availableRaceList.add(race);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fillRaceListFromAvailableRacesApplyingFilter();
|
||||
if (lastSelectedTriple != null) {
|
||||
selectRaceByName(lastSelectedTriple.getA().name, lastSelectedTriple.getC().name);
|
||||
if (lastSelectedRace != null) {
|
||||
selectRaceByIdentifier((EventNameAndRaceName) lastSelectedRace.getRaceIdentifier());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -416,13 +411,13 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
this.raceIsTrackedRaceChangeListener.add(listener);
|
||||
}
|
||||
|
||||
private void stopTrackingRace(final EventDTO event, final RaceDTO race) {
|
||||
final EventNameAndRaceName eventNameAndRaceName = new EventNameAndRaceName(event.name, race.name);
|
||||
private void stopTrackingRace(final RaceDTO race) {
|
||||
final EventNameAndRaceName eventNameAndRaceName = (EventNameAndRaceName) race.getRaceIdentifier();
|
||||
sailingService.stopTrackingRace(eventNameAndRaceName, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Exception trying to stop tracking race " + race.name + "in event "
|
||||
+ event.name + ": " + caught.getMessage());
|
||||
+ race.getEvent().name + ": " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -435,14 +430,14 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
});
|
||||
}
|
||||
|
||||
private void removeAndUntrackRace(final EventDTO event, final RaceDTO race) {
|
||||
final EventNameAndRaceName eventNameAndRaceName = new EventNameAndRaceName(event.name, race.name);
|
||||
private void removeAndUntrackRace(final RaceDTO race) {
|
||||
final EventNameAndRaceName eventNameAndRaceName = (EventNameAndRaceName) race.getRaceIdentifier();
|
||||
sailingService.removeAndUntrackRace(eventNameAndRaceName,
|
||||
new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Exception trying to stop tracking race " + race.name + "in event "
|
||||
+ event.name + ": " + caught.getMessage());
|
||||
+ race.getEvent().name + ": " + caught.getMessage());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -460,19 +455,19 @@ public class TrackedEventsComposite extends FormPanel implements EventDisplayer,
|
||||
List<String> wordsToFilter = Arrays.asList(text.split(" "));
|
||||
raceList.getList().clear();
|
||||
if (text != null && !text.isEmpty()) {
|
||||
for (Triple<EventDTO, RegattaDTO, RaceDTO> triple : availableRaceList) {
|
||||
for (RaceDTO raceDTO : availableRaceList) {
|
||||
boolean failed = false;
|
||||
for (String word : wordsToFilter) {
|
||||
String textAsUppercase = word.toUpperCase().trim();
|
||||
if (!triple.getA().name.toUpperCase().contains(textAsUppercase)
|
||||
&& !triple.getB().boatClass.name.toUpperCase().contains(textAsUppercase)
|
||||
&& !triple.getC().name.toUpperCase().contains(textAsUppercase)) {
|
||||
if (!raceDTO.getEvent().name.toUpperCase().contains(textAsUppercase)
|
||||
&& !raceDTO.getRegatta().boatClass.name.toUpperCase().contains(textAsUppercase)
|
||||
&& !raceDTO.name.toUpperCase().contains(textAsUppercase)) {
|
||||
failed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!failed) {
|
||||
raceList.getList().add(triple);
|
||||
raceList.getList().add(raceDTO);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
+18
-18
@@ -38,7 +38,6 @@ import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.view.client.ListDataProvider;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
||||
@@ -47,7 +46,6 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
|
||||
@@ -90,9 +88,10 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
removeColumn = new IdentityColumn<WindDTO>(new ActionCell<WindDTO>(stringMessages.remove(), new Delegate<WindDTO>() {
|
||||
@Override
|
||||
public void execute(final WindDTO wind) {
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> eventAndRaces = trackedEventsComposite.getSelectedEventAndRace();
|
||||
final Triple<EventDTO, RegattaDTO, RaceDTO> eventAndRace = eventAndRaces.get(eventAndRaces.size()-1);
|
||||
sailingService.removeWind(new EventNameAndRaceName(eventAndRace.getA().name, eventAndRace.getC().name), wind, new AsyncCallback<Void>() {
|
||||
List<RaceDTO> selectedRaces = trackedEventsComposite.getSelectedRaces();
|
||||
final RaceDTO race = selectedRaces.get(selectedRaces.size()-1);
|
||||
EventNameAndRaceName raceIdentifier = (EventNameAndRaceName) race.getRaceIdentifier();
|
||||
sailingService.removeWind(raceIdentifier, wind, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
// remove row from underlying list:
|
||||
@@ -101,7 +100,7 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
WindPanel.this.errorReporter.reportError(
|
||||
WindPanel.this.stringMessages.errorSettingWindForRace()+ " "+eventAndRace.getC().name
|
||||
WindPanel.this.stringMessages.errorSettingWindForRace()+ " "+race.name
|
||||
+ ": "+ caught.getMessage());
|
||||
}
|
||||
});
|
||||
@@ -154,7 +153,7 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
public void onValueChange(ValueChangeEvent<Boolean> event) {
|
||||
setWindSource(/* runOnSuccess */ new Runnable() {
|
||||
public void run() {
|
||||
clearOrShowWindBasedOnRaceSelection(trackedEventsComposite.getSelectedEventAndRace());
|
||||
clearOrShowWindBasedOnRaceSelection(trackedEventsComposite.getSelectedRaces());
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -176,11 +175,11 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
this.setWidget(grid);
|
||||
}
|
||||
|
||||
private void clearOrShowWindBasedOnRaceSelection(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
private void clearOrShowWindBasedOnRaceSelection(List<RaceDTO> selectedRaces) {
|
||||
if (selectedRaces.isEmpty()) {
|
||||
clearWindDisplay(); // no wind known for untracked race
|
||||
} else {
|
||||
showWind(selectedRaces.get(0).getA(), selectedRaces.get(0).getC());
|
||||
showWind(selectedRaces.get(0));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -190,8 +189,9 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void showWind(final EventDTO event, final RaceDTO race) {
|
||||
sailingService.getWindInfo(new EventNameAndRaceName(event.name, race.name),
|
||||
public void showWind(final RaceDTO race) {
|
||||
EventNameAndRaceName raceIdentifier = (EventNameAndRaceName) race.getRaceIdentifier();
|
||||
sailingService.getWindInfo(raceIdentifier,
|
||||
// TODO Time interval should be determined by a selection in the chart but be at most 60s. See bug #121. Consider incremental updates for new data only.
|
||||
null, null, // use race start and time of newest event as default time period
|
||||
null, // retrieve data on all wind sources
|
||||
@@ -335,16 +335,16 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
}
|
||||
|
||||
private void setWindSource(final Runnable runOnSuccess) {
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> selection = trackedEventsComposite.getSelectedEventAndRace();
|
||||
List<RaceDTO> selection = trackedEventsComposite.getSelectedRaces();
|
||||
if (selection != null && !selection.isEmpty()) {
|
||||
final Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace = selection.get(0);
|
||||
final RaceDTO selectedRace = selection.get(0);
|
||||
final String windSourceName = windSourceSelection.getItemText(windSourceSelection.getSelectedIndex());
|
||||
sailingService.setWindSource(new EventNameAndRaceName(selectedRace.getA().name, selectedRace.getC().name),
|
||||
sailingService.setWindSource(new EventNameAndRaceName(selectedRace.getEvent().name, selectedRace.name),
|
||||
windSourceName, raceIsKnownToStartUpwindBox.getValue(), new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError(WindPanel.this.stringMessages.errorWhileTryingToSetWindSourceForRace()+
|
||||
" "+selectedRace.getC().name+" "+WindPanel.this.stringMessages.inEvent()+" "+selectedRace.getA().name+
|
||||
" "+selectedRace.name+" "+WindPanel.this.stringMessages.inEvent()+" "+selectedRace.getEvent().name+
|
||||
" "+WindPanel.this.stringMessages.to()+" "+
|
||||
windSourceName+": "+caught.getMessage());
|
||||
}
|
||||
@@ -359,11 +359,11 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRaceSelectionChange(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
public void onRaceSelectionChange(List<RaceDTO> selectedRaces) {
|
||||
clearOrShowWindBasedOnRaceSelection(selectedRaces);
|
||||
}
|
||||
|
||||
public List<Triple<EventDTO, RegattaDTO, RaceDTO>> getSelectedRaces(){
|
||||
return trackedEventsComposite.getSelectedEventAndRace();
|
||||
public List<RaceDTO> getSelectedRaces(){
|
||||
return trackedEventsComposite.getSelectedRaces();
|
||||
}
|
||||
}
|
||||
+6
-8
@@ -10,14 +10,11 @@ import com.google.gwt.user.client.ui.DoubleBox;
|
||||
import com.google.gwt.user.client.ui.FormPanel;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindDTO;
|
||||
import com.sap.sailing.server.api.EventNameAndRaceName;
|
||||
|
||||
@@ -54,17 +51,18 @@ public class WindSettingPanel extends FormPanel {
|
||||
if (latDegBox.getValue() != null && lngDegBox.getValue() != null) {
|
||||
wind.position = new PositionDTO(latDegBox.getValue(), lngDegBox.getValue());
|
||||
}
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> eventAndRaces = raceSelectionProvider.getSelectedEventAndRace();
|
||||
List<RaceDTO> selectedRaces = raceSelectionProvider.getSelectedRaces();
|
||||
// Here we assume that single selection is enabled because the WindPanel creates a TrackedComposite with disabled multi selection.
|
||||
final Triple<EventDTO, RegattaDTO, RaceDTO> eventAndRace = eventAndRaces.get(eventAndRaces.size()-1);
|
||||
sailingService.setWind(new EventNameAndRaceName(eventAndRace.getA().name, eventAndRace.getC().name), wind, new AsyncCallback<Void>() {
|
||||
final RaceDTO race = selectedRaces.get(selectedRaces.size()-1);
|
||||
EventNameAndRaceName raceIdentifier = (EventNameAndRaceName) race.getRaceIdentifier();
|
||||
sailingService.setWind(raceIdentifier, wind, new AsyncCallback<Void>() {
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
windShower.showWind(eventAndRace.getA(), eventAndRace.getC());
|
||||
windShower.showWind(race);
|
||||
}
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error setting wind for race "+eventAndRace.getC().name+": "+caught.getMessage());
|
||||
errorReporter.reportError("Error setting wind for race "+race.name+": "+caught.getMessage());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,10 +1,9 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
|
||||
public interface WindShower {
|
||||
|
||||
void showWind(EventDTO event, RaceDTO race);
|
||||
void showWind(RaceDTO race);
|
||||
|
||||
}
|
||||
+1
-4
@@ -2,10 +2,7 @@ package com.sap.sailing.gwt.ui.client;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
|
||||
|
||||
/**
|
||||
@@ -21,6 +18,6 @@ public interface RaceSelectionChangeListener {
|
||||
*
|
||||
* @param selectedRaces a non-<code>null</code> list which is empty if nothing is selected
|
||||
*/
|
||||
void onRaceSelectionChange(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces);
|
||||
void onRaceSelectionChange(List<RaceDTO> selectedRaces);
|
||||
|
||||
}
|
||||
+3
-5
@@ -8,7 +8,6 @@ import com.google.gwt.user.client.ui.FormPanel;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.WindIndicator;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
@@ -19,7 +18,6 @@ import com.sap.sailing.gwt.ui.client.TimeListener;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.PositionDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
|
||||
import com.sap.sailing.server.api.EventNameAndRaceName;
|
||||
@@ -128,10 +126,10 @@ public class SmallWindHistoryPanel extends FormPanel implements TimeListener, Ra
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRaceSelectionChange(List<Triple<EventDTO, RegattaDTO, RaceDTO>> selectedRaces) {
|
||||
public void onRaceSelectionChange(List<RaceDTO> selectedRaces) {
|
||||
if (!selectedRaces.isEmpty()) {
|
||||
event = selectedRaces.get(selectedRaces.size() - 1).getA();
|
||||
race = selectedRaces.get(selectedRaces.size() - 1).getC();
|
||||
race = selectedRaces.get(selectedRaces.size() - 1);
|
||||
event = race.getEvent();
|
||||
updateWindDisplay();
|
||||
}
|
||||
}
|
||||
|
||||
+4
-5
@@ -5,7 +5,6 @@ import java.util.List;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
@@ -14,7 +13,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.server.api.DefaultLeaderboardName;
|
||||
|
||||
public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
private Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace;
|
||||
private RaceDTO selectedRace;
|
||||
private String eventName;
|
||||
private String raceName;
|
||||
private String leaderboardName;
|
||||
@@ -66,13 +65,13 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
}
|
||||
}
|
||||
|
||||
private Triple<EventDTO, RegattaDTO, RaceDTO> findRace(List<EventDTO> eventNames) {
|
||||
private RaceDTO findRace(List<EventDTO> eventNames) {
|
||||
for (EventDTO eventDTO : eventNames) {
|
||||
if(eventDTO.name.equals(eventName)) {
|
||||
for (RegattaDTO regattaDTO : eventDTO.regattas) {
|
||||
for(RaceDTO raceDTO: regattaDTO.races) {
|
||||
if(raceDTO.name.equals(raceName)) {
|
||||
return new Triple<EventDTO, RegattaDTO, RaceDTO>(eventDTO, regattaDTO, raceDTO);
|
||||
return raceDTO;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -81,7 +80,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void createRaceBoardPanel(Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace)
|
||||
private void createRaceBoardPanel(RaceDTO selectedRace)
|
||||
{
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
|
||||
+11
-15
@@ -7,7 +7,6 @@ import com.google.gwt.user.client.ui.FormPanel;
|
||||
import com.google.gwt.user.client.ui.Panel;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.google.gwt.user.client.ui.Widget;
|
||||
import com.sap.sailing.domain.common.impl.Util.Triple;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.RaceMap;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.RaceMapSettings;
|
||||
import com.sap.sailing.gwt.ui.adminconsole.TimePanel;
|
||||
@@ -18,9 +17,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.Timer;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||
|
||||
@@ -28,17 +25,17 @@ public class RaceBoardPanel extends FormPanel implements Component<RaceBoardSett
|
||||
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final ErrorReporter errorReporter;
|
||||
private final Triple<EventDTO, RegattaDTO, RaceDTO> selectedRace;
|
||||
private final RaceDTO selectedRace;
|
||||
private String raceBoardName;
|
||||
|
||||
private final Timer timer;
|
||||
private final List<CollapsableComponentViewer<?>> collapsableViewers;
|
||||
|
||||
public RaceBoardPanel(SailingServiceAsync sailingService, final Triple<EventDTO, RegattaDTO, RaceDTO> theSelectedRace, String leaderboardName,
|
||||
public RaceBoardPanel(SailingServiceAsync sailingService, final RaceDTO theSelectedRace, String leaderboardName,
|
||||
ErrorReporter errorReporter, final StringMessages stringMessages) {
|
||||
this.sailingService = sailingService;
|
||||
this.selectedRace = theSelectedRace;
|
||||
this.setRaceBoardName(selectedRace.getC().name);
|
||||
this.setRaceBoardName(selectedRace.name);
|
||||
this.errorReporter = errorReporter;
|
||||
VerticalPanel mainPanel = new VerticalPanel();
|
||||
mainPanel.setSize("100%", "100%");
|
||||
@@ -61,7 +58,7 @@ public class RaceBoardPanel extends FormPanel implements Component<RaceBoardSett
|
||||
CollapsableComponentViewer<RaceMapSettings> raceMapViewer = new CollapsableComponentViewer<RaceMapSettings>(
|
||||
raceMap, "600px", "300px", stringMessages);
|
||||
raceMap.loadMapsAPI((Panel) raceMapViewer.getViewerWidget().getContent());
|
||||
List<Triple<EventDTO, RegattaDTO, RaceDTO>> races = new ArrayList<Triple<EventDTO, RegattaDTO, RaceDTO>>();
|
||||
List<RaceDTO> races = new ArrayList<RaceDTO>();
|
||||
races.add(selectedRace);
|
||||
raceMap.onRaceSelectionChange(races);
|
||||
collapsableViewers.add(raceMapViewer);
|
||||
@@ -84,16 +81,15 @@ public class RaceBoardPanel extends FormPanel implements Component<RaceBoardSett
|
||||
timer.addTimeListener(raceMap);
|
||||
|
||||
TimePanel timePanel = new TimePanel(stringMessages, timer);
|
||||
RaceDTO race = selectedRace.getC();
|
||||
if (race.startOfRace != null) {
|
||||
timePanel.timeChanged(race.startOfRace);
|
||||
timer.setTime(race.startOfRace.getTime());
|
||||
if (selectedRace.startOfRace != null) {
|
||||
timePanel.timeChanged(selectedRace.startOfRace);
|
||||
timer.setTime(selectedRace.startOfRace.getTime());
|
||||
}
|
||||
if (race.startOfTracking != null) {
|
||||
timePanel.setMin(race.startOfTracking);
|
||||
if (selectedRace.startOfTracking != null) {
|
||||
timePanel.setMin(selectedRace.startOfTracking);
|
||||
}
|
||||
if (race.timePointOfNewestEvent != null) {
|
||||
timePanel.setMax(race.timePointOfNewestEvent);
|
||||
if (selectedRace.timePointOfNewestEvent != null) {
|
||||
timePanel.setMax(selectedRace.timePointOfNewestEvent);
|
||||
}
|
||||
|
||||
mainPanel.add(timePanel);
|
||||
|
||||
@@ -4,6 +4,10 @@ import java.util.Date;
|
||||
|
||||
import com.google.gwt.user.client.rpc.IsSerializable;
|
||||
import com.sap.sailing.domain.common.RacePlaceOrder;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tractracadapter.TracTracRaceTracker;
|
||||
import com.sap.sailing.server.api.EventNameAndRaceName;
|
||||
import com.sap.sailing.server.api.RaceIdentifier;
|
||||
|
||||
public class RaceDTO extends NamedDTO implements IsSerializable {
|
||||
public Iterable<CompetitorDTO> competitors;
|
||||
@@ -40,4 +44,11 @@ public class RaceDTO extends NamedDTO implements IsSerializable {
|
||||
this.regatta = regatta;
|
||||
}
|
||||
|
||||
public RaceIdentifier getRaceIdentifier() {
|
||||
return new EventNameAndRaceName(regatta.getEvent().name, name);
|
||||
}
|
||||
|
||||
public EventDTO getEvent() {
|
||||
return regatta.getEvent();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user