mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
made selection of error bars optional
Change-Id: Ie38b734423f8c6f7b20cb0d9cc4fbbfbd098813c
This commit is contained in:
1 parent
2829cee756
commit
9d1ba01e22
5 files changed
+40
-17
No files matched your search
+1
@@ -1463,6 +1463,7 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
|
||||
String latestRegattaStandings();
|
||||
String plainText();
|
||||
String columnChart();
|
||||
String columnChartWithErrorBars();
|
||||
String choosePresentation();
|
||||
String cantDisplayDataOfType(String resultType);
|
||||
String shownDecimals();
|
||||
|
||||
+1
@@ -1433,6 +1433,7 @@ runAQuery=Run a Query
|
||||
latestRegattaStandings=Latest Regatta Standings
|
||||
plainText=Plain Text
|
||||
columnChart=Column Chart
|
||||
columnChartWithErrorBars=Column Chart with Error Bars
|
||||
choosePresentation=Choose Presentation
|
||||
cantDisplayDataOfType=Can''t display data of type {0}
|
||||
shownDecimals=Shown Decimals
|
||||
|
||||
+1
@@ -1416,6 +1416,7 @@ runAQuery=Führe eine Anfrage aus
|
||||
latestRegattaStandings=Aktuelle Plazierungen
|
||||
plainText=Einfacher Text
|
||||
columnChart=Säulendiagramm
|
||||
columnChartWithErrorBars=Säulendiagramm mit Fehlerbalken
|
||||
choosePresentation=Wähle Präsentation
|
||||
cantDisplayDataOfType=Daten des Typs {0} können nicht dargestellt werden
|
||||
shownDecimals=Angezeigte Nachkommastellen
|
||||
|
||||
+19
-6
@@ -38,6 +38,7 @@ public class MultiResultsPresenter extends AbstractComponent<Settings> implement
|
||||
this.stringMessages = stringMessages;
|
||||
availablePresenters = new ArrayList<>();
|
||||
availablePresenters.add(new ColumnChartDescriptor());
|
||||
availablePresenters.add(new ColumnChartDescriptorWithErrorBars());
|
||||
availablePresenters.add(new PlainDescriptor());
|
||||
|
||||
presenterPanel = new DeckLayoutPanel();
|
||||
@@ -190,24 +191,36 @@ public class MultiResultsPresenter extends AbstractComponent<Settings> implement
|
||||
|
||||
}
|
||||
|
||||
private class ColumnChartDescriptor implements PresenterDescriptor<Object> {
|
||||
|
||||
private abstract class AbstractColumnChartDescriptor implements PresenterDescriptor<Object> {
|
||||
private final ResultsChart presenter;
|
||||
private final String name;
|
||||
|
||||
public ColumnChartDescriptor() {
|
||||
presenter = new ResultsChart(MultiResultsPresenter.this, getComponentContext(), stringMessages);
|
||||
public AbstractColumnChartDescriptor(String name, boolean showErrorBars) {
|
||||
this.name = name;
|
||||
presenter = new ResultsChart(MultiResultsPresenter.this, getComponentContext(), stringMessages, showErrorBars);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return stringMessages.columnChart();
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public AbstractResultsPresenter<?> getPresenter() {
|
||||
return presenter;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class ColumnChartDescriptor extends AbstractColumnChartDescriptor {
|
||||
public ColumnChartDescriptor() {
|
||||
super(stringMessages.columnChart(), /* showErrorBars */ false);
|
||||
}
|
||||
}
|
||||
|
||||
private class ColumnChartDescriptorWithErrorBars extends AbstractColumnChartDescriptor {
|
||||
public ColumnChartDescriptorWithErrorBars() {
|
||||
super(stringMessages.columnChartWithErrorBars(), /* showErrorBars */ true);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+18
-11
@@ -144,10 +144,11 @@ public class ResultsChart extends AbstractNumericResultsPresenter<Settings> {
|
||||
|
||||
private final Map<GroupKey, Double> averagePerMainKey;
|
||||
private final Map<GroupKey, Double> medianPerMainKey;
|
||||
private final boolean showErrorBars;
|
||||
|
||||
public ResultsChart(Component<?> parent, ComponentContext<?> context, StringMessages stringMessages) {
|
||||
public ResultsChart(Component<?> parent, ComponentContext<?> context, StringMessages stringMessages, boolean showErrorBars) {
|
||||
super(parent, context, stringMessages);
|
||||
|
||||
this.showErrorBars = showErrorBars;
|
||||
sortByPanel = new HorizontalPanel();
|
||||
sortByPanel.setSpacing(5);
|
||||
sortByPanel.add(new Label(stringMessages.sortBy() + ":"));
|
||||
@@ -275,12 +276,14 @@ public class ResultsChart extends AbstractNumericResultsPresenter<Settings> {
|
||||
point.setName(mainKey.asString());
|
||||
seriesMappedByGroupKey.get(groupKeyToSeriesKey(resultEntry.getKey()))
|
||||
.addPoint(point, false, false, false);
|
||||
final Triple<Number, Number, Long> errorMargins = currentResultErrorMargins==null?null:currentResultErrorMargins.get(mainKey);
|
||||
if (errorMargins != null) {
|
||||
Point errorMarginsPoint = new Point(mainKeyToXValueMap.get(mainKey), errorMargins.getA(), errorMargins.getB());
|
||||
errorMarginsPoint.setName(mainKey.asString()+", "+stringMessages.elements(errorMargins.getC()));
|
||||
errorSeriesMappedByGroupKey.get(groupKeyToSeriesKey(resultEntry.getKey()))
|
||||
.addPoint(errorMarginsPoint, false, false, false);
|
||||
if (showErrorBars) {
|
||||
final Triple<Number, Number, Long> errorMargins = currentResultErrorMargins==null?null:currentResultErrorMargins.get(mainKey);
|
||||
if (errorMargins != null) {
|
||||
Point errorMarginsPoint = new Point(mainKeyToXValueMap.get(mainKey), errorMargins.getA(), errorMargins.getB());
|
||||
errorMarginsPoint.setName(mainKey.asString()+", "+stringMessages.elements(errorMargins.getC()));
|
||||
errorSeriesMappedByGroupKey.get(groupKeyToSeriesKey(resultEntry.getKey()))
|
||||
.addPoint(errorMarginsPoint, false, false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
averagePerMainKey.clear();
|
||||
@@ -351,15 +354,19 @@ public class ResultsChart extends AbstractNumericResultsPresenter<Settings> {
|
||||
GroupKey seriesKey = groupKeyToSeriesKey(groupKey);
|
||||
if (!seriesMappedByGroupKey.containsKey(seriesKey)) {
|
||||
seriesMappedByGroupKey.put(seriesKey, chart.createSeries().setName(seriesKey.asString()));
|
||||
errorSeriesMappedByGroupKey.put(seriesKey, chart.createSeries().setType(Type.ERRORBAR).setName(seriesKey.asString()+
|
||||
" "+getStringMessages().dataMiningErrorMargins()));
|
||||
if (showErrorBars) {
|
||||
errorSeriesMappedByGroupKey.put(seriesKey, chart.createSeries().setType(Type.ERRORBAR).setName(seriesKey.asString()+
|
||||
" "+getStringMessages().dataMiningErrorMargins()));
|
||||
}
|
||||
}
|
||||
}
|
||||
List<GroupKey> sortedSeriesKeys = new ArrayList<>(seriesMappedByGroupKey.keySet());
|
||||
Collections.sort(sortedSeriesKeys);
|
||||
for (GroupKey seriesKey : sortedSeriesKeys) {
|
||||
chart.addSeries(seriesMappedByGroupKey.get(seriesKey), false, false);
|
||||
chart.addSeries(errorSeriesMappedByGroupKey.get(seriesKey), false, false);
|
||||
if (showErrorBars) {
|
||||
chart.addSeries(errorSeriesMappedByGroupKey.get(seriesKey), false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user