diff --git a/java/com.sap.sailing.gwt.ui/RaceBoard.css b/java/com.sap.sailing.gwt.ui/RaceBoard.css index 1101e597f53..7e89739add6 100644 --- a/java/com.sap.sailing.gwt.ui/RaceBoard.css +++ b/java/com.sap.sailing.gwt.ui/RaceBoard.css @@ -509,19 +509,3 @@ img.openColumn { .TimePanel-settingsButtonStyle:hover { border: 1px solid gray; } - -.RaceBoard-LeaderboardHeader { - height: 60px; - background: #333 url(images/sap_logo_header.png) 2% 50% no-repeat; - border-bottom: 5px solid #f0ab00; - color: white; - font-size: 25px; - background-size: 90px; -} - -.RaceBoard-LeaderboardHeader-Label { - position: absolute; - left: 97px; - top: 20px; - -webkit-font-smoothing: antialiased; -} \ No newline at end of file diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index 8604c829930..6e6f3fab095 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -54,10 +54,13 @@ import com.google.gwt.maps.client.overlays.Polygon; import com.google.gwt.maps.client.overlays.PolygonOptions; import com.google.gwt.maps.client.overlays.Polyline; import com.google.gwt.maps.client.overlays.PolylineOptions; +import com.google.gwt.resources.client.ImageResource; +import com.google.gwt.user.client.Window; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.FlowPanel; +import com.google.gwt.user.client.ui.Image; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RequiresResize; import com.google.gwt.user.client.ui.VerticalPanel; @@ -131,6 +134,8 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private final SailingServiceAsync sailingService; private final ErrorReporter errorReporter; + private final static ClientResources resources = GWT.create(ClientResources.class); + /** * Polyline for the start line (connecting two marks representing the start gate). */ @@ -371,7 +376,9 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } map = new MapWidget(mapOptions); RaceMap.this.add(map, 0, 0); - RaceMap.this.add(combinedWindPanel, 10, 10+/*spacing*/5); + Image sapLogo = createSAPLogo(); + RaceMap.this.add(sapLogo); + RaceMap.this.add(combinedWindPanel, 10, 10+sapLogo.getHeight()+/*spacing*/5); RaceMap.this.raceMapImageManager.loadMapIcons(map); map.setSize("100%", "100%"); map.addZoomChangeHandler(new ZoomChangeMapHandler() { @@ -2084,4 +2091,17 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } return result; } + + private Image createSAPLogo() { + ImageResource sapLogoResource = resources.sapLogoOverlay(); + Image sapLogo = new Image(sapLogoResource); + sapLogo.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + Window.open("http://www.sap.com", "_blank", null); + } + }); + sapLogo.setStyleName("raceBoard-Logo"); + return sapLogo; + } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java index 46fe2291939..9a5d7167309 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/raceboard/SideBySideComponentViewer.java @@ -5,17 +5,16 @@ import java.util.List; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.user.client.ui.AbsolutePanel; import com.google.gwt.user.client.ui.DockLayoutPanel.Direction; -import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.LayoutPanel; import com.google.gwt.user.client.ui.Panel; import com.google.gwt.user.client.ui.RequiresResize; import com.google.gwt.user.client.ui.ScrollPanel; -import com.google.gwt.user.client.ui.SimplePanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.WidgetCollection; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.Component; import com.sap.sailing.gwt.ui.client.shared.components.ComponentViewer; +import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; /** @@ -34,18 +33,6 @@ public class SideBySideComponentViewer implements ComponentViewer { } } } - - class ScrollPanelWithHeader extends ScrollPanel { - public ScrollPanelWithHeader() { - super(); - SimplePanel headerPanel = new SimplePanel(); - Label sailingAnalyticsLabel = new Label("Sailing Analytics"); - sailingAnalyticsLabel.setStyleName("RaceBoard-LeaderboardHeader-Label"); - headerPanel.add(sailingAnalyticsLabel); - headerPanel.setStyleName("RaceBoard-LeaderboardHeader"); - getContainerElement().appendChild(headerPanel.getElement()); - } - } private final int MIN_LEADERBOARD_WIDTH = 370; @@ -68,13 +55,12 @@ public class SideBySideComponentViewer implements ComponentViewer { this.leaderboardContentPanel = leftComponentP.getContentPanel(); this.rightComponent = rightComponentP; this.components = components; - leftScrollPanel = new ScrollPanelWithHeader(); + leftScrollPanel = new ScrollPanel(); leftScrollPanel.add(leftComponentP.getEntryWidget()); leftScrollPanel.setTitle(leftComponentP.getEntryWidget().getTitle()); - mainPanel = new LayoutPanel(); mainPanel.setSize("100%", "100%"); - mainPanel.getElement().getStyle().setMarginTop(-12, Unit.PX); // somehow this is needed to make sure there is no top white border + mainPanel.getElement().getStyle().setMarginTop(-12, Unit.PX); mainPanel.setStyleName("SideBySideComponentViewer-MainPanel"); splitLayoutPanel = new TouchSplitLayoutPanelWithBetterDraggers(/* horizontal splitter width */ 3, /*vertical splitter height*/ 25); mainPanel.add(splitLayoutPanel); @@ -97,6 +83,12 @@ public class SideBySideComponentViewer implements ComponentViewer { } } + public void showSettingsDialog(Component component) { + if (component.hasSettings()) { + new SettingsDialog(component, stringMessages).show(); + } + } + public void forceLayout() { if (!leftComponent.isVisible() && rightComponent.isVisible()) { // the leaderboard is not visible, but the map is