Merge remote-tracking branch 'origin/master'

Conflicts:
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java
	java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java
This commit is contained in:
fmittag committed 2012-02-09 19:22:00 +01:00
commit 977a7efb9f
19 files changed
+219 -32

No files matched your search

@@ -16,7 +16,7 @@ public class LeaderboardPanelMock extends LeaderboardPanel {
public LeaderboardPanelMock(SailingServiceAsync sailingService,
String leaderboardName, ErrorReporter errorReporter,
StringMessages stringConstants) {
super(sailingService, null, new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, null, errorReporter, stringConstants);
super(sailingService, null, new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, null, errorReporter, stringConstants, null);
// TODO Auto-generated constructor stub
}
+1 -1
View File
@@ -5,7 +5,7 @@
<classpathentry exported="true" kind="lib" path="WEB-INF/classes/"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gflot-1.0.1.jar"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-maps.jar"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-servlet.jar" sourcepath="C:/apps/eclipse37RC4/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201112160242-rel-r37/gwt-2.4.0/gwt-user.jar"/>
<classpathentry exported="true" kind="lib" path="WEB-INF/lib/gwt-servlet.jar" sourcepath="C:/MyPrograms/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r37/gwt-2.4.0/gwt-user.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry exported="true" kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
@@ -4,6 +4,12 @@
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>SAP Sailing Analytics Leaderboard</title>
<meta content='width = device-width, initial-scale = 1.0, user-scalable = yes' name='viewport'>
<meta content='yes' name='apple-mobile-web-app-capable'>
<meta content='black' name='apple-mobile-web-app-status-bar-style'>
<!-- <link href='iphone-splash-screen.png' rel='apple-touch-startup-image'> -->
<link href='images/sap-sailing-app-icon.png' rel='apple-touch-icon-precomposed'>
<link href='http://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700,300italic,400italic,500italic,700italic' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="highcharts/js/highcharts.js"></script>
+1 -1
View File
@@ -30,7 +30,7 @@ body {
line-height: 1;
font-size: 14px;
font-weight: 400;
padding: 80px 0 120px 0;
padding: 80px 0 160px 0;
margin: 0;
color: #3b3b3b;
}
+2 -2
View File
@@ -292,12 +292,12 @@ input.magnifier {
}
.welcomeWidget-WelcomePanel{
float: right;
float: left;
width: 485px;
color: #3e3e3e;
}
.welcomeWidget-WelcomePanelWrapper {
margin: 104px 13px 0px 13px;
margin: 14px 13px 0px 13px;
max-width: 1000px;
height: 240px;
}
@@ -55,7 +55,7 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements EventR
tabPanel.add(raceMapPanel, stringMessages.map(), /* asHTML */ false);
final LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, LeaderboardSettingsFactory.getDefaultSettings(),
null, new CompetitorSelectionModel(/* hasMultiSelection */true),
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, null, this, stringMessages);
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, null, this, stringMessages, userAgentType);
defaultLeaderboardPanel.setSize("90%", "90%");
tabPanel.add(defaultLeaderboardPanel, stringMessages.defaultLeaderboard(), /* asHTML */ false);
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService, this, this, stringMessages);
@@ -40,12 +40,7 @@ public class RaceMapZoomSettings {
LatLngBounds newBounds = null;
if (typesToConsiderOnZoom != null) {
for (ZoomTypes type : typesToConsiderOnZoom) {
//Skip the calculation of the boat bounds, if the list contains TAILS.
//That's because the tails already contain the boats
if (type == ZoomTypes.BOATS && typesToConsiderOnZoom.contains(ZoomTypes.TAILS)) {
continue;
}
//Set the for selected attribute for the corresponding calculaters
//Set the forSelected attribute for the corresponding calculaters
if (type.calculater instanceof LatLngBoundsCalculaterForSelected) {
((LatLngBoundsCalculaterForSelected) type.calculater)
.setZoomOnlyToSelectedCompetitors(zoomToSelectedCompetitors);
@@ -9,6 +9,7 @@ import com.google.gwt.event.dom.client.KeyPressEvent;
import com.google.gwt.event.dom.client.KeyPressHandler;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.DialogBox;
@@ -17,6 +18,7 @@ import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.sap.sailing.gwt.ui.client.UserAgentChecker.UserAgentTypes;
public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
@@ -24,6 +26,7 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
private HTML serverResponseLabel;
private Button dialogCloseButton;
protected StringMessages stringMessages;
protected UserAgentTypes userAgentType;
/**
* Create a remote service proxy to talk to the server-side sailing service.
@@ -46,6 +49,7 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
public void onModuleLoad() {
stringMessages = GWT.create(StringMessages.class);
errorDialogBox = createErrorDialog();
userAgentType = UserAgentChecker.INSTANCE.checkUserAgent(Window.Navigator.getUserAgent());
ServiceDefTarget sailingServiceDef = (ServiceDefTarget) sailingService;
ServiceDefTarget userManagementServiceDef = (ServiceDefTarget) userManagementService;
String moduleBaseURL = GWT.getModuleBaseURL();
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.ui.client;
public interface UserAgentChecker {
public enum UserAgentTypes{ DESKTOP, MOBILE }
public enum UserAgentTypes{ DESKTOP, MOBILE, UNKNOWN }
public final UserAgentCheckerImpl INSTANCE = new UserAgentCheckerImpl();
@@ -59,7 +59,7 @@ public class LeaderboardPage extends AbstractEntryPoint {
BreadcrumbPanel breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, leaderboardName.toUpperCase());
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, LeaderboardSettingsFactory.getDefaultSettings(),
new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, leaderboardGroupName,
LeaderboardPage.this, stringMessages);
LeaderboardPage.this, stringMessages, userAgentType);
RootPanel.get().add(logoAndTitlePanel);
RootPanel.get().add(breadcrumbPanel);
@@ -43,6 +43,7 @@ import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.MultiSelectionModel;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
import com.google.gwt.view.client.SelectionModel;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.gwt.ui.client.Collator;
@@ -56,6 +57,7 @@ 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.client.Timer.PlayStates;
import com.sap.sailing.gwt.ui.client.UserAgentChecker.UserAgentTypes;
import com.sap.sailing.gwt.ui.leaderboard.LegDetailColumn.LegDetailField;
import com.sap.sailing.gwt.ui.shared.CompetitorDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
@@ -99,7 +101,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
private final CellTable<LeaderboardRowDTO> leaderboardTable;
private final MultiSelectionModel<LeaderboardRowDTO> leaderboardSelectionModel;
private final SelectionModel<LeaderboardRowDTO> leaderboardSelectionModel;
private ListDataProvider<LeaderboardRowDTO> data;
@@ -788,22 +790,24 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
}
public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings,
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
ErrorReporter errorReporter, final StringMessages stringConstants) {
this(sailingService, settings, /* preSelectedRace */ null, competitorSelectionProvider, leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringConstants,
final UserAgentTypes userAgentType) {
this(sailingService, settings, /* preSelectedRace */null, competitorSelectionProvider, leaderboardName,
leaderboardGroupName, errorReporter, stringConstants, userAgentType);
}
public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
ErrorReporter errorReporter, final StringMessages stringConstants) {
ErrorReporter errorReporter, final StringMessages stringConstants, final UserAgentTypes userAgentType) {
this(sailingService, settings, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
leaderboardName, leaderboardGroupName, errorReporter, stringConstants, userAgentType);
timer.setDelay(getDelayInMilliseconds()); // set time/delay before adding as listener
}
public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName, String leaderboardGroupName,
ErrorReporter errorReporter, final StringMessages stringConstants) {
ErrorReporter errorReporter, final StringMessages stringConstants, final UserAgentTypes userAgentType) {
this.sailingService = sailingService;
this.preSelectedRace = preSelectedRace;
this.competitorSelectionProvider = competitorSelectionProvider;
@@ -836,12 +840,16 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
leaderboardTable = new CellTableWithStylableHeaders<LeaderboardRowDTO>(
/* pageSize */100, tableResources);
getLeaderboardTable().setWidth("100%");
leaderboardSelectionModel = new MultiSelectionModel<LeaderboardRowDTO>();
if (userAgentType == UserAgentTypes.MOBILE) {
leaderboardSelectionModel = new ToggleSelectionModel<LeaderboardRowDTO>();
} else {
leaderboardSelectionModel = new MultiSelectionModel<LeaderboardRowDTO>();
}
leaderboardSelectionModel.addSelectionChangeHandler(new Handler() {
@Override
public void onSelectionChange(SelectionChangeEvent event) {
List<CompetitorDTO> selection = new ArrayList<CompetitorDTO>();
for (LeaderboardRowDTO row : leaderboardSelectionModel.getSelectedSet()) {
for (LeaderboardRowDTO row : getSelectedRows()) {
selection.add(row.competitor);
}
LeaderboardPanel.this.competitorSelectionProvider.setSelection(selection,
@@ -1092,7 +1100,7 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
getLeaderboardTable().getColumnSortList().push(getRankColumn());
}
//Reselect the selected rows
leaderboardSelectionModel.clear();
clearSelection();
for (LeaderboardRowDTO row : data.getList()) {
if (competitorSelectionProvider.isSelected(row.competitor)) {
leaderboardSelectionModel.setSelected(row, true);
@@ -1101,6 +1109,12 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
}
}
private void clearSelection() {
for (LeaderboardRowDTO row : getData().getList()) {
leaderboardSelectionModel.setSelected(row, false);
}
}
/**
* Considers the {@link #preSelectedRace} field as follows: if <code>null</code>, all race columns that <code>leaderboard</code>
* adds on top of the existing {@link #getLeaderboard() leaderboard} are returned. Otherwise, the column list obtained as described before
@@ -1565,4 +1579,14 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
public boolean hasBusyIndicator() {
return true;
}
private Iterable<LeaderboardRowDTO> getSelectedRows() {
ArrayList<LeaderboardRowDTO> selectedRows = new ArrayList<LeaderboardRowDTO>();
for (LeaderboardRowDTO row : getData().getList()) {
if (leaderboardSelectionModel.isSelected(row)) {
selectedRows.add(row);
}
}
return selectedRows;
}
}
@@ -0,0 +1,156 @@
package com.sap.sailing.gwt.ui.leaderboard;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.google.gwt.view.client.DefaultSelectionEventManager;
import com.google.gwt.view.client.DefaultSelectionEventManager.EventTranslator;
import com.google.gwt.view.client.MultiSelectionModel;
import com.google.gwt.view.client.ProvidesKey;
import com.google.gwt.view.client.SelectionChangeEvent;
import com.google.gwt.view.client.SelectionModel;
import com.google.gwt.view.client.SelectionModel.AbstractSelectionModel;
/**
* A selection model with multiple selected elements.<br \>
* If you select an element, the selected state of it gets toggled.<br \>
* <br \>
*
* This only works, because of some reasons:<br \>
* <li>It does NOT extend the {@link MultiSelectionModel}.<br \>
* The {@link DefaultSelectionEventManager#onCellPreview(com.google.gwt.view.client.CellPreviewEvent)
* DefaultSelectionEventManager} handles MultiSelectinModels and other SelectionModels different.<br \>
* For example the selection of a MultiSelectionModel is cleared, if a normal click on the table is performed.</li> <li>
* The {@link DefaultSelectionEventManager} doesn't clear the selection of other SelectionModels, when a selection is
* performed.</li> <li>The {@link ToggleSelectionModel#isSelected(Object)} method does NOT perform a
* {@link ToggleSelectionModel#resolveChanges()}.<br \>
* Would result in "blinking" boats in the race board.</li><br \>
* <br \>
*
* If this model doesn't work anymore, have a look if the code of the
* {@link DefaultSelectionEventManager#onCellPreview(com.google.gwt.view.client.CellPreviewEvent)
* DefaultSelectionEventManager} has changed (This model was developed with GWT 2.4). Therefore see the out commented
* code furhter down.<br \><br \>
*
* If you can't fix the issue, have a look at the
* {@link DefaultSelectionEventManager#createCustomManager(com.google.gwt.view.client.DefaultSelectionEventManager.EventTranslator)
* DefaultSelectionEventManager.createCustomManager(...)} and a custom {@link EventTranslator}.
*
* @author Lennart Hensler (D054527)
*/
//public void onCellPreview(CellPreviewEvent<T> event) {
// // Early exit if selection is already handled or we are editing.
// if (event.isCellEditing() || event.isSelectionHandled()) {
// return;
// }
//
// // Early exit if we do not have a SelectionModel.
// HasData<T> display = event.getDisplay();
// SelectionModel<? super T> selectionModel = display.getSelectionModel();
// if (selectionModel == null) {
// return;
// }
//
// // Check for user defined actions.
// SelectAction action = (translator == null) ? SelectAction.DEFAULT
// : translator.translateSelectionEvent(event);
//
// // Handle the event based on the SelectionModel type.
// if (selectionModel instanceof MultiSelectionModel<?>) {
// // Add shift key support for MultiSelectionModel.
// handleMultiSelectionEvent(event, action,
// (MultiSelectionModel<? super T>) selectionModel);
// } else {
// // Use the standard handler.
// handleSelectionEvent(event, action, selectionModel);
// }
// }
public class ToggleSelectionModel<T> extends AbstractSelectionModel<T> {
//!!Before you change something in this Model read the description!!
// Ensure one value per key
private final HashMap<Object, T> selectedSet = new HashMap<Object, T>();
private final HashMap<T, Boolean> selectionChanges = new HashMap<T, Boolean>();
public ToggleSelectionModel() {
this(null);
}
public ToggleSelectionModel(ProvidesKey<T> keyProvider) {
super(keyProvider);
}
/**
* Get the set of selected items as a copy.
*
* @return the set of selected items
*/
public Set<T> getSelectedSet() {
resolveChanges();
return new HashSet<T>(selectedSet.values());
}
@Override
public boolean isSelected(T object) {
return selectedSet.containsKey(getKey(object));
}
/**
* Sets the selection state of an object.<br \>
* If <code>selected</code> is <code>true</code>, then the selection state of the object is toggled.<br \>
* Else the state is forced to <code>false</code>. (Needed to clear the model via the methods of the {@link SelectionModel})
*/
@Override
public void setSelected(T object, boolean selected) {
if (selected) {
selectionChanges.put(object, !isSelected(object));
} else {
selectionChanges.put(object, false);
}
scheduleSelectionChangeEvent();
}
@Override
protected void fireSelectionChangeEvent() {
if (isEventScheduled()) {
setEventCancelled(true);
}
resolveChanges();
}
private void resolveChanges() {
if (selectionChanges.isEmpty()) {
return;
}
boolean changed = false;
for (Map.Entry<T, Boolean> entry : selectionChanges.entrySet()) {
T object = entry.getKey();
boolean selected = entry.getValue();
Object key = getKey(object);
T oldValue = selectedSet.get(key);
if (selected) {
if (oldValue == null || !oldValue.equals(object)) {
selectedSet.put(getKey(object), object);
changed = true;
}
} else {
if (oldValue != null) {
selectedSet.remove(key);
changed = true;
}
}
}
selectionChanges.clear();
// Fire a selection change event.
if (changed) {
SelectionChangeEvent.fire(this);
}
}
}
@@ -18,6 +18,7 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
import com.sap.sailing.gwt.ui.client.ErrorReporter;
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.UserAgentChecker.UserAgentTypes;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.shared.CompetitorDTO;
import com.sap.sailing.gwt.ui.shared.LeaderboardDTO;
@@ -249,9 +250,9 @@ public class EditableLeaderboardPanel extends LeaderboardPanel {
}
public EditableLeaderboardPanel(SailingServiceAsync sailingService, String leaderboardName, String leaderboardGroupName,
ErrorReporter errorReporter, StringMessages stringConstants) {
ErrorReporter errorReporter, StringMessages stringConstants, UserAgentTypes userAgentType) {
super(sailingService, null, new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, leaderboardGroupName,
errorReporter, stringConstants);
errorReporter, stringConstants, userAgentType);
}
/**
@@ -21,7 +21,7 @@ public class LeaderboardEditPage extends AbstractEntryPoint {
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, leaderboardName, null,
LeaderboardEditPage.this, stringMessages);
LeaderboardEditPage.this, stringMessages, userAgentType);
RootPanel.get().add(logoAndTitlePanel);
RootPanel.get().add(leaderboardPanel);
} else {
@@ -141,7 +141,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
List<RaceIdentifier> singletonList = Collections.singletonList(selectedRace.getRaceIdentifier());
raceSelectionModel.setSelection(singletonList);
raceBoardPanel = new RaceBoardPanel(sailingService, raceSelectionModel, leaderboardName, leaderboardGroupName,
RaceBoardEntryPoint.this, stringMessages);
RaceBoardEntryPoint.this, stringMessages, userAgentType);
raceBoardPanel.fillEvents(events);
logoAndTitlePanel.add(raceBoardPanel.getNavigationWidget());
@@ -33,6 +33,7 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
import com.sap.sailing.gwt.ui.client.TimePanel;
import com.sap.sailing.gwt.ui.client.Timer;
import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
import com.sap.sailing.gwt.ui.client.UserAgentChecker.UserAgentTypes;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
@@ -70,7 +71,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
private final RaceSelectionProvider raceSelectionProvider;
public RaceBoardPanel(SailingServiceAsync sailingService, RaceSelectionProvider raceSelectionProvider, String leaderboardName,
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages) {
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages, UserAgentTypes userAgentType) {
this.sailingService = sailingService;
this.raceSelectionProvider = raceSelectionProvider;
raceSelectionProvider.addRaceSelectionChangeListener(this);
@@ -105,7 +106,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
// create the default leaderboard and select the right race
LeaderboardSettings leaderBoardSettings = LeaderboardSettingsFactory.getSettingsForPlayMode(timer.getPlayMode());
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, leaderBoardSettings, selectedRaceIdentifier, competitorSelectionModel,
timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages);
timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages, userAgentType);
CollapsableComponentViewer<LeaderboardSettings> leaderboardViewer = new CollapsableComponentViewer<LeaderboardSettings>(
leaderboardPanel, "100%", "100%", stringMessages);
@@ -226,7 +227,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
}
break;
}
timer.setPlayMode(PlayModes.Live);
//timer.setPlayMode(PlayModes.Live);
sailingService.getRaceTimesInfo(selectedRace.getRaceIdentifier(),
new AsyncCallback<RaceTimesInfoDTO>() {
@Override
@@ -480,7 +480,7 @@ public class OverviewEventPanel extends AbstractEventPanel {
currentLeaderboard = boardToDisplay;
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(true);
displayedLeaderboardPanel = new LeaderboardPanel(sailingService, null, competitorSelectionModel,
currentLeaderboard.name, null, errorReporter, stringConstants);
currentLeaderboard.name, null, errorReporter, stringConstants, null);
leaderboardPanel.add(displayedLeaderboardPanel);
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 595 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 688 B