Merge remote-tracking branch 'server/master'

This commit is contained in:
Axel Uhl committed 2012-03-07 14:39:39 +01:00
commit c74320870e
7 files changed
+49 -12

No files matched your search

@@ -18,6 +18,8 @@ import org.moxieapps.gwt.highcharts.client.Series;
import org.moxieapps.gwt.highcharts.client.ToolTip;
import org.moxieapps.gwt.highcharts.client.ToolTipData;
import org.moxieapps.gwt.highcharts.client.ToolTipFormatter;
import org.moxieapps.gwt.highcharts.client.events.ChartClickEvent;
import org.moxieapps.gwt.highcharts.client.events.ChartClickEventHandler;
import org.moxieapps.gwt.highcharts.client.plotOptions.LinePlotOptions;
import org.moxieapps.gwt.highcharts.client.plotOptions.Marker;
@@ -76,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) {
Timer timer, WindChartSettings settings, final StringMessages stringMessages, ErrorReporter errorReporter, int chartHeight, boolean compactChart) {
super();
this.sailingService = sailingService;
this.stringMessages = stringMessages;
@@ -110,11 +112,25 @@ public class WindChart implements Component<WindChartSettings>, RaceSelectionCha
numberFormat.format(toolTipData.getYAsDouble()) + unit;
}
}));
chart.setClickEventHandler(new ChartClickEventHandler() {
@Override
public boolean onClick(ChartClickEvent chartClickEvent) {
WindChart.this.timer.setTime(chartClickEvent.getXAxisValueAsLong());
return true;
}
});
chart.getXAxis().setType(Axis.Type.DATE_TIME).setMaxZoom(10000) // ten seconds
.setAxisTitleText(stringMessages.time());
chart.getYAxis(0).setAxisTitleText(stringMessages.fromDeg()).setStartOnTick(false).setShowFirstLabel(false);
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)
.setLegend(new Legend().setMargin(2))
.setOption("title/margin", 5)
.setChartSubtitle(null)
.getXAxis().setAxisTitle(null);
}
mainPanel = new SimplePanel();
mainPanel.setWidget(chart);
@@ -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);
new Timer(PlayModes.Replay), new WindChartSettings(WindSourceType.values()), stringMessages, errorReporter, 400, false);
grid.setWidget(2, 0, windChart.getEntryWidget());
grid.getCellFormatter().setVerticalAlignment(1, 1, HasVerticalAlignment.ALIGN_TOP);
this.setWidget(grid);
@@ -17,6 +17,8 @@ import org.moxieapps.gwt.highcharts.client.Series;
import org.moxieapps.gwt.highcharts.client.ToolTip;
import org.moxieapps.gwt.highcharts.client.ToolTipData;
import org.moxieapps.gwt.highcharts.client.ToolTipFormatter;
import org.moxieapps.gwt.highcharts.client.events.ChartClickEvent;
import org.moxieapps.gwt.highcharts.client.events.ChartClickEventHandler;
import org.moxieapps.gwt.highcharts.client.plotOptions.LinePlotOptions;
import org.moxieapps.gwt.highcharts.client.plotOptions.Marker;
import org.moxieapps.gwt.highcharts.client.plotOptions.ScatterPlotOptions;
@@ -70,6 +72,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
protected final SailingServiceAsync sailingService;
protected final ErrorReporter errorReporter;
protected Chart chart;
private boolean compactChart;
private int chartHeight;
protected final AbsolutePanel busyIndicatorPanel;
protected final Label noCompetitorsSelectedLabel;
@@ -85,7 +88,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
public AbstractChartPanel(SailingServiceAsync sailingService,
CompetitorSelectionProvider competitorSelectionProvider, RaceSelectionProvider raceSelectionProvider,
Timer timer, final StringMessages stringMessages, ErrorReporter errorReporter, DetailType dataToShow, int chartHeight) {
Timer timer, final StringMessages stringMessages, ErrorReporter errorReporter, DetailType dataToShow, int chartHeight, boolean compactChart) {
this.stringMessages = stringMessages;
dataSeriesByCompetitor = new HashMap<CompetitorDTO, Series>();
markPassingSeriesByCompetitor = new HashMap<CompetitorDTO, Series>();
@@ -96,6 +99,7 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
this.errorReporter = errorReporter;
this.dataToShow = dataToShow;
chartData = null;
this.compactChart = compactChart;
this.chartHeight = chartHeight;
this.sailingService = sailingService;
this.raceSelectionProvider = raceSelectionProvider;
@@ -144,6 +148,14 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
new Marker().setEnabled(true).setRadius(4))).setShadow(false)
.setHoverStateLineWidth(LINE_WIDTH));
chart.setChartTitle(new ChartTitle().setText(DetailTypeFormatter.format(dataToShow, stringMessages)));
chart.setClickEventHandler(new ChartClickEventHandler() {
@Override
public boolean onClick(ChartClickEvent chartClickEvent) {
timer.setTime(chartClickEvent.getXAxisValueAsLong());
return true;
}
});
final String unit = getUnit();
chart.getYAxis().setAxisTitleText(DetailTypeFormatter.format(dataToShow, stringMessages) + " ["+unit+"]");
chart.getYAxis().setStartOnTick(false).setShowFirstLabel(false);
@@ -169,6 +181,14 @@ implements CompetitorSelectionChangeListener, RaceSelectionChangeListener, TimeL
}
}));
if (compactChart) {
chart.setSpacingBottom(4).setSpacingLeft(0).setSpacingRight(0).setSpacingTop(2)
.setLegend(new Legend().setMargin(2))
.setOption("title/margin", 5)
.setChartSubtitle(null)
.getXAxis().setAxisTitle(null);
}
setChartData(null);
dataSeriesByCompetitor.clear();
markPassingSeriesByCompetitor.clear();
@@ -26,8 +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) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, errorReporter, dataToShow, chartHeight);
ErrorReporter errorReporter, int chartHeight, boolean compactChart) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, errorReporter,
dataToShow, chartHeight, compactChart);
}
@Override
@@ -54,7 +54,7 @@ public class CompareCompetitorsChartDialog extends DialogBox {
raceSelectionProvider.setAllRaces(races);
multiChartPanel = new MultiChartPanel(sailingService, competitorSelectionProvider, raceSelectionProvider,
timer, stringConstants, errorReporter, 400);
timer, stringConstants, errorReporter, 400, false);
multiChartPanel.setSize("100%", "100%");
FlowPanel contentPanel = new FlowPanel();
@@ -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) {
ErrorReporter errorReporter, int chartHeight, boolean compactChart) {
super(sailingService, competitorSelectionProvider, raceSelectionProvider, timer, stringMessages, errorReporter,
/*show initially*/ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, chartHeight);
/*show initially*/ DetailType.WINDWARD_DISTANCE_TO_OVERALL_LEADER, chartHeight, compactChart);
}
@Override
@@ -136,14 +136,14 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
WindChartSettings windChartSettings = new WindChartSettings(WindSourceType.values());
WindChart windChart = new WindChart(sailingService, raceSelectionProvider, timer, windChartSettings,
stringMessages, errorReporter, 200);
stringMessages, errorReporter, 200, true);
SimpleComponentViewer<WindChartSettings> windChartViewer = new SimpleComponentViewer<WindChartSettings>(
windChart, "auto", "200px");
windChart.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces());
componentViewers.add(windChartViewer);
MultiChartPanel competitorCharts = new MultiChartPanel(sailingService, competitorSelectionModel, raceSelectionProvider,
timer, stringMessages, errorReporter, 200);
timer, stringMessages, errorReporter, 200, true);
SimpleComponentViewer<MultiChartSettings> chartViewer = new SimpleComponentViewer<MultiChartSettings>(
competitorCharts, "auto", "200px");
@@ -186,7 +186,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);
stringMessages, errorReporter, 400, true);//TODO set to false after testing
CollapsableComponentViewer<WindChartSettings> windChartViewer = new CollapsableComponentViewer<WindChartSettings>(
windChart, "auto", "400px", stringMessages);
windChart.onRaceSelectionChange(raceSelectionProvider.getSelectedRaces());
@@ -199,7 +199,7 @@ public class RaceBoardPanel extends FormPanel implements EventDisplayer, RaceSel
// competitorCharts, "auto", "400px", stringMessages);
MultiChartPanel competitorCharts = new MultiChartPanel(sailingService, competitorSelectionModel, raceSelectionProvider,
timer, stringMessages, errorReporter, 400);
timer, stringMessages, errorReporter, 400, false);
CollapsableComponentViewer<MultiChartSettings> chartViewer = new CollapsableComponentViewer<MultiChartSettings>(
competitorCharts, "auto", "400px", stringMessages);