mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-30 17:36:40 +00:00
Merge remote-tracking branch 'server/master'
This commit is contained in:
commit
a52a0e5645
9 files changed
+53
-27
No files matched your search
+4
-3
@@ -78,7 +78,7 @@ public class WindChart implements Component<WindChartSettings>, 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<WindChartSettings>, 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<WindChartSettings>, 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<WindChartSettings>, RaceSelectionCha
|
||||
|
||||
mainPanel = new SimplePanel();
|
||||
mainPanel.setWidget(chart);
|
||||
mainPanel.setSize("100%", "100%");
|
||||
updateSettings(settings);
|
||||
if (raceSelectionProvider != null) {
|
||||
raceSelectionProvider.addRaceSelectionChangeListener(this);
|
||||
|
||||
+1
-1
@@ -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);
|
||||
|
||||
+4
-6
@@ -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<CompetitorDTO, Series> 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<CompetitorDTO, Series>();
|
||||
markPassingSeriesByCompetitor = new HashMap<CompetitorDTO, Series>();
|
||||
@@ -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)
|
||||
|
||||
+2
-2
@@ -26,9 +26,9 @@ public class ChartPanel extends AbstractChartPanel<ChartSettings> 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
|
||||
|
||||
+1
-1
@@ -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();
|
||||
|
||||
+2
-2
@@ -25,9 +25,9 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialogComponent;
|
||||
public class MultiChartPanel extends AbstractChartPanel<MultiChartSettings> implements Component<MultiChartSettings> {
|
||||
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
|
||||
|
||||
-1
@@ -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();
|
||||
|
||||
+35
-6
@@ -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<Component<?>> components = new ArrayList<Component<?>>();
|
||||
|
||||
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 <SettingsType> void addSettingsMenuItem(MenuBar settingsMenu, final Component<SettingsType> component) {
|
||||
if(component.hasSettings()) {
|
||||
settingsMenu.addItem(component.getLocalizedShortName(), new Command() {
|
||||
public void execute() {
|
||||
new SettingsDialog<SettingsType>(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<WindChartSettings> windChartViewer = new CollapsableComponentViewer<WindChartSettings>(
|
||||
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<MultiChartSettings> chartViewer = new CollapsableComponentViewer<MultiChartSettings>(
|
||||
competitorCharts, "auto", "400px", stringMessages);
|
||||
|
||||
|
||||
+4
-5
@@ -23,8 +23,7 @@ public class SideBySideComponentViewer implements ComponentViewer {
|
||||
private SplitLayoutPanel splitLayoutPanel;
|
||||
private int savedSplitPosition = -1;
|
||||
|
||||
public SideBySideComponentViewer(Component<?> leftComponent, Component<?> rightComponent, List<Component<?>> components,
|
||||
String defaultWidth, String defaultHeight) {
|
||||
public SideBySideComponentViewer(Component<?> leftComponent, Component<?> rightComponent, List<Component<?>> 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())
|
||||
|
||||
Reference in new issue
Block a user