/** * Returns datasource of dataset. * * @param id dataset id. * @return datasource of dataset * @deprecated use {@link DataSet#getDataProvider()} instead. */ @Deprecated default CollectionDatasource getDataSetDatasource(String id) { DataSet dataSet = getDataSet(id); if (dataSet != null) { DataProvider dataProvider = dataSet.getDataProvider(); if (dataProvider != null) { return dataProvider instanceof EntityDataProvider ? ((EntityDataProvider) dataProvider).getDatasource() : null; } } return null; }
@Override public String serialize(StockChartGroup chart) { JsonElement jsonTree = chartGson.toJsonTree(chart); if (CollectionUtils.isNotEmpty(chart.getDataSets())) { ChartJsonSerializationContext context = createChartJsonSerializationContext(chart); JsonArray jsonDataSets = (JsonArray) jsonTree.getAsJsonObject().get("dataSets"); for (JsonElement dataSetElement : jsonDataSets) { JsonObject dataSetObject = (JsonObject) dataSetElement; String dataSetId = dataSetObject.get("id").getAsString(); DataSet dataSet = chart.getDataSet(dataSetId); if (dataSet != null && dataSet.getDataProvider() != null) { JsonArray dataProviderElement = itemsSerializer.serialize(dataSet.getDataProvider().getItems(), context); // Prevent errors on client for empty data provider if (dataProviderElement.size() == 0) { dataProviderElement.add(new JsonObject()); } dataSetObject.add("dataProvider", dataProviderElement); } } } return chartGson.toJson(jsonTree); }
@Override public List<String> getWiredFields() { List<String> wiredFields = new ArrayList<>(); if (CollectionUtils.isNotEmpty(getAdditionalFields())) { wiredFields.addAll(getAdditionalFields()); } if (CollectionUtils.isNotEmpty(panels)) { for (StockPanel panel : panels) { wiredFields.addAll(panel.getWiredFields()); } } if (CollectionUtils.isNotEmpty(dataSets)) { for (DataSet dataSet : dataSets) { if (dataSet.getDataProvider() != null) { wiredFields.addAll(dataSet.getWiredFields()); } } } return wiredFields; }
@Nullable protected DataItem getDataItemByKey(String graphId, String itemKey) { if (itemKey != null) { Object dataItemId = dataItemKeys.get(itemKey); DataSet dataSet = getChart().getDataSet(graphId); if (dataSet != null) { DataProvider dataProvider = dataSet.getDataProvider(); if (dataProvider != null) { return dataProvider.getItem(dataItemId); } } } return null; } }
@Override public void dataItemsChanged(DataItemsChangeEvent e) { if (chart.isDirty()) { // full repaint required, don't need to send incremental updates return; } IncrementalUpdateType updateType = null; switch (e.getOperation()) { case ADD: updateType = IncrementalUpdateType.ADD; break; case REMOVE: updateType = IncrementalUpdateType.REMOVE; break; case UPDATE: updateType = IncrementalUpdateType.UPDATE; break; case REFRESH: dataSet.getDataProvider().removeChangeListener(this); chart.forgetChangedItems(); chart.drawChart(); break; } if (updateType != null && CollectionUtils.isNotEmpty(e.getItems())) { chart.addChangedItems(updateType, dataSet, e.getItems()); } }
if (dataSet.getDataProvider() != null) { dataSet.getDataProvider().addChangeListener(new ProxyChangeForwarder(this, dataSet));