use of io.jmix.dashboardsui.screen.dashboard.editor.canvas.CanvasFragment.DASHBOARD in project jmix by jmix-framework.
the class DashboardImpl method refresh.
/**
* Refreshes widget with passed parameters.
* Dashboard will be refreshed with merged existed and new parameters.
* If existed parameter has the same name as one of the param from passed map, it will be overwritten by param from map.
*
* @param params map with new dashboard parameters
*/
@Override
public void refresh(Map<String, Object> params) {
DashboardModel dashboardModel = null;
if (isNotBlank(jsonPath)) {
dashboardModel = loadDashboardByJson(jsonPath);
} else if (isNotBlank(code)) {
dashboardModel = loadDashboardByCode(code);
}
if (MapUtils.isNotEmpty(params) && Objects.nonNull(dashboardModel)) {
Map<String, Parameter> newParams = params.keySet().stream().map(key -> {
Parameter parameter = metadata.create(Parameter.class);
parameter.setName(key);
parameter.setAlias(key);
parameter.setValue(parameterTransformer.createParameterValue(params.get(key)));
return parameter;
}).collect(Collectors.toMap(Parameter::getName, Function.identity()));
Map<String, Parameter> paramMap = dashboardModel.getParameters().stream().collect(Collectors.toMap(Parameter::getName, Function.identity()));
paramMap.putAll(newParams);
dashboardModel.setParameters(new ArrayList<>(paramMap.values()));
}
updateDashboard(dashboardModel);
}
Aggregations