Merge remote-tracking branch 'origin/gwt' into gwt

This commit is contained in:
Lennart Hensler committed 2012-02-07 11:00:35 +01:00
commit d3e0b7085f
8 files changed
+47 -19

No files matched your search

@@ -29,6 +29,8 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.TimeListener;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
import com.sap.sailing.gwt.ui.shared.WindDTO;
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
@@ -47,6 +49,7 @@ public class WindChart implements Component<WindChartSettings>, RaceSelectionCha
private final ErrorReporter errorReporter;
private final SailingServiceAsync sailingService;
private final Chart chart;
private final Timer timer;
/**
* @param raceSelectionProvider
@@ -55,13 +58,14 @@ public class WindChart implements Component<WindChartSettings>, RaceSelectionCha
* server and displayed in this chart. If no race is selected, the chart is cleared.
*/
public WindChart(SailingServiceAsync sailingService, RaceSelectionProvider raceSelectionProvider,
WindChartSettings settings, StringMessages stringMessages, ErrorReporter errorReporter) {
Timer timer, WindChartSettings settings, StringMessages stringMessages, ErrorReporter errorReporter) {
super();
this.sailingService = sailingService;
this.stringMessages = stringMessages;
this.errorReporter = errorReporter;
this.windSourceSeries = new HashMap<WindSource, Series>();
this.windSourcesToDisplay = new HashSet<WindSource>();
this.timer = timer;
chart = new Chart()
.setZoomType(Chart.ZoomType.X)
.setSpacingRight(20)
@@ -206,6 +210,12 @@ public class WindChart implements Component<WindChartSettings>, RaceSelectionCha
@Override
public void timeChanged(Date date) {
if (timer.getPlayMode() == PlayModes.Live) {
// TODO fetch missing pieces from cache
} else {
// assuming play mode is replay / non-live
// TODO fetch all if not yet fetched
}
// TODO implement timeChanged by loading missing wind data and adding to series
}
}
@@ -47,6 +47,8 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
import com.sap.sailing.gwt.ui.shared.EventDTO;
import com.sap.sailing.gwt.ui.shared.WindDTO;
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
@@ -173,7 +175,7 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower,
windSourceSelectionPanel.add(showConfigAnchor);
grid.setWidget(1, 0, windSourceSelectionPanel);
windChart = new WindChart(sailingService, /* race selection provider */ raceSelectionProvider,
new WindChartSettings(WindSource.values()), stringMessages, errorReporter);
new Timer(PlayModes.Replay), new WindChartSettings(WindSource.values()), stringMessages, errorReporter);
grid.setWidget(2, 0, windChart.getEntryWidget());
grid.getCellFormatter().setVerticalAlignment(1, 1, HasVerticalAlignment.ALIGN_TOP);
this.setWidget(grid);
@@ -61,6 +61,9 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.TimeListener;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
import com.sap.sailing.gwt.ui.shared.CompetitorDTO;
import com.sap.sailing.gwt.ui.shared.CompetitorInRaceDTO;
import com.sap.sailing.gwt.ui.shared.CompetitorsAndTimePointsDTO;
@@ -80,7 +83,7 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
*
*/
public abstract class AbstractChartPanel<SettingsType extends ChartSettings> extends SimplePanel
implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeListener {
private CompetitorInRaceDTO chartData;
private CompetitorsAndTimePointsDTO competitorsAndTimePointsDTO = null;
private final SailingServiceAsync sailingService;
@@ -102,6 +105,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
private final HashMap<CompetitorDTO, Widget> competitorLabels;
private final HashMap<String, String> markPassingBuoyName;
private int width, height;
private final Timer timer;
private DetailType dataToShow;
private AbsolutePanel loadingPanel;
@@ -109,11 +113,12 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
public AbstractChartPanel(SailingServiceAsync sailingService,
CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider,
final StringMessages stringMessages, int chartWidth, int chartHeight, ErrorReporter errorReporter,
DetailType dataToShow, boolean showRaceSelector) {
Timer timer, final StringMessages stringMessages, int chartWidth, int chartHeight,
ErrorReporter errorReporter, DetailType dataToShow, boolean showRaceSelector) {
width = chartWidth;
height = chartHeight;
this.dataToShow = dataToShow;
this.timer = timer;
this.competitorSelectionProvider = competitorSelectionProvider;
competitorSelectionProvider.addCompetitorSelectionChangeListener(this);
this.errorReporter = errorReporter;
@@ -754,4 +759,12 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener {
return new Pair<Boolean, Boolean>(everyPassingInRange, twoPassingsInRangeBeforeError);
}
@Override
public void timeChanged(Date date) {
if (timer.getPlayMode() == PlayModes.Live) {
// TODO fetch parts missing so far from cache
} else {
// TODO check if fetched already; if not, fetch all
}
}
}
@@ -6,6 +6,7 @@ import com.sap.sailing.gwt.ui.client.ErrorReporter;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.shared.components.Component;
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
@@ -24,10 +25,10 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
public class ChartPanel extends AbstractChartPanel<ChartSettings> implements Component<ChartSettings> {
public ChartPanel(SailingServiceAsync sailingService, CompetitorSelectionProvider competitorSelectionProvider,
RaceSelectionProvider raceSelectionProvider, DetailType dataToShow, StringMessages stringMessages, int chartWidth,
int chartHeight, ErrorReporter errorReporter, boolean showRaceSelector) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, stringMessages, chartWidth, chartHeight,
errorReporter, dataToShow, showRaceSelector);
RaceSelectionProvider raceSelectionProvider, Timer timer, DetailType dataToShow, StringMessages stringMessages,
int chartWidth, int chartHeight, ErrorReporter errorReporter, boolean showRaceSelector) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, chartWidth,
chartHeight, errorReporter, dataToShow, showRaceSelector);
}
@Override
@@ -21,6 +21,7 @@ import com.sap.sailing.gwt.ui.client.RaceSelectionModel;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.leaderboard.AbstractChartPanel.DataLoadedEvent;
import com.sap.sailing.gwt.ui.leaderboard.AbstractChartPanel.DataLoadedHandler;
@@ -34,14 +35,14 @@ public class CompareCompetitorsChartDialog extends DialogBox {
private Anchor closeAnchor;
public CompareCompetitorsChartDialog(SailingServiceAsync sailingService,
List<RaceIdentifier> races, final CompetitorSelectionProvider competitorSelectionProvider, StringMessages stringConstants,
ErrorReporter errorReporter) {
List<RaceIdentifier> races, final CompetitorSelectionProvider competitorSelectionProvider, Timer timer,
StringMessages stringConstants, ErrorReporter errorReporter) {
super(false);
RaceSelectionProvider raceSelectionProvider = new RaceSelectionModel();
raceSelectionProvider.setAllRaces(races);
final MultiChartPanel ccp = new MultiChartPanel(sailingService, competitorSelectionProvider, raceSelectionProvider,
stringConstants, (int) (Window.getClientWidth() - 350), (int) (Window.getClientHeight() - 170),
errorReporter, /* showRaceSelector */ true);
timer, stringConstants, (int) (Window.getClientWidth() - 350),
(int) (Window.getClientHeight() - 170), errorReporter, /* showRaceSelector */ true);
ccp.addDataLoadedHandler(new DataLoadedHandler() {
@Override
public void onDataLoaded(DataLoadedEvent event) {
@@ -1473,7 +1473,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
private void compareCompetitors() {
List<RaceIdentifier> races = getTrackedRacesIdentifiers();
CompareCompetitorsChartDialog chartDialog = new CompareCompetitorsChartDialog(sailingService, races,
competitorSelectionProvider, stringConstants, errorReporter);
competitorSelectionProvider, timer, stringConstants, errorReporter);
chartDialog.show();
}
@@ -6,6 +6,7 @@ import com.sap.sailing.gwt.ui.client.ErrorReporter;
import com.sap.sailing.gwt.ui.client.RaceSelectionProvider;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.shared.components.Component;
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
@@ -23,10 +24,10 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
*/
public class MultiChartPanel extends AbstractChartPanel<MultiChartSettings> implements Component<MultiChartSettings> {
public MultiChartPanel(SailingServiceAsync sailingService, CompetitorSelectionProvider competitorSelectionProvider,
RaceSelectionProvider raceSelectionProvider, final StringMessages stringMessages, int chartWidth, int chartHeight,
ErrorReporter errorReporter, boolean showRaceSelector) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, stringMessages, chartWidth, chartHeight,
errorReporter, /* show initially: */ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, showRaceSelector);
RaceSelectionProvider raceSelectionProvider, Timer timer, final StringMessages stringMessages, int chartWidth,
int chartHeight, ErrorReporter errorReporter, boolean showRaceSelector) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, chartWidth,
chartHeight, errorReporter, /* show initially: */ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, showRaceSelector);
}
@Override
@@ -120,7 +120,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
boolean showWindChart = true;
if(showWindChart) {
WindChartSettings windChartSettings = new WindChartSettings();
WindChart windChart = new WindChart(sailingService, raceSelectionProvider, windChartSettings, stringMessages, errorReporter);
WindChart windChart = new WindChart(sailingService, raceSelectionProvider, timer, windChartSettings, stringMessages, errorReporter);
CollapsableComponentViewer<WindChartSettings> windChartViewer = new CollapsableComponentViewer<WindChartSettings>(
windChart, "600px", "500px", stringMessages);
windChart.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces());