mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
- added new LeaderboardSettingsFactory for creating different kind of settings
This commit is contained in:
1 parent
6000aed5f1
commit
9299fa1210
11 files changed
+123
-33
No files matched your search
+3
-2
@@ -15,6 +15,7 @@ import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
|||||||
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
import com.sap.sailing.gwt.ui.client.EventDisplayer;
|
||||||
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
import com.sap.sailing.gwt.ui.client.EventRefresher;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||||
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
|
||||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
|
|
||||||
public class AdminConsole extends AbstractEntryPoint implements EventRefresher {
|
public class AdminConsole extends AbstractEntryPoint implements EventRefresher {
|
||||||
@@ -52,8 +53,8 @@ public class AdminConsole extends AbstractEntryPoint implements EventRefresher {
|
|||||||
eventDisplayers.add(raceMapPanel);
|
eventDisplayers.add(raceMapPanel);
|
||||||
raceMapPanel.setSize("90%", "90%");
|
raceMapPanel.setSize("90%", "90%");
|
||||||
tabPanel.add(raceMapPanel, stringMessages.map(), /* asHTML */ false);
|
tabPanel.add(raceMapPanel, stringMessages.map(), /* asHTML */ false);
|
||||||
LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, null,
|
LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, LeaderboardSettingsFactory.getDefaultSettings(),
|
||||||
new CompetitorSelectionModel(/* hasMultiSelection */true),
|
null, new CompetitorSelectionModel(/* hasMultiSelection */true),
|
||||||
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, null, this, stringMessages);
|
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, null, this, stringMessages);
|
||||||
defaultLeaderboardPanel.setSize("90%", "90%");
|
defaultLeaderboardPanel.setSize("90%", "90%");
|
||||||
tabPanel.add(defaultLeaderboardPanel, stringMessages.defaultLeaderboard(), /* asHTML */ false);
|
tabPanel.add(defaultLeaderboardPanel, stringMessages.defaultLeaderboard(), /* asHTML */ false);
|
||||||
|
|||||||
+4
-2
@@ -46,10 +46,12 @@ public abstract class AbstractEntryPoint implements EntryPoint, ErrorReporter {
|
|||||||
public void onModuleLoad() {
|
public void onModuleLoad() {
|
||||||
stringMessages = GWT.create(StringMessages.class);
|
stringMessages = GWT.create(StringMessages.class);
|
||||||
errorDialogBox = createErrorDialog();
|
errorDialogBox = createErrorDialog();
|
||||||
ServiceDefTarget serviceDef = (ServiceDefTarget) sailingService;
|
ServiceDefTarget sailingServiceDef = (ServiceDefTarget) sailingService;
|
||||||
|
ServiceDefTarget userManagementServiceDef = (ServiceDefTarget) userManagementService;
|
||||||
String moduleBaseURL = GWT.getModuleBaseURL();
|
String moduleBaseURL = GWT.getModuleBaseURL();
|
||||||
String baseURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf('/', moduleBaseURL.length()-2)+1);
|
String baseURL = moduleBaseURL.substring(0, moduleBaseURL.lastIndexOf('/', moduleBaseURL.length()-2)+1);
|
||||||
serviceDef.setServiceEntryPoint(baseURL + "sailing");
|
sailingServiceDef.setServiceEntryPoint(baseURL + "sailing");
|
||||||
|
userManagementServiceDef.setServiceEntryPoint(baseURL + "usermanagement");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+12
-14
@@ -786,21 +786,21 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public LeaderboardPanel(SailingServiceAsync sailingService,
|
public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings,
|
||||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
||||||
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
||||||
this(sailingService, /* preSelectedRace */ null, competitorSelectionProvider, leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
|
this(sailingService, settings, /* preSelectedRace */ null, competitorSelectionProvider, leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LeaderboardPanel(SailingServiceAsync sailingService, RaceIdentifier preSelectedRace,
|
public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
|
||||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
||||||
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
||||||
this(sailingService, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
|
this(sailingService, settings, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
|
||||||
leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
|
leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
|
||||||
timer.setDelay(getDelayInMilliseconds()); // set time/delay before adding as listener
|
timer.setDelay(getDelayInMilliseconds()); // set time/delay before adding as listener
|
||||||
}
|
}
|
||||||
|
|
||||||
public LeaderboardPanel(SailingServiceAsync sailingService, RaceIdentifier preSelectedRace,
|
public LeaderboardPanel(SailingServiceAsync sailingService, LeaderboardSettings settings, RaceIdentifier preSelectedRace,
|
||||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName, String leaderboardGroupName,
|
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName, String leaderboardGroupName,
|
||||||
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
||||||
this.sailingService = sailingService;
|
this.sailingService = sailingService;
|
||||||
@@ -811,18 +811,16 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
|||||||
this.errorReporter = errorReporter;
|
this.errorReporter = errorReporter;
|
||||||
this.stringConstants = stringConstants;
|
this.stringConstants = stringConstants;
|
||||||
this.selectedLegDetails = new ArrayList<DetailType>();
|
this.selectedLegDetails = new ArrayList<DetailType>();
|
||||||
this.selectedLegDetails.add(DetailType.DISTANCE_TRAVELED);
|
|
||||||
this.selectedLegDetails.add(DetailType.AVERAGE_SPEED_OVER_GROUND_IN_KNOTS);
|
|
||||||
this.selectedLegDetails.add(DetailType.RANK_GAIN);
|
|
||||||
this.selectedRaceDetails = new ArrayList<DetailType>();
|
this.selectedRaceDetails = new ArrayList<DetailType>();
|
||||||
this.selectedRaceDetails.add(DetailType.DISPLAY_LEGS);
|
|
||||||
this.selectedRaceColumns = new ArrayList<RaceInLeaderboardDTO>();
|
this.selectedRaceColumns = new ArrayList<RaceInLeaderboardDTO>();
|
||||||
this.selectedManeuverDetails = new ArrayList<DetailType>();
|
this.selectedManeuverDetails = new ArrayList<DetailType>();
|
||||||
selectedManeuverDetails.add(DetailType.TACK);
|
|
||||||
selectedManeuverDetails.add(DetailType.JIBE);
|
selectedLegDetails.addAll(settings.getLegDetailsToShow());
|
||||||
selectedManeuverDetails.add(DetailType.PENALTY_CIRCLE);
|
selectedManeuverDetails.addAll(settings.getManeuverDetailsToShow());
|
||||||
delayInMilliseconds = 0l;
|
selectedRaceDetails.addAll(settings.getRaceDetailsToShow());
|
||||||
autoExpandFirstRace = false;
|
delayInMilliseconds = settings.getDelayInMilliseconds();
|
||||||
|
autoExpandFirstRace = settings.isAutoExpandFirstRace();
|
||||||
|
|
||||||
this.timer = timer;
|
this.timer = timer;
|
||||||
timer.addPlayStateListener(this);
|
timer.addPlayStateListener(this);
|
||||||
timer.addTimeListener(this);
|
timer.addTimeListener(this);
|
||||||
|
|||||||
+60
@@ -0,0 +1,60 @@
|
|||||||
|
package com.sap.sailing.gwt.ui.leaderboard;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import com.sap.sailing.domain.common.DetailType;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.RaceInLeaderboardDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.shared.UserDTO;
|
||||||
|
import com.sap.sailing.gwt.ui.usermanagement.UserRoles;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A factory class creating leaderboard settings for different contexts (user role, live or replay mode, etc.
|
||||||
|
*/
|
||||||
|
public class LeaderboardSettingsFactory {
|
||||||
|
|
||||||
|
public static LeaderboardSettings getSettingsForUserRole(UserDTO user)
|
||||||
|
{
|
||||||
|
LeaderboardSettings settings = null;
|
||||||
|
if (user != null && user.roles.contains(UserRoles.moderator.name())) {
|
||||||
|
ArrayList<DetailType> maneuverDetails = new ArrayList<DetailType>();
|
||||||
|
maneuverDetails.add(DetailType.TACK);
|
||||||
|
maneuverDetails.add(DetailType.JIBE);
|
||||||
|
maneuverDetails.add(DetailType.PENALTY_CIRCLE);
|
||||||
|
|
||||||
|
ArrayList<DetailType> legDetails = new ArrayList<DetailType>();
|
||||||
|
legDetails.add(DetailType.DISTANCE_TRAVELED);
|
||||||
|
legDetails.add(DetailType.AVERAGE_SPEED_OVER_GROUND_IN_KNOTS);
|
||||||
|
legDetails.add(DetailType.RANK_GAIN);
|
||||||
|
|
||||||
|
ArrayList<DetailType> raceDetails = new ArrayList<DetailType>();
|
||||||
|
raceDetails.add(DetailType.DISPLAY_LEGS);
|
||||||
|
|
||||||
|
ArrayList<RaceInLeaderboardDTO> raceColumns = new ArrayList<RaceInLeaderboardDTO>();
|
||||||
|
|
||||||
|
settings = new LeaderboardSettings(maneuverDetails, legDetails, raceDetails, raceColumns, true, 0l, 0l);
|
||||||
|
} else {
|
||||||
|
// anonymous user
|
||||||
|
settings = getDefaultSettings();
|
||||||
|
}
|
||||||
|
return settings;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LeaderboardSettings getDefaultSettings() {
|
||||||
|
ArrayList<DetailType> maneuverDetails = new ArrayList<DetailType>();
|
||||||
|
maneuverDetails.add(DetailType.TACK);
|
||||||
|
maneuverDetails.add(DetailType.JIBE);
|
||||||
|
maneuverDetails.add(DetailType.PENALTY_CIRCLE);
|
||||||
|
|
||||||
|
ArrayList<DetailType> legDetails = new ArrayList<DetailType>();
|
||||||
|
legDetails.add(DetailType.DISTANCE_TRAVELED);
|
||||||
|
legDetails.add(DetailType.AVERAGE_SPEED_OVER_GROUND_IN_KNOTS);
|
||||||
|
legDetails.add(DetailType.RANK_GAIN);
|
||||||
|
|
||||||
|
ArrayList<DetailType> raceDetails = new ArrayList<DetailType>();
|
||||||
|
raceDetails.add(DetailType.DISPLAY_LEGS);
|
||||||
|
|
||||||
|
ArrayList<RaceInLeaderboardDTO> raceColumns = new ArrayList<RaceInLeaderboardDTO>();
|
||||||
|
|
||||||
|
return new LeaderboardSettings(maneuverDetails, legDetails, raceDetails, raceColumns, true, 0l, 0l);
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-14
@@ -34,6 +34,7 @@ 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.PlayModes;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||||
|
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory;
|
||||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||||
@@ -41,7 +42,6 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
|||||||
import com.sap.sailing.gwt.ui.shared.UserDTO;
|
import com.sap.sailing.gwt.ui.shared.UserDTO;
|
||||||
import com.sap.sailing.gwt.ui.shared.components.ComponentViewer;
|
import com.sap.sailing.gwt.ui.shared.components.ComponentViewer;
|
||||||
import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
|
import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
|
||||||
import com.sap.sailing.gwt.ui.usermanagement.UserRoles;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A panel showing a list of components visualizing a race from the events announced by calls to {@link #fillEvents(List)}.
|
* A panel showing a list of components visualizing a race from the events announced by calls to {@link #fillEvents(List)}.
|
||||||
@@ -92,8 +92,6 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
|||||||
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
||||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||||
|
|
||||||
getUserSpecificLeaderBoardSettings(user);
|
|
||||||
|
|
||||||
if(leaderboardGroupName != null) {
|
if(leaderboardGroupName != null) {
|
||||||
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName;
|
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName;
|
||||||
if(debugParam != null && !debugParam.isEmpty())
|
if(debugParam != null && !debugParam.isEmpty())
|
||||||
@@ -107,7 +105,8 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
|||||||
componentsNavigationPanel.addStyleName("raceBoardNavigation");
|
componentsNavigationPanel.addStyleName("raceBoardNavigation");
|
||||||
|
|
||||||
// create the default leaderboard and select the right race
|
// create the default leaderboard and select the right race
|
||||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, selectedRaceIdentifier, competitorSelectionModel,
|
LeaderboardSettings leaderBoardSettings = LeaderboardSettingsFactory.getSettingsForUserRole(user);
|
||||||
|
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, leaderBoardSettings, selectedRaceIdentifier, competitorSelectionModel,
|
||||||
timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages);
|
timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages);
|
||||||
|
|
||||||
CollapsableComponentViewer<LeaderboardSettings> leaderboardViewer = new CollapsableComponentViewer<LeaderboardSettings>(
|
CollapsableComponentViewer<LeaderboardSettings> leaderboardViewer = new CollapsableComponentViewer<LeaderboardSettings>(
|
||||||
@@ -141,16 +140,6 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
|||||||
timePanel = new TimePanel(timer, stringMessages);
|
timePanel = new TimePanel(timer, stringMessages);
|
||||||
}
|
}
|
||||||
|
|
||||||
private LeaderboardSettings getUserSpecificLeaderBoardSettings(UserDTO user)
|
|
||||||
{
|
|
||||||
LeaderboardSettings settings = null;
|
|
||||||
if (user != null && user.roles.contains(UserRoles.moderator.name())) {
|
|
||||||
|
|
||||||
} else {
|
|
||||||
// anonymous user
|
|
||||||
}
|
|
||||||
return settings;
|
|
||||||
}
|
|
||||||
|
|
||||||
private void addComponentViewerMenuEntry(final ComponentViewer c) {
|
private void addComponentViewerMenuEntry(final ComponentViewer c) {
|
||||||
Anchor menuEntry = new Anchor(c.getViewerName());
|
Anchor menuEntry = new Anchor(c.getViewerName());
|
||||||
|
|||||||
+34
@@ -69,6 +69,7 @@ import com.sap.sailing.domain.common.WindSource;
|
|||||||
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
|
||||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||||
import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
|
import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
|
||||||
|
import com.sap.sailing.domain.common.impl.Util;
|
||||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||||
import com.sap.sailing.domain.leaderboard.Leaderboard.Entry;
|
import com.sap.sailing.domain.leaderboard.Leaderboard.Entry;
|
||||||
@@ -754,6 +755,39 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
|
|||||||
Iterable<TrackedLeg> trackedLegs = trackedRace.getTrackedLegs();
|
Iterable<TrackedLeg> trackedLegs = trackedRace.getTrackedLegs();
|
||||||
int i = 1;
|
int i = 1;
|
||||||
for (TrackedLeg trackedLeg : trackedLegs) {
|
for (TrackedLeg trackedLeg : trackedLegs) {
|
||||||
|
if(i == 1) {
|
||||||
|
// try to calculate the point in time where all boats passed the start line in a small time frame
|
||||||
|
Waypoint from = trackedLeg.getLeg().getFrom();
|
||||||
|
Iterable<MarkPassing> markPassings = trackedRace.getMarkPassingsInOrder(from);
|
||||||
|
int markPassingsCount = Util.size(markPassings);
|
||||||
|
|
||||||
|
if(markPassings != null && markPassingsCount >= 4) {
|
||||||
|
long maxTimeFrameInMs = 60 * 1000; // = 1 minute
|
||||||
|
Iterator<MarkPassing> iterator = markPassings.iterator();
|
||||||
|
long currentTimeToCheck = 0;
|
||||||
|
int enoughCompetitors = markPassingsCount / 2;
|
||||||
|
int currentCompetitorsInTime = 0;
|
||||||
|
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
MarkPassing currentMarkPassing = iterator.next();
|
||||||
|
long diff = currentMarkPassing.getTimePoint().asMillis() - currentTimeToCheck;
|
||||||
|
if(diff > maxTimeFrameInMs) {
|
||||||
|
// reset the check
|
||||||
|
currentCompetitorsInTime = 0;
|
||||||
|
currentTimeToCheck = currentMarkPassing.getTimePoint().asMillis();
|
||||||
|
} else {
|
||||||
|
currentCompetitorsInTime++;
|
||||||
|
if(currentCompetitorsInTime == enoughCompetitors) {
|
||||||
|
LegTimepointDTO legTimepointDTO = new LegTimepointDTO("L0");
|
||||||
|
legTimepointDTO.firstPassingDate = currentMarkPassing.getTimePoint().asDate();
|
||||||
|
result.add(legTimepointDTO);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Waypoint to = trackedLeg.getLeg().getTo();
|
Waypoint to = trackedLeg.getLeg().getTo();
|
||||||
Iterable<MarkPassing> markPassings = trackedRace.getMarkPassingsInOrder(to);
|
Iterable<MarkPassing> markPassings = trackedRace.getMarkPassingsInOrder(to);
|
||||||
if(markPassings != null) {
|
if(markPassings != null) {
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ public class UserDTO implements IsSerializable {
|
|||||||
|
|
||||||
public List<String> roles;
|
public List<String> roles;
|
||||||
|
|
||||||
|
public UserDTO() {
|
||||||
|
}
|
||||||
|
|
||||||
public UserDTO(String principalName) {
|
public UserDTO(String principalName) {
|
||||||
super();
|
super();
|
||||||
this.principalName = principalName;
|
this.principalName = principalName;
|
||||||
|
|||||||
+1
-1
@@ -479,7 +479,7 @@ public class OverviewEventPanel extends AbstractEventPanel {
|
|||||||
}
|
}
|
||||||
currentLeaderboard = boardToDisplay;
|
currentLeaderboard = boardToDisplay;
|
||||||
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(true);
|
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(true);
|
||||||
displayedLeaderboardPanel = new LeaderboardPanel(sailingService, competitorSelectionModel,
|
displayedLeaderboardPanel = new LeaderboardPanel(sailingService, null, competitorSelectionModel,
|
||||||
currentLeaderboard.name, null, errorReporter, stringConstants);
|
currentLeaderboard.name, null, errorReporter, stringConstants);
|
||||||
leaderboardPanel.add(displayedLeaderboardPanel);
|
leaderboardPanel.add(displayedLeaderboardPanel);
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -47,6 +47,7 @@
|
|||||||
<source path='components'/>
|
<source path='components'/>
|
||||||
<source path='adminconsole'/>
|
<source path='adminconsole'/>
|
||||||
<source path='leaderboard'/>
|
<source path='leaderboard'/>
|
||||||
|
<source path='usermanagement'/>
|
||||||
<source path='shared'/>
|
<source path='shared'/>
|
||||||
<source path='test'/>
|
<source path='test'/>
|
||||||
</module>
|
</module>
|
||||||
+1
@@ -34,5 +34,6 @@
|
|||||||
<source path='raceboard'/>
|
<source path='raceboard'/>
|
||||||
<source path='leaderboard'/>
|
<source path='leaderboard'/>
|
||||||
<source path='adminconsole'/>
|
<source path='adminconsole'/>
|
||||||
|
<source path='usermanagement'/>
|
||||||
<source path='shared'/>
|
<source path='shared'/>
|
||||||
</module>
|
</module>
|
||||||
+1
@@ -37,5 +37,6 @@
|
|||||||
<source path='spectator'/>
|
<source path='spectator'/>
|
||||||
<source path='leaderboard'/>
|
<source path='leaderboard'/>
|
||||||
<source path='adminconsole'/>
|
<source path='adminconsole'/>
|
||||||
|
<source path='usermanagement'/>
|
||||||
<source path='test'/>
|
<source path='test'/>
|
||||||
</module>
|
</module>
|
||||||
Reference in new issue
Block a user