From 333fcab82c5d984522bbcdb2cb0ba189274b14a5 Mon Sep 17 00:00:00 2001 From: fmittag Date: Fri, 3 Feb 2012 18:31:55 +0100 Subject: [PATCH] added breadcrumb navigation to the LeaderboardPanel --- java/com.sap.sailing.gwt.ui/Leaderboard.css | 7 +++ java/com.sap.sailing.gwt.ui/RaceBoard.css | 11 ----- .../gwt/ui/adminconsole/AdminConsole.java | 2 +- .../gwt/ui/leaderboard/LeaderboardPage.java | 43 +++++++++++++++---- .../gwt/ui/leaderboard/LeaderboardPanel.java | 27 +++--------- .../EditableLeaderboardPanel.java | 5 ++- .../leaderboardedit/LeaderboardEditPage.java | 7 +-- .../gwt/ui/raceboard/RaceBoardEntryPoint.java | 2 +- .../gwt/ui/raceboard/RaceBoardPanel.java | 11 +++-- .../gwt/ui/spectator/OverviewEventPanel.java | 2 +- 10 files changed, 59 insertions(+), 58 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/Leaderboard.css b/java/com.sap.sailing.gwt.ui/Leaderboard.css index 944ce73017e..11f69db3cda 100755 --- a/java/com.sap.sailing.gwt.ui/Leaderboard.css +++ b/java/com.sap.sailing.gwt.ui/Leaderboard.css @@ -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; diff --git a/java/com.sap.sailing.gwt.ui/RaceBoard.css b/java/com.sap.sailing.gwt.ui/RaceBoard.css index 0646f052bab..8943f4f8716 100644 --- a/java/com.sap.sailing.gwt.ui/RaceBoard.css +++ b/java/com.sap.sailing.gwt.ui/RaceBoard.css @@ -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; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsole.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsole.java index 18071a42a82..57d360c5e9f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsole.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AdminConsole.java @@ -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); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPage.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPage.java index 660138676f4..49dc0f0b8db 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPage.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPage.java @@ -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>() { @Override public void onSuccess(List 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> breadcrumbLinksData = new ArrayList>(); + 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(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); + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index fe20f814c52..0dbb992a7b4 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -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; @@ -850,20 +847,6 @@ public class LeaderboardPanel extends FormPanel implements TimeListener, PlaySta listHandler = new ListHandler(getData().getList()); getLeaderboardTable().addColumnSortHandler(listHandler); loadCompleteLeaderboard(getLeaderboardDisplayDate()); - - // create the breadcrumb navigation -// ArrayList> breadcrumbLinksData = new ArrayList>(); -// 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(link, leaderboardGroup.name)); -// } -// breadcrumbPanel = new BreadcrumbPanel(breadcrumbLinksData, selectedRaceIdentifier.getRaceName()); -// mainPanel.add(breadcrumbPanel); - contentPanel = new VerticalPanel(); headerPanel = new DockPanel(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java index 59245242c32..af5c1ce1993 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java @@ -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); } /** diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java index 683184f492d..f0be8fd9173 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/LeaderboardEditPage.java @@ -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 { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java index e5a8eb13d54..349ac4db382 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardEntryPoint.java @@ -138,7 +138,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { RaceSelectionModel raceSelectionModel = new RaceSelectionModel(); List 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); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java index 51796b4e0fb..854b670c1cf 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/RaceBoardPanel.java @@ -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> breadcrumbLinksData = new ArrayList>(); 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(link, leaderboardGroup.name)); + breadcrumbLinksData.add(new Pair(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 leaderboardViewer = new CollapsableComponentViewer( leaderboardPanel, "100%", "100%", stringMessages); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/OverviewEventPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/OverviewEventPanel.java index 0add5a88e5d..809d1ebb77f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/OverviewEventPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/spectator/OverviewEventPanel.java @@ -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); } }