replaced Triple<EventDTO, RegattoDTO, RaceDTO> with simple RaceDTO in all race selection providers and listeners

This commit is contained in:
fmittag committed 2012-01-20 12:34:59 +01:00
1 parent 9edd08373a
commit 133074db3a
14 files changed
+178 -192

No files matched your search

@@ -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();
@@ -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);
@@ -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>>() {
@@ -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,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()+")" : "");
}
}
@@ -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 {
@@ -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();
}
}
@@ -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,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);
}
@@ -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);
}
@@ -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();
}
}
@@ -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");
@@ -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();
}
}