From 6bc47cdcba7a7202e55c22b8c1f5f510abd8f335 Mon Sep 17 00:00:00 2001 From: fmittag Date: Thu, 8 Mar 2012 16:18:58 +0100 Subject: [PATCH] Fix for bug 381 (Raceboard / Spectator horizontal size brkoen) Added basic settings menu variant for ONESCREEN view fix for bug 380, but still some sizing issues in ONESCREEN MODE --- .../gwt/ui/adminconsole/WindChart.java | 7 ++-- .../gwt/ui/adminconsole/WindPanel.java | 2 +- .../ui/leaderboard/AbstractChartPanel.java | 10 ++--- .../gwt/ui/leaderboard/ChartPanel.java | 4 +- .../CompareCompetitorsChartDialog.java | 2 +- .../gwt/ui/leaderboard/MultiChartPanel.java | 4 +- .../gwt/ui/raceboard/RaceBoardEntryPoint.java | 1 - .../gwt/ui/raceboard/RaceBoardPanel.java | 41 ++++++++++++++++--- .../raceboard/SideBySideComponentViewer.java | 9 ++-- 9 files changed, 53 insertions(+), 27 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindChart.java index 5682e5dccbd..e3a577e6ded 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindChart.java @@ -78,7 +78,7 @@ public class WindChart implements Component, RaceSelectionCha * server and displayed in this chart. If no race is selected, the chart is cleared. */ public WindChart(SailingServiceAsync sailingService, RaceSelectionProvider raceSelectionProvider, - Timer timer, WindChartSettings settings, final StringMessages stringMessages, ErrorReporter errorReporter, int chartHeight, boolean compactChart) { + Timer timer, WindChartSettings settings, final StringMessages stringMessages, ErrorReporter errorReporter, boolean compactChart) { super(); this.sailingService = sailingService; this.stringMessages = stringMessages; @@ -92,7 +92,7 @@ public class WindChart implements Component, RaceSelectionCha .setZoomType(Chart.ZoomType.X) .setSpacingRight(20) .setWidth100() - .setHeight(chartHeight) + .setHeight100() .setChartTitle(new ChartTitle().setText(stringMessages.wind())) .setChartSubtitle(new ChartSubtitle().setText(stringMessages.clickAndDragToZoomIn())) .setLegend(new Legend().setEnabled(true)) @@ -125,7 +125,7 @@ public class WindChart implements Component, RaceSelectionCha chart.getYAxis(1).setOpposite(true).setAxisTitleText(stringMessages.speed()+" ("+stringMessages.averageSpeedInKnotsUnit()+")") .setStartOnTick(false).setShowFirstLabel(false).setGridLineWidth(0).setMinorGridLineWidth(0); if (compactChart) { - chart.setSpacingBottom(4).setSpacingLeft(0).setSpacingRight(0).setSpacingTop(2) + chart.setSpacingBottom(4).setSpacingLeft(10).setSpacingRight(10).setSpacingTop(2) .setLegend(new Legend().setMargin(2)) .setOption("title/margin", 5) .setChartSubtitle(null) @@ -134,6 +134,7 @@ public class WindChart implements Component, RaceSelectionCha mainPanel = new SimplePanel(); mainPanel.setWidget(chart); + mainPanel.setSize("100%", "100%"); updateSettings(settings); if (raceSelectionProvider != null) { raceSelectionProvider.addRaceSelectionChangeListener(this); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java index 1f13d634866..8e1739d7f53 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java @@ -180,7 +180,7 @@ public class WindPanel extends FormPanel implements EventDisplayer, WindShower, windSourceSelectionPanel.add(showConfigAnchor); grid.setWidget(1, 0, windSourceSelectionPanel); windChart = new WindChart(sailingService, /* race selection provider */ raceSelectionProvider, - new Timer(PlayModes.Replay), new WindChartSettings(WindSourceType.values()), stringMessages, errorReporter, 400, false); + new Timer(PlayModes.Replay), new WindChartSettings(WindSourceType.values()), stringMessages, errorReporter, false); grid.setWidget(2, 0, windChart.getEntryWidget()); grid.getCellFormatter().setVerticalAlignment(1, 1, HasVerticalAlignment.ALIGN_TOP); this.setWidget(grid); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java index c020c7b685e..5d3aed0cc19 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/AbstractChartPanel.java @@ -73,7 +73,6 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL protected final ErrorReporter errorReporter; protected Chart chart; private boolean compactChart; - private int chartHeight; protected final AbsolutePanel busyIndicatorPanel; protected final Label noCompetitorsSelectedLabel; protected final Map dataSeriesByCompetitor; @@ -88,7 +87,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL public AbstractChartPanel(SailingServiceAsync sailingService, CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider, - Timer timer, final StringMessages stringMessages, ErrorReporter errorReporter, DetailType dataToShow, int chartHeight, boolean compactChart) { + Timer timer, final StringMessages stringMessages, ErrorReporter errorReporter, DetailType dataToShow, boolean compactChart) { this.stringMessages = stringMessages; dataSeriesByCompetitor = new HashMap(); markPassingSeriesByCompetitor = new HashMap(); @@ -100,7 +99,6 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL this.dataToShow = dataToShow; chartData = null; this.compactChart = compactChart; - this.chartHeight = chartHeight; this.sailingService = sailingService; this.raceSelectionProvider = raceSelectionProvider; raceSelectionProvider.addRaceSelectionChangeListener(this); @@ -116,7 +114,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL Scheduler.get().scheduleDeferred(new ScheduledCommand() { @Override public void execute() { - busyIndicatorPanel.setSize("100%", "400px"); + busyIndicatorPanel.setSize("100%", "100%"); busyIndicatorPanel.add(busyIndicator, busyIndicatorPanel.getOffsetWidth() / 2, busyIndicatorPanel.getOffsetHeight() / 2); } }); @@ -141,7 +139,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL Chart chart = new Chart().setZoomType(Chart.ZoomType.X) .setSpacingRight(20) .setWidth100() - .setHeight(chartHeight) + .setHeight100() .setChartSubtitle(new ChartSubtitle().setText(stringMessages.clickAndDragToZoomIn())) .setLegend(new Legend().setEnabled(true)) .setLinePlotOptions(new LinePlotOptions().setLineWidth(LINE_WIDTH).setMarker(new Marker().setEnabled(false).setHoverState( @@ -182,7 +180,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL })); if (compactChart) { - chart.setSpacingBottom(4).setSpacingLeft(0).setSpacingRight(0).setSpacingTop(2) + chart.setSpacingBottom(4).setSpacingLeft(10).setSpacingRight(10).setSpacingTop(2) .setLegend(new Legend().setMargin(2)) .setOption("title/margin", 5) .setChartSubtitle(null) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ChartPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ChartPanel.java index 37a3c01cf99..bc9226f364f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ChartPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ChartPanel.java @@ -26,9 +26,9 @@ public class ChartPanel extends AbstractChartPanel implements Com public ChartPanel(SailingServiceAsync sailingService, CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider, Timer timer, DetailType dataToShow, StringMessages stringMessages, - ErrorReporter errorReporter, int chartHeight, boolean compactChart) { + ErrorReporter errorReporter, boolean compactChart) { super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, errorReporter, - dataToShow, chartHeight, compactChart); + dataToShow, compactChart); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompareCompetitorsChartDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompareCompetitorsChartDialog.java index f1cdbe41030..09d96f731bd 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompareCompetitorsChartDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/CompareCompetitorsChartDialog.java @@ -54,7 +54,7 @@ public class CompareCompetitorsChartDialog extends DialogBox { raceSelectionProvider.setAllRaces(races); multiChartPanel = new MultiChartPanel(sailingService, competitorSelectionProvider, raceSelectionProvider, - timer, stringConstants, errorReporter, 400, false); + timer, stringConstants, errorReporter, false); multiChartPanel.setSize("100%", "100%"); FlowPanel contentPanel = new FlowPanel(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java index 491fe6ee4b6..aa0fe3b460f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiChartPanel.java @@ -25,9 +25,9 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent; public class MultiChartPanel extends AbstractChartPanel implements Component { public MultiChartPanel(SailingServiceAsync sailingService, CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider, Timer timer, final StringMessages stringMessages, - ErrorReporter errorReporter, int chartHeight, boolean compactChart) { + ErrorReporter errorReporter, boolean compactChart) { super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, errorReporter, - /*show initially*/ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, chartHeight, compactChart); + /*show initially*/ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, compactChart); } @Override 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 2b53fcf23ab..d881c806e24 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 @@ -163,7 +163,6 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint { FlowPanel contentOuterPanel = new FlowPanel(); // outer div which centered page content contentOuterPanel.addStyleName("contentOuterPanel"); - contentOuterPanel.setSize("100%", "100%"); contentOuterPanel.add(raceBoardPanel); //FlowPanel footerShadowPanel = new FlowPanel(); 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 9821ac95541..b37d321e334 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 @@ -9,10 +9,12 @@ import java.util.Map; import com.google.gwt.dom.client.Style; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.Command; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Anchor; import com.google.gwt.user.client.ui.FlowPanel; import com.google.gwt.user.client.ui.FormPanel; +import com.google.gwt.user.client.ui.MenuBar; import com.google.gwt.user.client.ui.ToggleButton; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RaceIdentifier; @@ -45,6 +47,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO; import com.sap.sailing.gwt.ui.shared.UserDTO; import com.sap.sailing.gwt.ui.shared.components.Component; import com.sap.sailing.gwt.ui.shared.components.ComponentViewer; +import com.sap.sailing.gwt.ui.shared.components.SettingsDialog; import com.sap.sailing.gwt.ui.shared.panels.BreadcrumbPanel; /** @@ -133,32 +136,58 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel List> components = new ArrayList>(); MultiChartPanel competitorCharts = new MultiChartPanel(sailingService, competitorSelectionModel, raceSelectionProvider, - timer, stringMessages, errorReporter, 200, true); + timer, stringMessages, errorReporter, true); competitorCharts.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces()); components.add(competitorCharts); competitorCharts.setVisible(false); WindChartSettings windChartSettings = new WindChartSettings(WindSourceType.values()); WindChart windChart = new WindChart(sailingService, raceSelectionProvider, timer, windChartSettings, - stringMessages, errorReporter, 200, true); + stringMessages, errorReporter, true); windChart.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces()); windChart.setVisible(false); components.add(windChart); - SideBySideComponentViewer leaderboardAndMapViewer = new SideBySideComponentViewer(leaderboardPanel, raceMap, - components, "100%", "100%"); + SideBySideComponentViewer leaderboardAndMapViewer = new SideBySideComponentViewer(leaderboardPanel, raceMap, components); componentViewers.add(leaderboardAndMapViewer); for (ComponentViewer componentViewer : componentViewers) { mainPanel.add(componentViewer.getViewerWidget()); } + + MenuBar mainMenu = new MenuBar(); + mainMenu.setStyleName("raceBoardNavigation-navigationitem"); + MenuBar settingsMenu = new MenuBar(true); + mainMenu.addItem("Settings", settingsMenu); + addSettingsMenuItem(settingsMenu, leaderboardPanel); + addSettingsMenuItem(settingsMenu, raceMap); + addSettingsMenuItem(settingsMenu, windChart); + addSettingsMenuItem(settingsMenu, competitorCharts); + + mainMenu.getElement().getStyle().setFloat(Style.Float.LEFT); + mainMenu.getElement().getStyle().setPadding(3, Style.Unit.PX); + mainMenu.getElement().getStyle().setMargin(3, Style.Unit.PX); + + componentsNavigationPanel.add(mainMenu); + addComponentAsToogleButtonToNavigationMenu(leaderboardAndMapViewer, leaderboardPanel); //addComponentAsToogleButtonToNavigationMenu(leaderboardAndMapViewer, raceMap); addComponentAsToogleButtonToNavigationMenu(leaderboardAndMapViewer, windChart); addComponentAsToogleButtonToNavigationMenu(leaderboardAndMapViewer, competitorCharts); + } + private void addSettingsMenuItem(MenuBar settingsMenu, final Component component) { + if(component.hasSettings()) { + settingsMenu.addItem(component.getLocalizedShortName(), new Command() { + public void execute() { + new SettingsDialog(component, stringMessages).show(); + } + }); + } + } + private void createCascadingView(String leaderboardName, String leaderboardGroupName, FlowPanel mainPanel) { // create the breadcrumb navigation breadcrumbPanel = createBreadcrumbPanel(leaderboardGroupName); @@ -190,7 +219,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel WindChartSettings windChartSettings = new WindChartSettings(WindSourceType.values()); WindChart windChart = new WindChart(sailingService, raceSelectionProvider, timer, windChartSettings, - stringMessages, errorReporter, 400, false); + stringMessages, errorReporter, false); CollapsableComponentViewer windChartViewer = new CollapsableComponentViewer( windChart, "auto", "400px", stringMessages); windChart.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces()); @@ -203,7 +232,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel // competitorCharts, "auto", "400px", stringMessages); MultiChartPanel competitorCharts = new MultiChartPanel(sailingService, competitorSelectionModel, raceSelectionProvider, - timer, stringMessages, errorReporter, 400, false); + timer, stringMessages, errorReporter, false); CollapsableComponentViewer chartViewer = new CollapsableComponentViewer( competitorCharts, "auto", "400px", stringMessages); 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 359a8b5af81..9eb13011af5 100644 --- 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 @@ -23,8 +23,7 @@ public class SideBySideComponentViewer implements ComponentViewer { private SplitLayoutPanel splitLayoutPanel; private int savedSplitPosition = -1; - public SideBySideComponentViewer(Component leftComponent, Component rightComponent, List> components, - String defaultWidth, String defaultHeight) { + public SideBySideComponentViewer(Component leftComponent, Component rightComponent, List> components) { this.leftComponent = leftComponent; this.rightComponent = rightComponent; this.components = components; @@ -33,11 +32,11 @@ public class SideBySideComponentViewer implements ComponentViewer { leftScrollPanel.add(leftComponent.getEntryWidget()); mainPanel = new LayoutPanel(); - mainPanel.setSize(defaultWidth, defaultHeight); + mainPanel.setSize("100%", "100%"); splitLayoutPanel = new SplitLayoutPanel(); + mainPanel.add(splitLayoutPanel); - - splitLayoutPanel.setSize(defaultWidth, defaultHeight); +// splitLayoutPanel.setSize(defaultWidth, defaultHeight); for(Component component: components) { if(component.isVisible())