]>
git.argeo.org Git - gpl/argeo-suite.git/blob - swt/chart/SwtJsBarChart.java
1 package org
.argeo
.app
.swt
.chart
;
3 import java
.io
.StringWriter
;
5 import org
.eclipse
.swt
.widgets
.Composite
;
7 import jakarta
.json
.Json
;
8 import jakarta
.json
.stream
.JsonGenerator
;
10 public class SwtJsBarChart
extends AbstractJsChart
{
12 public SwtJsBarChart(String chartName
, Composite parent
, int style
) {
13 super(chartName
, parent
, style
);
17 protected String
getJsImplementation() {
18 return "globalThis.argeo.app.chart.BarChart";
21 public void setLabels(String
[] labels
) {
22 executeChartMethod("setLabels(%s)", toJsArray(labels
));
25 public void addDataset(String label
, int[] values
) {
26 executeChartMethod("addDataset('%s', %s)", label
, toJsArray(values
));
29 public void setData(String
[] labels
, String label
, int[] values
) {
30 executeChartMethod("setData(%s, '%s', %s)", toJsArray(labels
), label
, toJsArray(values
));
33 public void setDatasets(String
[] labels
, String
[] label
, int[][] values
) {
34 executeChartMethod("setDatasets(%s, %s)", toJsArray(labels
), toDatasets(label
, values
));
37 protected String
toDatasets(String
[] label
, int[][] values
) {
38 if (label
.length
!= values
.length
)
39 throw new IllegalArgumentException("Arrays must have the same length");
40 StringWriter writer
= new StringWriter();
41 JsonGenerator g
= Json
.createGenerator(writer
);
43 for (int i
= 0; i
< label
.length
; i
++) {
45 g
.write("label", label
[i
]);
46 g
.writeStartArray("data");
47 for (int j
= 0; j
< values
[i
].length
; j
++) {
48 g
.write(values
[i
][j
]);
50 g
.writeEnd();// data array
51 g
.writeEnd();// dataset
55 return writer
.toString();
58 public void clearDatasets() {
59 executeChartMethod("clearDatasets()");