made selection of error bars optional

Change-Id: Ie38b734423f8c6f7b20cb0d9cc4fbbfbd098813c
This commit is contained in:
Axel Uhl committed 2017-10-04 13:51:26 +02:00
1 parent 2829cee756
commit 9d1ba01e22
5 files changed
+40 -17

No files matched your search

@@ -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();
@@ -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
@@ -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
@@ -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
@@ -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);
}
}
}