@Override public void repaint() { component.drawChart(); }
@Override public StockChartGroup getConfiguration() { return component.getChart(); }
public void setJson(String json) { if (!StringUtils.equals(getJson(), json)) { getState().json = json; forceStateChange(); } }
@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()); } }
@Override public String getNativeJson() { return component.getJson(); }
protected CubaAmStockChartScene createComponent() { return new CubaAmStockChartScene(createChartSerializer()); }
@Override public Subscription addRightClickListener(Consumer<StockChartRightClickEvent> clickListener) { if (!hasSubscriptions(StockChartRightClickEvent.class)) { component.addChartRightClickListener(stockChartEventsForwarder); } return getEventHub().subscribe(StockChartRightClickEvent.class, clickListener); }
@Override public Subscription addDataSetSelectorCompareListener(Consumer<DataSetSelectorCompareEvent> compareListener) { if (!hasSubscriptions(DataSetSelectorCompareEvent.class)) { component.addDataSetSelectorCompareListener(stockChartEventsForwarder); } return getEventHub().subscribe(DataSetSelectorCompareEvent.class, compareListener); }
@Override public Subscription addDataSetSelectorSelectListener(Consumer<DataSetSelectorSelectEvent> selectListener) { if (!hasSubscriptions(DataSetSelectorSelectEvent.class)) { component.addDataSetSelectorSelectListener(stockChartEventsForwarder); } return getEventHub().subscribe(DataSetSelectorSelectEvent.class, selectListener); }
@Override public Subscription addDataSetSelectorUnCompareListener(Consumer<DataSetSelectorUnCompareEvent> unCompareListener) { if (!hasSubscriptions(DataSetSelectorUnCompareEvent.class)) { component.addDataSetSelectorUnCompareListener(stockChartEventsForwarder); } return getEventHub().subscribe(DataSetSelectorUnCompareEvent.class, unCompareListener); }
@Override public Subscription addClickListener(Consumer<StockChartClickEvent> clickListener) { if (!hasSubscriptions(StockChartClickEvent.class)) { component.addChartClickListener(stockChartEventsForwarder); } return getEventHub().subscribe(StockChartClickEvent.class, clickListener); }
protected StockChartGroup getModel() { return component.getChart(); }
@Override public void afterPropertiesSet() throws Exception { initLocale(); StockChartGroup configuration = createConfiguration(); setupDefaults(configuration); component.drawChart(configuration); }
protected StockEvent getStockEvent(String stockEventId) { UUID eventId = UUID.fromString(stockEventId); for (DataSet dataSet : component.getChart().getDataSets()) { for (StockEvent stockEvent : dataSet.getStockEvents()) { if (stockEvent.getId().equals(eventId)) { return stockEvent; } } } return null; }
@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; } }
protected Entity getEventItem(String itemIdString) { if (StringUtils.isNotEmpty(itemIdString)) { for (DataSet dataSet : component.getChart().getDataSets()) { CollectionDatasource ds = getDataSetDatasource(dataSet.getId()); if (ds != null) { //noinspection unchecked Entity item = ds.getItem(getItemId(ds, itemIdString)); if (item != null) { return item; } } } } return null; }