mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
bug6067: fixed CSV export for data mining results
This commit is contained in:
+27
-9
@@ -1,5 +1,8 @@
|
||||
package com.sap.sse.datamining.ui.client;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.moxieapps.gwt.highcharts.client.Chart;
|
||||
import org.moxieapps.gwt.highcharts.client.Point;
|
||||
import org.moxieapps.gwt.highcharts.client.Series;
|
||||
@@ -38,21 +41,36 @@ public class ChartToCsvExporter {
|
||||
|
||||
private static String createCsvExportContentForStatisticsCurve(Chart chartToExport) {
|
||||
if (chartToExport != null && chartToExport.getSeries().length > 0) {
|
||||
StringBuilder csvStr = new StringBuilder("Series name");
|
||||
for (Point point : chartToExport.getSeries()[0].getPoints()) {
|
||||
String name = point.getName();
|
||||
csvStr.append(';');
|
||||
if (name != null && !name.isEmpty()) {
|
||||
csvStr.append(name);
|
||||
} else {
|
||||
csvStr.append(point.getX());
|
||||
final StringBuilder csvStr = new StringBuilder("Series name");
|
||||
{
|
||||
final List<String> columnNames = new ArrayList<>();
|
||||
// collect column names across all series; some may not have points for all columns
|
||||
for (final Series series : chartToExport.getSeries()) {
|
||||
for (Point point : series.getPoints()) {
|
||||
final String pointName = point.getName();
|
||||
final String columnName = pointName != null && !pointName.isEmpty() ? pointName : point.getX().toString();
|
||||
while (columnNames.size() <= point.getX().intValue()) {
|
||||
columnNames.add(columnNames.size(), null);
|
||||
}
|
||||
columnNames.set(point.getX().intValue(), columnName);
|
||||
}
|
||||
}
|
||||
for (final String columnName : columnNames) {
|
||||
csvStr.append(';');
|
||||
if (columnName != null && !columnName.isEmpty()) {
|
||||
csvStr.append(columnName);
|
||||
}
|
||||
}
|
||||
}
|
||||
csvStr.append("\r\n");
|
||||
for (Series series : chartToExport.getSeries()) {
|
||||
csvStr.append(series.getName());
|
||||
int lastXIndex = -1;
|
||||
for (Point point : series.getPoints()) {
|
||||
csvStr.append(';');
|
||||
while (lastXIndex < point.getX().intValue()) {
|
||||
csvStr.append(';');
|
||||
lastXIndex++;
|
||||
}
|
||||
csvStr.append(NumberFormat.getDecimalFormat().format(point.getY()));
|
||||
}
|
||||
csvStr.append("\r\n");
|
||||
|
||||
-14
@@ -1,11 +1,8 @@
|
||||
package com.sap.sse.datamining.ui.client.presentation;
|
||||
|
||||
import com.google.gwt.dom.client.Style.Unit;
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.safehtml.shared.SafeHtml;
|
||||
import com.google.gwt.safehtml.shared.SafeHtmlUtils;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.DeckLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.DockLayoutPanel;
|
||||
import com.google.gwt.user.client.ui.HTML;
|
||||
@@ -49,17 +46,6 @@ public abstract class AbstractResultsPresenter<SettingsType extends Settings>
|
||||
controlsPanel.setSpacing(5);
|
||||
controlsPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
|
||||
mainPanel.addNorth(controlsPanel, 40);
|
||||
Button exportButton = new Button("Export");
|
||||
exportButton.setEnabled(false);
|
||||
exportButton.addClickHandler(new ClickHandler() {
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
// TODO Do the magic
|
||||
// Push the current result to the server
|
||||
// Call a servlet to download the previously pushed result as json file
|
||||
}
|
||||
});
|
||||
// addControl(exportButton);
|
||||
presentationPanel = new DeckLayoutPanel();
|
||||
mainPanel.add(presentationPanel);
|
||||
errorLabel = new HTML();
|
||||
|
||||
+3
-3
@@ -226,9 +226,9 @@ public class ResultsChart extends AbstractNumericResultsPresenter<Settings> {
|
||||
showResultData();
|
||||
});
|
||||
addControl(showDataLabelsPanel);
|
||||
StringMessages stringMessages = getDataMiningStringMessages();
|
||||
ChartToCsvExporter csvExporter = new ChartToCsvExporter(stringMessages.csvCopiedToClipboard());
|
||||
Button exportButton = new Button(stringMessages.csvExport());
|
||||
final StringMessages stringMessages = getDataMiningStringMessages();
|
||||
final ChartToCsvExporter csvExporter = new ChartToCsvExporter(stringMessages.csvCopiedToClipboard());
|
||||
final Button exportButton = new Button(stringMessages.csvExport());
|
||||
exportButton.addClickHandler(e -> csvExporter.exportChartAsCsvToClipboard(chart));
|
||||
addControl(exportButton);
|
||||
seriesMappedByGroupKey = new HashMap<>();
|
||||
|
||||
Reference in New Issue
Block a user