From 8e0fee1de9a9ea5e71d24039657cd794cd85967e Mon Sep 17 00:00:00 2001 From: Benjamin Ebling Date: Wed, 30 Nov 2011 16:04:47 +0100 Subject: [PATCH] Fixed a bug that no data was shown when SailingService returned before chart was loaded. --- java/com.sap.sailing.gwt.ui/SailingGWT.launch | 2 +- .../ui/client/CompareCompetitorsPanel.java | 69 ++++++++----------- .../gwt/ui/server/SailingServiceImpl.java | 6 +- .../gwt/ui/shared/CompetitorWithRaceDAO.java | 1 - 4 files changed, 33 insertions(+), 45 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/SailingGWT.launch b/java/com.sap.sailing.gwt.ui/SailingGWT.launch index c95a8aed1dd..1710d5f5566 100755 --- a/java/com.sap.sailing.gwt.ui/SailingGWT.launch +++ b/java/com.sap.sailing.gwt.ui/SailingGWT.launch @@ -21,7 +21,7 @@ - + diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/CompareCompetitorsPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/CompareCompetitorsPanel.java index d40da38499b..fb83fa0d17d 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/CompareCompetitorsPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/CompareCompetitorsPanel.java @@ -39,7 +39,10 @@ public class CompareCompetitorsPanel extends FormPanel { private final SailingServiceAsync sailingService; private HorizontalPanel mainPanel; private VerticalPanel chartPanel; + private final DeckPanel deckPanel; + private String leaderboardName; private String raceName; + private int stepsToLoad = 100; public static final int DECK_PANEL_INDEX_LOADING = 0; public static final int DECK_PANEL_INDEX_CHART = 1; @@ -55,6 +58,7 @@ public class CompareCompetitorsPanel extends FormPanel { String raceName, final String leaderboardName) { this.sailingService = sailingService; this.competitors = competitors; + this.leaderboardName = leaderboardName; this.raceName = raceName; mainPanel = new HorizontalPanel(); chartPanel = new VerticalPanel(); @@ -66,7 +70,7 @@ public class CompareCompetitorsPanel extends FormPanel { loadingPanel.add(a,800/2-32/2,600/2-32-2); chartPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT); chartPanel.setSpacing(5); - final DeckPanel deckPanel = new DeckPanel(); + deckPanel = new DeckPanel(); deckPanel.add(loadingPanel); final CaptionPanel configCaption = new CaptionPanel("Configuration"); @@ -115,27 +119,9 @@ public class CompareCompetitorsPanel extends FormPanel { @Override public void onClick(ClickEvent event) { + stepsToLoad = Integer.parseInt(txtbSteps.getText()); deckPanel.showWidget(DECK_PANEL_INDEX_LOADING); - CompareCompetitorsPanel.this.sailingService.getCompetitorRaceData(leaderboardName, - CompareCompetitorsPanel.this.raceName, competitors, Integer.parseInt(txtbSteps.getText()), - new AsyncCallback() { - - @Override - public void onFailure(Throwable caught) { - // TODO Auto-generated method stub - - } - - @Override - public void onSuccess(CompetitorWithRaceDAO[][] result) { - fireEvent(new DataLoadedEvent()); - chartData = result; - if (chart != null) { - deckPanel.showWidget(DECK_PANEL_INDEX_CHART); - chart.draw(prepareTableData(), getOptions()); - } - } - }); + loadData(); } }); configPanel.add(bttSteps); @@ -148,30 +134,14 @@ public class CompareCompetitorsPanel extends FormPanel { chart = new LineChart(prepareTableData(), getOptions()); deckPanel.add(chart); fireEvent(new DataLoadedEvent()); + loadData(); // chartLoaded = true; } }; VisualizationUtils.loadVisualizationApi(onLoadCallback, LineChart.PACKAGE); deckPanel.showWidget(DECK_PANEL_INDEX_LOADING); - this.sailingService.getCompetitorRaceData(leaderboardName, this.raceName, competitors, 100, - new AsyncCallback() { - - @Override - public void onFailure(Throwable caught) { - Window.alert("Failed to laod race data."); - } - - @Override - public void onSuccess(CompetitorWithRaceDAO[][] result) { - fireEvent(new DataLoadedEvent()); - chartData = result; - if (chart != null) { - deckPanel.showWidget(DECK_PANEL_INDEX_CHART); - chart.draw(prepareTableData(), getOptions()); - } - } - }); + loadData(); chartPanel.add(deckPanel); mainPanel.add(chartPanel); mainPanel.add(configCaption); @@ -223,6 +193,27 @@ public class CompareCompetitorsPanel extends FormPanel { opt.setVAxisOptions(vAxisOptions); return opt; } + + private void loadData(){ + this.sailingService.getCompetitorRaceData(leaderboardName, this.raceName, competitors, stepsToLoad, + new AsyncCallback() { + + @Override + public void onFailure(Throwable caught) { + Window.alert("Failed to laod race data."); + } + + @Override + public void onSuccess(CompetitorWithRaceDAO[][] result) { + fireEvent(new DataLoadedEvent()); + chartData = result; + if (chart != null) { + deckPanel.showWidget(DECK_PANEL_INDEX_CHART); + chart.draw(prepareTableData(), getOptions()); + } + } + }); + } private AbstractDataTable prepareTableData() { DataTable data = DataTable.create(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 68be1c41ff5..20af7f656c9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -1159,11 +1159,9 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS } competitorData[i++] = entries.toArray(new CompetitorWithRaceDAO[0]); } - - - - return competitorData; + } + public Map> getDouglasPoints(String eventName, String raceName, Map from, Map to, double meters) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorWithRaceDAO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorWithRaceDAO.java index 32f37b7463c..f074ab7d662 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorWithRaceDAO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorWithRaceDAO.java @@ -1,7 +1,6 @@ package com.sap.sailing.gwt.ui.shared; import com.google.gwt.user.client.rpc.IsSerializable; -import com.sap.sailing.domain.base.TimePoint; public class CompetitorWithRaceDAO implements IsSerializable { private CompetitorDAO competitor;