Skip to content

Commit

Permalink
KOGITO-9425: Make sure that column settings are respected for meters …
Browse files Browse the repository at this point in the history
…and timeseries in Dashbuilder (apache#1781)
  • Loading branch information
jesuino authored Jun 21, 2023
1 parent dd9e1fa commit 5c45692
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/
package org.dashbuilder.renderer.echarts.client;

import java.util.Arrays;
import java.util.List;
import java.util.stream.IntStream;

Expand Down Expand Up @@ -105,8 +106,12 @@ void chartSetup() {
displayerSettings.getMeterEnd(), "red")
});

var valuesSettings = displayerSettings.getColumnSettings(valuesColumn);
var names = getNames(nColumns);
var values = getNumberValues(valuesColumn);
var values = Arrays.stream(getNumberValues(valuesColumn))
.mapToObj(v -> super.evaluateValueToString(v, valuesSettings))
.map(Double::valueOf)
.toArray(Double[]::new);

int legendBasePosX = LEGEND_ITEM_MIN_POS_X;
int legendBasePosY = LEGEND_ITEM_MIN_POS_Y;
Expand Down Expand Up @@ -171,9 +176,11 @@ private String[] getNames(int n) {
.mapToObj(i -> "Series " + i)
.toArray(String[]::new);
}
List<?> list = dataSet.getColumnByIndex(0).getValues();
var column = dataSet.getColumnByIndex(0);
List<?> list = column.getValues();
return list.stream()
.map(o -> o.toString())
.map(Object::toString)
.map(v -> super.formatValue(v, column))
.toArray(String[]::new);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import javax.enterprise.inject.Default;
import javax.inject.Inject;

import org.dashbuilder.dataset.ColumnType;
import org.dashbuilder.dataset.DataColumn;
import org.dashbuilder.dataset.DataSetLookupConstraints;
import org.dashbuilder.renderer.echarts.client.js.ECharts.Dataset;
Expand Down Expand Up @@ -90,7 +91,19 @@ public Dataset buildDataSet() {
}

private Object getValue(DataColumn column, int i) {
return column.getValues().get(i);
var value = column.getValues().get(i);
if (column.getColumnType() != ColumnType.NUMBER) {
return super.formatValue(value, column);
} else {
var settings = displayerSettings.getColumnSettings(column);
var valueStr = super.evaluateValueToString(value, settings);
try {
return Double.parseDouble(valueStr);
} catch (Exception e) {
// just ignore this edge case
}
}
return value;
}

}

0 comments on commit 5c45692

Please sign in to comment.