]> git.argeo.org Git - gpl/argeo-suite.git/blob - swt/org.argeo.app.swt/src/org/argeo/app/swt/chart/SwtJsBarChart.java
Remove legacy map overview
[gpl/argeo-suite.git] / swt / org.argeo.app.swt / src / org / argeo / app / swt / chart / SwtJsBarChart.java
1 package org.argeo.app.swt.chart;
2
3 import java.io.StringWriter;
4
5 import org.argeo.app.ux.js.JsClient;
6 import org.eclipse.swt.widgets.Composite;
7
8 import jakarta.json.Json;
9 import jakarta.json.stream.JsonGenerator;
10
11 public class SwtJsBarChart extends AbstractJsChart {
12
13 public SwtJsBarChart(String chartName, Composite parent, int style) {
14 super(chartName, parent, style);
15 }
16
17 @Override
18 protected String getJsImplementation() {
19 return "globalThis.argeo.app.chart.BarChart";
20 }
21
22 public void setLabels(String[] labels) {
23 executeChartMethod("setLabels(%s)", JsClient.toJsArray(labels));
24 }
25
26 public void addDataset(String label, int[] values) {
27 executeChartMethod("addDataset('%s', %s)", label, JsClient.toJsArray(values));
28 }
29
30 public void setData(String[] labels, String label, int[] values) {
31 executeChartMethod("setData(%s, '%s', %s)", JsClient.toJsArray(labels), label, JsClient.toJsArray(values));
32 }
33
34 public void setDatasets(String[] labels, String[] label, int[][] values) {
35 executeChartMethod("setDatasets(%s, %s)", JsClient.toJsArray(labels), toDatasets(label, values));
36 }
37
38 protected String toDatasets(String[] label, int[][] values) {
39 if (label.length != values.length)
40 throw new IllegalArgumentException("Arrays must have the same length");
41 StringWriter writer = new StringWriter();
42 JsonGenerator g = Json.createGenerator(writer);
43 g.writeStartArray();
44 for (int i = 0; i < label.length; i++) {
45 g.writeStartObject();
46 g.write("label", label[i]);
47 g.writeStartArray("data");
48 for (int j = 0; j < values[i].length; j++) {
49 g.write(values[i][j]);
50 }
51 g.writeEnd();// data array
52 g.writeEnd();// dataset
53 }
54 g.writeEnd();
55 g.close();
56 return writer.toString();
57 }
58
59 public void clearDatasets() {
60 executeChartMethod("clearDatasets()");
61 }
62 }