mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
added breadcrumb navigation to the LeaderboardPanel
This commit is contained in:
1 parent
6c1faa5a0b
commit
333fcab82c
10 files changed
+59
-58
No files matched your search
@@ -69,6 +69,13 @@ table td, table th {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.breadcrumbPanel-ActiveBreadcrumb, .breadcrumbPanel-InactiveBreadcrumb, .breadcrumbPanel-NextArrow {
|
||||
font-size: 20px;
|
||||
text-transform: uppercase;
|
||||
color: #a1a1a1;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.sapLogo {
|
||||
float: left;
|
||||
margin: 13px 0 0 12px;
|
||||
|
||||
@@ -240,17 +240,6 @@ input.magnifier {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.raceBoardPanelHeader {
|
||||
|
||||
}
|
||||
|
||||
.raceBoardPanelHeader-name {
|
||||
font-size: 20px;
|
||||
text-transform: uppercase;
|
||||
color: #a1a1a1;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.raceBoardNavigation {
|
||||
float: right;
|
||||
margin: 26px 0 0 0;
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ public class AdminConsole extends AbstractEntryPoint implements EventRefresher {
|
||||
tabPanel.add(raceMapPanel, stringMessages.map(), /* asHTML */ false);
|
||||
LeaderboardPanel defaultLeaderboardPanel = new LeaderboardPanel(sailingService, null,
|
||||
new CompetitorSelectionModel(/* hasMultiSelection */true),
|
||||
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, this, stringMessages);
|
||||
DefaultLeaderboardName.DEFAULT_LEADERBOARD_NAME, null, this, stringMessages);
|
||||
defaultLeaderboardPanel.setSize("90%", "90%");
|
||||
tabPanel.add(defaultLeaderboardPanel, stringMessages.defaultLeaderboard(), /* asHTML */ false);
|
||||
LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService, this, this, stringMessages);
|
||||
|
||||
+35
-8
@@ -1,17 +1,23 @@
|
||||
package com.sap.sailing.gwt.ui.leaderboard;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.RootPanel;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.gwt.ui.client.AbstractEntryPoint;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel;
|
||||
import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel;
|
||||
import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
|
||||
|
||||
|
||||
public class LeaderboardPage extends AbstractEntryPoint {
|
||||
private String leaderboardName;
|
||||
private String leaderboardGroupName;
|
||||
|
||||
@Override
|
||||
public void onModuleLoad() {
|
||||
|
||||
@@ -19,15 +25,10 @@ public class LeaderboardPage extends AbstractEntryPoint {
|
||||
sailingService.getLeaderboardNames(new AsyncCallback<List<String>>() {
|
||||
@Override
|
||||
public void onSuccess(List<String> leaderboardNames) {
|
||||
String leaderboardName = Window.Location.getParameter("name");
|
||||
leaderboardName = Window.Location.getParameter("name");
|
||||
leaderboardGroupName = Window.Location.getParameter("group");
|
||||
if (leaderboardNames.contains(leaderboardName)) {
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, null,
|
||||
new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName,
|
||||
LeaderboardPage.this, stringMessages);
|
||||
RootPanel.get().add(logoAndTitlePanel);
|
||||
RootPanel.get().add(leaderboardPanel);
|
||||
createLeaderboardPanel();
|
||||
} else {
|
||||
RootPanel.get().add(new Label(stringMessages.noSuchLeaderboard()));
|
||||
}
|
||||
@@ -39,4 +40,30 @@ public class LeaderboardPage extends AbstractEntryPoint {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void createLeaderboardPanel()
|
||||
{
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
|
||||
// create the breadcrumb navigation
|
||||
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;
|
||||
if(debugParam != null && !debugParam.isEmpty())
|
||||
link += "&gwt.codesvr=" + debugParam;
|
||||
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroupName));
|
||||
}
|
||||
BreadcrumbPanel breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, leaderboardName.toUpperCase());
|
||||
|
||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, null,
|
||||
new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, leaderboardGroupName,
|
||||
LeaderboardPage.this, stringMessages);
|
||||
|
||||
RootPanel.get().add(logoAndTitlePanel);
|
||||
RootPanel.get().add(breadcrumbPanel);
|
||||
RootPanel.get().add(leaderboardPanel);
|
||||
}
|
||||
}
|
||||
+5
-22
@@ -28,7 +28,6 @@ import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
|
||||
import com.google.gwt.user.cellview.client.ColumnSortList.ColumnSortInfo;
|
||||
import com.google.gwt.user.cellview.client.Header;
|
||||
import com.google.gwt.user.cellview.client.TextHeader;
|
||||
import com.google.gwt.user.client.Window;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.AbstractImagePrototype;
|
||||
import com.google.gwt.user.client.ui.Anchor;
|
||||
@@ -46,7 +45,6 @@ import com.google.gwt.view.client.SelectionChangeEvent;
|
||||
import com.google.gwt.view.client.SelectionChangeEvent.Handler;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.gwt.ui.client.Collator;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener;
|
||||
import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider;
|
||||
@@ -68,7 +66,6 @@ import com.sap.sailing.gwt.ui.shared.components.Component;
|
||||
import com.sap.sailing.gwt.ui.shared.components.IsEmbeddableComponent;
|
||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
|
||||
import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||
import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel;
|
||||
|
||||
/**
|
||||
* A leaderboard essentially consists of a table widget that in its columns displays the entries.
|
||||
@@ -783,21 +780,21 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
}
|
||||
|
||||
public LeaderboardPanel(SailingServiceAsync sailingService,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
||||
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
||||
this(sailingService, /* preSelectedRace */ null, competitorSelectionProvider, leaderboardName, errorReporter, stringConstants);
|
||||
this(sailingService, /* preSelectedRace */ null, competitorSelectionProvider, leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
|
||||
}
|
||||
|
||||
public LeaderboardPanel(SailingServiceAsync sailingService, RaceIdentifier preSelectedRace,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, String leaderboardName, String leaderboardGroupName,
|
||||
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
||||
this(sailingService, preSelectedRace, competitorSelectionProvider, new Timer(PlayModes.Replay, /* delayBetweenAutoAdvancesInMilliseconds */3000l),
|
||||
leaderboardName, errorReporter, stringConstants);
|
||||
leaderboardName, leaderboardGroupName, errorReporter, stringConstants);
|
||||
timer.setDelay(getDelayInMilliseconds()); // set time/delay before adding as listener
|
||||
}
|
||||
|
||||
public LeaderboardPanel(SailingServiceAsync sailingService, RaceIdentifier preSelectedRace,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName,
|
||||
CompetitorSelectionProvider competitorSelectionProvider, Timer timer, String leaderboardName, String leaderboardGroupName,
|
||||
ErrorReporter errorReporter, final StringMessages stringConstants) {
|
||||
this.sailingService = sailingService;
|
||||
this.preSelectedRace = preSelectedRace;
|
||||
@@ -851,20 +848,6 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta
|
||||
getLeaderboardTable().addColumnSortHandler(listHandler);
|
||||
loadCompleteLeaderboard(getLeaderboardDisplayDate());
|
||||
|
||||
// create the breadcrumb navigation
|
||||
// ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
||||
// String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
//
|
||||
// if(leaderboardGroup != null) {
|
||||
// String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroup.name;
|
||||
// if(debugParam != null && !debugParam.isEmpty())
|
||||
// link += "&gwt.codesvr=" + debugParam;
|
||||
// breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroup.name));
|
||||
// }
|
||||
// breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName());
|
||||
// mainPanel.add(breadcrumbPanel);
|
||||
|
||||
|
||||
contentPanel = new VerticalPanel();
|
||||
headerPanel = new DockPanel();
|
||||
DockPanel toolbarPanel = new DockPanel();
|
||||
|
||||
+3
-2
@@ -248,9 +248,10 @@ public class EditableLeaderboardPanel extends LeaderboardPanel {
|
||||
}
|
||||
}
|
||||
|
||||
public EditableLeaderboardPanel(SailingServiceAsync sailingService, String leaderboardName,
|
||||
public EditableLeaderboardPanel(SailingServiceAsync sailingService, String leaderboardName, String leaderboardGroupName,
|
||||
ErrorReporter errorReporter, StringMessages stringConstants) {
|
||||
super(sailingService, null, new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, errorReporter, stringConstants);
|
||||
super(sailingService, null, new CompetitorSelectionModel(/* hasMultiSelection */ true), leaderboardName, leaderboardGroupName,
|
||||
errorReporter, stringConstants);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+1
-6
@@ -20,13 +20,8 @@ public class LeaderboardEditPage extends AbstractEntryPoint {
|
||||
if (leaderboardNames.contains(leaderboardName)) {
|
||||
LogoAndTitlePanel logoAndTitlePanel = new LogoAndTitlePanel(stringMessages);
|
||||
logoAndTitlePanel.addStyleName("LogoAndTitlePanel");
|
||||
EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, leaderboardName,
|
||||
EditableLeaderboardPanel leaderboardPanel = new EditableLeaderboardPanel(sailingService, leaderboardName, null,
|
||||
LeaderboardEditPage.this, stringMessages);
|
||||
String padding = Window.Location.getParameter("padding");
|
||||
|
||||
if (padding != null && Boolean.valueOf(padding)) {
|
||||
leaderboardPanel.addStyleName("leftPaddedPanel");
|
||||
}
|
||||
RootPanel.get().add(logoAndTitlePanel);
|
||||
RootPanel.get().add(leaderboardPanel);
|
||||
} else {
|
||||
|
||||
+1
-1
@@ -138,7 +138,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
|
||||
RaceSelectionModel raceSelectionModel = new RaceSelectionModel();
|
||||
List<RaceIdentifier> singletonList = Collections.singletonList(selectedRace.getRaceIdentifier());
|
||||
raceSelectionModel.setSelection(singletonList);
|
||||
raceBoardPanel = new RaceBoardPanel(sailingService, raceSelectionModel, leaderboardName, leaderboardGroup,
|
||||
raceBoardPanel = new RaceBoardPanel(sailingService, raceSelectionModel, leaderboardName, leaderboardGroup.name,
|
||||
RaceBoardEntryPoint.this, stringMessages);
|
||||
raceBoardPanel.fillEvents(events);
|
||||
|
||||
|
||||
+5
-6
@@ -35,7 +35,6 @@ import com.sap.sailing.gwt.ui.client.Timer.PlayModes;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel;
|
||||
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings;
|
||||
import com.sap.sailing.gwt.ui.shared.EventDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.LegTimepointDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RaceDTO;
|
||||
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
|
||||
@@ -69,7 +68,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
private final RaceSelectionProvider raceSelectionProvider;
|
||||
|
||||
public RaceBoardPanel(SailingServiceAsync sailingService, RaceSelectionProvider raceSelectionProvider, String leaderboardName,
|
||||
LeaderboardGroupDTO leaderboardGroup, ErrorReporter errorReporter, final StringMessages stringMessages) {
|
||||
String leaderboardGroupName, ErrorReporter errorReporter, final StringMessages stringMessages) {
|
||||
this.sailingService = sailingService;
|
||||
this.raceSelectionProvider = raceSelectionProvider;
|
||||
raceSelectionProvider.addRaceSelectionChangeListener(this);
|
||||
@@ -89,11 +88,11 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
ArrayList<Pair<String, String>> breadcrumbLinksData = new ArrayList<Pair<String, String>>();
|
||||
String debugParam = Window.Location.getParameter("gwt.codesvr");
|
||||
|
||||
if(leaderboardGroup != null) {
|
||||
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroup.name;
|
||||
if(leaderboardGroupName != null) {
|
||||
String link = "/gwt/Spectator.html?leaderboardGroupName=" + leaderboardGroupName;
|
||||
if(debugParam != null && !debugParam.isEmpty())
|
||||
link += "&gwt.codesvr=" + debugParam;
|
||||
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroup.name));
|
||||
breadcrumbLinksData.add(new Pair<String, String>(link, leaderboardGroupName));
|
||||
}
|
||||
breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName());
|
||||
mainPanel.add(breadcrumbPanel);
|
||||
@@ -103,7 +102,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
|
||||
|
||||
// create the default leaderboard and select the right race
|
||||
LeaderboardPanel leaderboardPanel = new LeaderboardPanel(sailingService, selectedRaceIdentifier, competitorSelectionModel,
|
||||
timer, leaderboardName, errorReporter, stringMessages);
|
||||
timer, leaderboardName, leaderboardGroupName, errorReporter, stringMessages);
|
||||
|
||||
CollapsableComponentViewer<LeaderboardSettings> leaderboardViewer = new CollapsableComponentViewer<LeaderboardSettings>(
|
||||
leaderboardPanel, "100%", "100%", stringMessages);
|
||||
|
||||
+1
-1
@@ -480,7 +480,7 @@ public class OverviewEventPanel extends AbstractEventPanel {
|
||||
currentLeaderboard = boardToDisplay;
|
||||
CompetitorSelectionModel competitorSelectionModel = new CompetitorSelectionModel(true);
|
||||
displayedLeaderboardPanel = new LeaderboardPanel(sailingService, competitorSelectionModel,
|
||||
currentLeaderboard.name, errorReporter, stringConstants);
|
||||
currentLeaderboard.name, null, errorReporter, stringConstants);
|
||||
leaderboardPanel.add(displayedLeaderboardPanel);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user