Merge remote-tracking branch 'server/master'

This commit is contained in:
Axel Uhl committed 2012-03-05 16:13:15 +01:00
commit ed8884403b
4 files changed
+69 -16

No files matched your search

+5
View File
@@ -234,6 +234,11 @@ wind data from the dev DB instance, execute:
/opt/mongodb/bin/mongoexport -h localhost:10200 -d winddb -c WIND_TRACKS >/tmp/wind-tracks-dev.json /opt/mongodb/bin/mongoexport -h localhost:10200 -d winddb -c WIND_TRACKS >/tmp/wind-tracks-dev.json
or with an additional query parameter if only want to export the wind of a specific race
/opt/mongodb/bin/mongoexport -h localhost:10200 -d winddb -c WIND_TRACKS -q "{EVENT_NAME:'Sailing Team Germany (Melges 24)'}" >/tmp/wind-tracks-dev.json
To import the resulting JSON file into the test DB instance, execute: To import the resulting JSON file into the test DB instance, execute:
/opt/mongodb/bin/mongoimport -h localhost:10201 -d winddb -c WIND_TRACKS /tmp/wind-tracks-dev.json /opt/mongodb/bin/mongoimport -h localhost:10201 -d winddb -c WIND_TRACKS /tmp/wind-tracks-dev.json
@@ -28,10 +28,17 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
private String raceName; private String raceName;
private String leaderboardName; private String leaderboardName;
private String leaderboardGroupName; private String leaderboardGroupName;
private RaceBoardViewMode viewMode;
@Override @Override
public void onModuleLoad() { public void onModuleLoad() {
super.onModuleLoad(); super.onModuleLoad();
String viewModeParamValue = Window.Location.getParameter("viewMode");
try {
viewMode = RaceBoardViewMode.valueOf(RaceBoardViewMode.class, viewModeParamValue);
} catch (IllegalArgumentException e) {
viewMode = RaceBoardViewMode.ONE_SCREEN;
}
eventName = Window.Location.getParameter("eventName"); eventName = Window.Location.getParameter("eventName");
raceName = Window.Location.getParameter("raceName"); raceName = Window.Location.getParameter("raceName");
String leaderboardNameParamValue = Window.Location.getParameter("leaderboardName"); String leaderboardNameParamValue = Window.Location.getParameter("leaderboardName");
@@ -132,7 +139,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
List<RaceIdentifier> singletonList = Collections.singletonList(selectedRace.getRaceIdentifier()); List<RaceIdentifier> singletonList = Collections.singletonList(selectedRace.getRaceIdentifier());
raceSelectionModel.setSelection(singletonList); raceSelectionModel.setSelection(singletonList);
raceBoardPanel = new RaceBoardPanel(sailingService, userDTO, raceSelectionModel, leaderboardName, leaderboardGroupName, raceBoardPanel = new RaceBoardPanel(sailingService, userDTO, raceSelectionModel, leaderboardName, leaderboardGroupName,
RaceBoardEntryPoint.this, stringMessages, userAgentType); RaceBoardEntryPoint.this, stringMessages, userAgentType, viewMode);
raceBoardPanel.fillEvents(events); raceBoardPanel.fillEvents(events);
logoAndTitlePanel.add(raceBoardPanel.getNavigationWidget()); logoAndTitlePanel.add(raceBoardPanel.getNavigationWidget());
@@ -56,6 +56,7 @@ import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
*/ */
public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSelectionChangeListener { public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSelectionChangeListener {
private final SailingServiceAsync sailingService; private final SailingServiceAsync sailingService;
private final StringMessages stringMessages;
private final ErrorReporter errorReporter; private final ErrorReporter errorReporter;
private String raceBoardName; private String raceBoardName;
@@ -70,40 +71,61 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
private int scrollOffset; private int scrollOffset;
private final List<CollapsableComponentViewer<?>> collapsableViewers; private final List<CollapsableComponentViewer<?>> collapsableViewers;
private final FlowPanel componentsNavigationPanel; private FlowPanel componentsNavigationPanel;
private final BreadcrumbPanel breadcrumbPanel; private BreadcrumbPanel breadcrumbPanel;
private final RaceTimePanel timePanel; private RaceTimePanel timePanel;
private final Timer timer; private final Timer timer;
private final RaceSelectionProvider raceSelectionProvider; private final RaceSelectionProvider raceSelectionProvider;
private final UserAgentTypes userAgentType;
private final CompetitorSelectionModel competitorSelectionModel;
private final RaceIdentifier selectedRaceIdentifier;
public RaceBoardPanel(SailingServiceAsync sailingService, UserDTO theUser, RaceSelectionProvider theRaceSelectionProvider, String leaderboardName, public RaceBoardPanel(SailingServiceAsync sailingService, UserDTO theUser, RaceSelectionProvider theRaceSelectionProvider, String leaderboardName,
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages, UserAgentTypes userAgentType) { String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages, UserAgentTypes userAgentType, RaceBoardViewMode viewMode) {
this.sailingService = sailingService; this.sailingService = sailingService;
this.stringMessages = stringMessages;
this.raceSelectionProvider = theRaceSelectionProvider; this.raceSelectionProvider = theRaceSelectionProvider;
this.scrollOffset = 0; this.scrollOffset = 0;
raceSelectionProvider.addRaceSelectionChangeListener(this); raceSelectionProvider.addRaceSelectionChangeListener(this);
racesByIdentifier = new HashMap<RaceIdentifier, RaceDTO>(); racesByIdentifier = new HashMap<RaceIdentifier, RaceDTO>();
RaceIdentifier selectedRaceIdentifier = raceSelectionProvider.getSelectedRaces().iterator().next(); selectedRaceIdentifier = raceSelectionProvider.getSelectedRaces().iterator().next();
this.setRaceBoardName(selectedRaceIdentifier.getRaceName()); this.setRaceBoardName(selectedRaceIdentifier.getRaceName());
this.errorReporter = errorReporter; this.errorReporter = errorReporter;
this.userAgentType = userAgentType;
FlowPanel mainPanel = new FlowPanel(); FlowPanel mainPanel = new FlowPanel();
mainPanel.setSize("100%", "100%"); mainPanel.setSize("100%", "100%");
setWidget(mainPanel); setWidget(mainPanel);
timer = new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */1000); timer = new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */1000);
collapsableViewers = new ArrayList<CollapsableComponentViewer<?>>(); collapsableViewers = new ArrayList<CollapsableComponentViewer<?>>();
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true); competitorSelectionModel = new CompetitorSelectionModel(/* hasMultiSelection */ true);
// create the breadcrumb navigation switch (viewMode) {
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>(); case CASCADING:
String debugParam = Window.Location.getParameter("gwt.codesvr"); createCascadingView(leaderboardName, leaderboardGroupName, mainPanel);
break;
if(leaderboardGroupName != null) { case ONE_SCREEN:
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName + createOneScreenView();
(debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : ""); break;
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroupName)); case TV_MODE:
createTVView();
break;
} }
breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName()); }
private void createTVView() {
// TODO Auto-generated method stub
}
private void createOneScreenView() {
// TODO Auto-generated method stub
}
private void createCascadingView(String leaderboardName, String leaderboardGroupName, FlowPanel mainPanel) {
// create the breadcrumb navigation
breadcrumbPanel = createBreadcrumbPanel(leaderboardGroupName);
mainPanel.add(breadcrumbPanel); mainPanel.add(breadcrumbPanel);
componentsNavigationPanel = new FlowPanel(); componentsNavigationPanel = new FlowPanel();
@@ -166,6 +188,18 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
raceSelectionProvider.addRaceSelectionChangeListener(timePanel); raceSelectionProvider.addRaceSelectionChangeListener(timePanel);
timePanel.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces()); timePanel.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces());
} }
private BreadcrumbPanel createBreadcrumbPanel(String leaderboardGroupName) {
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
String debugParam = Window.Location.getParameter("gwt.codesvr");
if(leaderboardGroupName != null) {
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName +
(debugParam != null && !debugParam.isEmpty() ? "&gwt.codesvr=" + debugParam : "");
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroupName));
}
return new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName());
}
private void addComponentViewerMenuEntry(final ComponentViewer c) { private void addComponentViewerMenuEntry(final ComponentViewer c) {
Anchor menuEntry = new Anchor(c.getViewerName()); Anchor menuEntry = new Anchor(c.getViewerName());
@@ -0,0 +1,7 @@
package com.sap.sailing.gwt.ui.raceboard;
public enum RaceBoardViewMode {
CASCADING, ONE_SCREEN, TV_MODE
}