protected DataItem getDataItemByKey(@Nullable String dataItemKey) { DataItem dataItem = null; if (dataItemKey != null) { DataProvider dataProvider = chart.getDataProvider(); if (chart.getType() == ChartType.GANTT && dataItemKey.contains(":")) { String graphItemKey = dataItemKey.substring(0, dataItemKey.indexOf(":")); String segmentItemKey = dataItemKey.substring(dataItemKey.indexOf(":") + 1, dataItemKey.length()); Object dataItemId = dataItemKeys.get(graphItemKey); if (dataProvider != null) { DataItem graphDataItem = dataProvider.getItem(dataItemId); if (graphDataItem != null) { int segmentIndex = Integer.parseInt(segmentItemKey); String segmentsField = ((GanttChart) chart).getSegmentsField(); @SuppressWarnings("unchecked") List<DataItem> segmentItems = (List<DataItem>) graphDataItem.getValue(segmentsField); dataItem = segmentItems.get(segmentIndex); } } } else { Object dataItemId = dataItemKeys.get(dataItemKey); if (dataProvider != null) { dataItem = dataProvider.getItem(dataItemId); } } } return dataItem; }
@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; } }