mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-10 06:10:56 +00:00
removed unsued old competitor charts dialog
This commit is contained in:
1 parent
16df463800
commit
dd21791ae5
1 file changed
-163
-163
@@ -1,163 +0,0 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gwt.dom.client.Style.Float;
|
||||
import com.google.gwt.event.dom.client.ChangeEvent;
|
||||
import com.google.gwt.event.dom.client.ChangeHandler;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
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.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.gwt.ui.actions.AsyncActionsExecutor;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.ErrorReporter;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesCalculationUtil;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProvider;
|
||||
import com.sap.sailing.gwt.ui.client.RaceTimesInfoProviderListener;
|
||||
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
import com.sap.sailing.gwt.ui.client.TimeRangeChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.TimeRangeWithZoomModel;
|
||||
import com.sap.sailing.gwt.ui.client.TimeRangeWithZoomProvider;
|
||||
import com.sap.sailing.gwt.ui.client.Timer;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChart;
|
||||
import com.sap.sailing.gwt.ui.client.shared.charts.MultiCompetitorRaceChartSettings;
|
||||
import com.sap.sailing.gwt.ui.client.shared.components.ComponentToolbar;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO;
|
||||
|
||||
/**
|
||||
* A dialog box that holds a {@link MultiCompetitorRaceChart} for comparing a list of preselected competitors.
|
||||
*
|
||||
* @author Benjamin Ebling, Axel Uhl (d043530)
|
||||
*
|
||||
*/
|
||||
public class CompareCompetitorsChartDialog extends DialogBoxExt implements RaceTimesInfoProviderListener {
|
||||
private final RaceSelectionProvider raceSelectionProvider;
|
||||
private final SailingServiceAsync sailingService;
|
||||
private final TimeRangeWithZoomProvider timeRangeWithZoomProvider;
|
||||
private final Timer timer;
|
||||
private final ErrorReporter errorReporter;
|
||||
|
||||
private final MultiCompetitorRaceChart multiChartPanel;
|
||||
|
||||
private final ListBox racesListBox;
|
||||
|
||||
public CompareCompetitorsChartDialog(SailingServiceAsync sailingService,
|
||||
List<RegattaAndRaceIdentifier> races, final RaceTimesInfoProvider raceTimesInfoProvider, final CompetitorSelectionProvider competitorSelectionProvider,
|
||||
Timer timer, StringMessages stringMessages, ErrorReporter errorReporter, String leaderboardGroupName, String leaderboardName) {
|
||||
super(new Label(stringMessages.close()));
|
||||
this.sailingService = sailingService;
|
||||
this.timer = timer;
|
||||
this.errorReporter = errorReporter;
|
||||
this.timeRangeWithZoomProvider = new TimeRangeWithZoomModel();
|
||||
this.setPopupPosition(15, 15);
|
||||
this.setHTML(stringMessages.competitorCharts());
|
||||
this.setWidth(Window.getClientWidth() - 250 + "px");
|
||||
this.setAnimationEnabled(true);
|
||||
|
||||
raceTimesInfoProvider.addRaceTimesInfoProviderListener(this);
|
||||
raceSelectionProvider = new RaceSelectionModel();
|
||||
raceSelectionProvider.setAllRaces(races);
|
||||
|
||||
multiChartPanel = new MultiCompetitorRaceChart(sailingService, new AsyncActionsExecutor(), competitorSelectionProvider, raceSelectionProvider,
|
||||
timer, timeRangeWithZoomProvider, stringMessages, errorReporter, false, false, leaderboardGroupName, leaderboardName);
|
||||
multiChartPanel.setSize("100%", "100%");
|
||||
|
||||
VerticalPanel contentPanel = new VerticalPanel();
|
||||
contentPanel.setSize("100%", "100%");
|
||||
|
||||
ComponentToolbar<MultiCompetitorRaceChartSettings> toolbar = new ComponentToolbar<MultiCompetitorRaceChartSettings>(multiChartPanel, stringMessages);
|
||||
toolbar.addSettingsButton();
|
||||
|
||||
FlowPanel flowPanel = new FlowPanel();
|
||||
|
||||
HorizontalPanel raceSelectionPanel = new HorizontalPanel();
|
||||
raceSelectionPanel.setSpacing(3);
|
||||
racesListBox = new ListBox();
|
||||
raceSelectionPanel.add(new Label(stringMessages.pleaseSelectARace() + ":"));
|
||||
raceSelectionPanel.add(racesListBox);
|
||||
for (RegattaAndRaceIdentifier race : raceSelectionProvider.getAllRaces()) {
|
||||
racesListBox.addItem(race.toString());
|
||||
}
|
||||
racesListBox.addChangeHandler(new ChangeHandler() {
|
||||
@Override
|
||||
public void onChange(ChangeEvent event) {
|
||||
int selIndex = racesListBox.getSelectedIndex();
|
||||
String selItem = racesListBox.getItemText(selIndex);
|
||||
for (RegattaAndRaceIdentifier race : raceSelectionProvider.getAllRaces()) {
|
||||
if(selItem.equals(race.toString())) {
|
||||
selectRace(race);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
RegattaAndRaceIdentifier firstRace = raceSelectionProvider.getAllRaces().iterator().next();
|
||||
racesListBox.setSelectedIndex(0);
|
||||
selectRace(firstRace);
|
||||
|
||||
flowPanel.add(raceSelectionPanel);
|
||||
raceSelectionPanel.getElement().getStyle().setFloat(Float.LEFT);
|
||||
flowPanel.add(toolbar);
|
||||
toolbar.getElement().getStyle().setFloat(Float.RIGHT);
|
||||
toolbar.setSpacing(0);
|
||||
contentPanel.add(flowPanel);
|
||||
contentPanel.add(multiChartPanel.getEntryWidget());
|
||||
|
||||
this.setWidget(contentPanel);
|
||||
}
|
||||
|
||||
private void selectRace(final RegattaAndRaceIdentifier selectedRace) {
|
||||
sailingService.getRaceTimesInfo(selectedRace, new AsyncCallback<RaceTimesInfoDTO>() {
|
||||
@Override
|
||||
public void onSuccess(RaceTimesInfoDTO raceTimesInfo) {
|
||||
updateMinMax(raceTimesInfo);
|
||||
raceSelectionProvider.setSelection(Collections.singletonList(selectedRace));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
errorReporter.reportError("Error obtaining race times: " + caught.getMessage(), true /*silentMode */);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void updateMinMax(RaceTimesInfoDTO newRaceTimesInfo) {
|
||||
Pair<Date, Date> raceMinMax = RaceTimesCalculationUtil.caluclateRaceMinMax(timer, newRaceTimesInfo);
|
||||
|
||||
Date min = raceMinMax.getA();
|
||||
Date max = raceMinMax.getB();
|
||||
|
||||
// never reduce max if it was already set
|
||||
if (min != null && max != null && (timeRangeWithZoomProvider.getToTime() == null || timeRangeWithZoomProvider.getToTime().before(max))) {
|
||||
timeRangeWithZoomProvider.setTimeRange(min, max, new TimeRangeChangeListener[0]);
|
||||
}
|
||||
}
|
||||
|
||||
private RegattaAndRaceIdentifier getSelectedRace() {
|
||||
return raceSelectionProvider.getSelectedRaces().size() > 0 ? raceSelectionProvider.getSelectedRaces().get(0) : null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void raceTimesInfosReceived(Map<RegattaAndRaceIdentifier, RaceTimesInfoDTO> raceTimesInfos, long clientTimeWhenRequestWasSent, Date serverTimeDuringRequest, long clientTimeWhenResponseWasReceived) {
|
||||
timer.adjustClientServerOffset(clientTimeWhenRequestWasSent, serverTimeDuringRequest, clientTimeWhenResponseWasReceived);
|
||||
RegattaAndRaceIdentifier selectedRace = getSelectedRace();
|
||||
if (selectedRace != null) {
|
||||
updateMinMax(raceTimesInfos.get(selectedRace));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user