dataItem.add(name, Integer.parseInt(value)); break; case "double": dataItem.add(name, Double.parseDouble(value)); break; case "date": dataItem.add(name, loadDate(value)); break; case "datetime": dataItem.add(name, parseDateTime(value)); break; case "string": dataItem.add(name, value); break; case "long": dataItem.add(name, Long.parseLong(value)); break; case "boolean": dataItem.add(name, Boolean.valueOf(value)); break; case "uuid": dataItem.add(name, UUID.fromString(value)); break; case "decimal": dataItem.add(name, new BigDecimal(value)); break; default: dataItem.add(name, value); break;
@Override protected void loadChartData(ChartModel chart, Element element) { Element dataSet = element.element("data"); if (dataSet != null) { ListDataProvider listDataProvider = new ListDataProvider(); for (Object item : dataSet.elements("item")) { Element itemElement = (Element) item; MapDataItem dataItem = new MapDataItem(); for (Element property : itemElement.elements("property")) { if (property.elements().size() > 0) { List<MapDataItem> innerItems = new ArrayList<>(); for (Object innerItem : property.elements("item")) { Element innerItemElement = (Element) innerItem; MapDataItem innerDataItem = new MapDataItem(); for (Element innerProperty : innerItemElement.elements("property")) { innerDataItem = loadDataItem(innerProperty, innerDataItem); } innerItems.add(innerDataItem); } dataItem.add(property.attributeValue("name"), innerItems); } else { dataItem = loadDataItem(property, dataItem); } } listDataProvider.addItem(dataItem); chart.setDataProvider(listDataProvider); } } }