Search in sources :

Example 1 with Graph

use of io.jmix.charts.model.graph.Graph in project jmix by jmix-framework.

the class ChartsSerializationTest method testSerialChart.

@Test
public void testSerialChart() throws IOException, URISyntaxException, ParseException {
    DataProvider dataProvider = new ListDataProvider();
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "1", "date", "2012-07-27", "value", 13)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "2", "date", "2012-07-28", "value", 11)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "3", "date", "2012-07-29", "value", 15)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "4", "date", "2012-07-30", "value", 16)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "5", "date", "2012-07-31", "value", 18)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "6", "date", "2012-08-01", "value", 13)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "7", "date", "2012-08-02", "value", 22)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "8", "date", "2012-08-03", "value", 23)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "9", "date", "2012-08-04", "value", 20)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "10", "date", "2012-08-05", "value", 17)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "11", "date", "2012-08-06", "value", 16)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "12", "date", "2012-08-07", "value", 18)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "13", "date", "2012-08-08", "value", 21)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "14", "date", "2012-08-09", "value", 26)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "15", "date", "2012-08-10", "value", 24)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "16", "date", "2012-08-11", "value", 29)));
    AbstractChart chart = new SerialChartModelImpl().setCategoryField("date").setDataProvider(dataProvider).addValueAxes(new ValueAxis().setAxisAlpha(0.0).setPosition(Position.LEFT)).addGraphs(new Graph().setId("g1").setBullet(BulletType.ROUND).setBulletBorderAlpha(1.0).setBulletColor(Color.WHITE).setBulletSize(5).setHideBulletsCount(50).setLineThickness(2).setTitle("Red line").setValueField("value")).setCategoryAxis(new CategoryAxis().setDashLength(1).setMinorGridEnabled(true).setPosition(Position.TOP)).setChartScrollbar(new Scrollbar().setGraph("g1").setScrollbarHeight(30)).setChartCursor(new Cursor().setCursorPosition(CursorPosition.MOUSE).setPan(true)).setExport(new Export());
    ChartSerializer serializer = getTestSerializer();
    String json = serializer.serialize(chart);
    String expected = readFile("SerialChart.json");
    assertEquals(prettyJson(expected), prettyJson(json));
}
Also used : ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) ChartSerializer(io.jmix.charts.widget.amcharts.serialization.ChartSerializer) Cursor(io.jmix.charts.model.cursor.Cursor) ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) DataProvider(io.jmix.ui.data.DataProvider) Graph(io.jmix.charts.model.graph.Graph) CategoryAxis(io.jmix.charts.model.axis.CategoryAxis) ValueAxis(io.jmix.charts.model.axis.ValueAxis) Export(io.jmix.charts.model.export.Export) MapDataItem(io.jmix.ui.data.impl.MapDataItem) Scrollbar(io.jmix.charts.model.Scrollbar) Test(org.junit.jupiter.api.Test)

Example 2 with Graph

use of io.jmix.charts.model.graph.Graph in project jmix by jmix-framework.

the class ChartsSerializationTest method testGanttChart.

@Test
public void testGanttChart() throws ParseException, IOException, URISyntaxException {
    ListDataProvider dataProvider = new ListDataProvider();
    dataProvider.addItem(taskSpan("1", "John", segment("s1", 7, 2, "#7B742C", "Task #1"), segment("s2", null, 2, "#7E585F", "Task #2"), segment("s3", null, 2, "#CF794A", "Task #3")));
    dataProvider.addItem(taskSpan("2", "Smith", segment("s4", 10, 2, "#7E585F", "Task #2"), segment("s5", null, 1, "#CF794A", "Task #3"), segment("s6", null, 4, "#7B742C", "Task #1")));
    dataProvider.addItem(taskSpan("3", "Ben", segment("s7", 12, 2, "#7E585F", "Task #2"), segment("s8", 16, 2, "#FFE4C4", "Task #4")));
    dataProvider.addItem(taskSpan("4", "Mike", segment("s9", 9, 6, "#7B742C", "Task #1"), segment("s10", null, 4, "#7E585F", "Task #2")));
    dataProvider.addItem(taskSpan("5", "Lenny", segment("s11", 8, 1, "#CF794A", "Task #3"), segment("s12", null, 4, "#7B742C", "Task #1")));
    dataProvider.addItem(taskSpan("6", "Scott", segment("s13", 15, 3, "#7E585F", "Task #2")));
    dataProvider.addItem(taskSpan("7", "Julia", segment("s14", 9, 2, "#7B742C", "Task #1"), segment("s15", null, 1, "#7E585F", "Task #2"), segment("s16", null, 8, "#CF794A", "Task #3")));
    dataProvider.addItem(taskSpan("8", "Bob", segment("s17", 9, 8, "#7E585F", "Task #2"), segment("s18", null, 7, "#CF794A", "Task #3")));
    dataProvider.addItem(taskSpan("9", "Kendra", segment("s19", 11, 8, "#7E585F", "Task #2"), segment("s20", 16, 2, "#FFE4C4", "Task #4")));
    dataProvider.addItem(taskSpan("9", "Tom", segment("s21", 9, 4, "#7B742C", "Task #1"), segment("s22", null, 3, "#7E585F", "Task #2"), segment("s23", null, 5, "#CF794A", "Task #3")));
    dataProvider.addItem(taskSpan("10", "Kyle", segment("s24", 6, 3, "#7E585F", "Task #2")));
    dataProvider.addItem(taskSpan("11", "Anita", segment("s25", 12, 2, "#7E585F", "Task #2"), segment("s26", 16, 2, "#FFE4C4", "Task #4")));
    dataProvider.addItem(taskSpan("12", "Jack", segment("s27", 8, 10, "#7B742C", "Task #1"), segment("s28", null, 2, "#7E585F", "Task #2")));
    dataProvider.addItem(taskSpan("13", "Kim", segment("s29", 12, 2, "#7E585F", "Task #2"), segment("s30", null, 3, "#CF794A", "Task #3")));
    dataProvider.addItem(taskSpan("14", "Aaron", segment("s31", 18, 2, "#7E585F", "Task #2"), segment("s32", null, 2, "#FFE4C4", "Task #4")));
    dataProvider.addItem(taskSpan("15", "Alan", segment("s33", 17, 2, "#7B742C", "Task #1"), segment("s34", null, 2, "#7E585F", "Task #2"), segment("s35", null, 2, "#CF794A", "Task #3")));
    dataProvider.addItem(taskSpan("16", "Ruth", segment("s36", 13, 2, "#7E585F", "Task #2"), segment("s37", null, 1, "#CF794A", "Task #3"), segment("s38", null, 4, "#7B742C", "Task #1")));
    dataProvider.addItem(taskSpan("17", "Simon", segment("s39", 10, 3, "#7E585F", "Task #2"), segment("s40", 17, 4, "#FFE4C4", "Task #4")));
    AbstractChart chart = new GanttChartModelImpl().setDataProvider(dataProvider).setTheme(ChartTheme.LIGHT).setMarginRight(70).setPeriod(DatePeriod.HOURS).setBalloonDateFormat("JJ:NN").setColumnWidth(0.5).setBrightnessStep(10).setRotate(true).setCategoryField("category").setSegmentsField("segments").setStartDate(df.parse("2015-01-01")).setColorField("color").setStartField("start").setEndField("end").setDurationField("duration").addAdditionalSegmentFields("task").setGraph(new Graph().setFillAlphas(1.0).setBalloonText("[[task]]: [[open]] [[value]]")).setValueAxis(new ValueAxis().setType(ValueAxisType.DATE).setMinimum(7.0).setMaximum(31.0)).setChartScrollbar(new Scrollbar()).setChartCursor(new Cursor().setValueBalloonsEnabled(false).setCursorAlpha(0.1).setValueLineBalloonEnabled(true).setValueLineEnabled(true).setFullWidth(true)).setExport(new Export());
    ChartSerializer serializer = getTestSerializer();
    String json = serializer.serialize(chart);
    String expected = readFile("GanttChart.json");
    assertEquals(prettyJson(expected), prettyJson(json));
}
Also used : ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) Graph(io.jmix.charts.model.graph.Graph) ChartSerializer(io.jmix.charts.widget.amcharts.serialization.ChartSerializer) ValueAxis(io.jmix.charts.model.axis.ValueAxis) Export(io.jmix.charts.model.export.Export) Cursor(io.jmix.charts.model.cursor.Cursor) Scrollbar(io.jmix.charts.model.Scrollbar) Test(org.junit.jupiter.api.Test)

Example 3 with Graph

use of io.jmix.charts.model.graph.Graph in project jmix by jmix-framework.

the class StockChartLoader method loadStockGraph.

protected void loadStockGraph(StockGraph stockGraph, Element stockGraphElement) {
    loadGraph(stockGraph, stockGraphElement);
    String comparable = stockGraphElement.attributeValue("comparable");
    if (StringUtils.isNotEmpty(comparable)) {
        stockGraph.setComparable(Boolean.valueOf(comparable));
    }
    String compareField = stockGraphElement.attributeValue("compareField");
    if (StringUtils.isNotEmpty(compareField)) {
        stockGraph.setCompareField(compareField);
    }
    String compareFromStart = stockGraphElement.attributeValue("compareFromStart");
    if (StringUtils.isNotEmpty(compareFromStart)) {
        stockGraph.setCompareFromStart(Boolean.valueOf(compareFromStart));
    }
    Element compareGraphElement = stockGraphElement.element("compareGraph");
    if (compareGraphElement != null) {
        Graph compareGraph = new Graph();
        loadGraph(compareGraph, compareGraphElement);
        stockGraph.setCompareGraph(compareGraph);
    }
    String compareGraphBalloonColor = stockGraphElement.attributeValue("compareGraphBalloonColor");
    if (StringUtils.isNotEmpty(compareGraphBalloonColor)) {
        stockGraph.setCompareGraphBalloonColor(Color.valueOf(compareGraphBalloonColor));
    }
    String compareGraphBalloonFunction = stockGraphElement.elementText("compareGraphBalloonFunction");
    if (StringUtils.isNotBlank(compareGraphBalloonFunction)) {
        stockGraph.setCompareGraphBalloonFunction(new JsFunction(compareGraphBalloonFunction));
    }
    String compareGraphBalloonText = stockGraphElement.attributeValue("compareGraphBalloonText");
    if (StringUtils.isNotEmpty(compareGraphBalloonText)) {
        stockGraph.setCompareGraphBalloonText(compareGraphBalloonText);
    }
    String compareGraphBullet = stockGraphElement.attributeValue("compareGraphBullet");
    if (StringUtils.isNotEmpty(compareGraphBullet)) {
        stockGraph.setCompareGraphBullet(compareGraphBullet);
    }
    String compareGraphBulletBorderAlpha = stockGraphElement.attributeValue("compareGraphBulletBorderAlpha");
    if (StringUtils.isNotEmpty(compareGraphBulletBorderAlpha)) {
        stockGraph.setCompareGraphBulletBorderAlpha(Double.valueOf(compareGraphBulletBorderAlpha));
    }
    String compareGraphBulletBorderColor = stockGraphElement.attributeValue("compareGraphBulletBorderColor");
    if (StringUtils.isNotEmpty(compareGraphBulletBorderColor)) {
        stockGraph.setCompareGraphBulletBorderColor(Color.valueOf(compareGraphBulletBorderColor));
    }
    String compareGraphBulletBorderThickness = stockGraphElement.attributeValue("compareGraphBulletBorderThickness");
    if (StringUtils.isNotEmpty(compareGraphBulletBorderThickness)) {
        stockGraph.setCompareGraphBulletBorderThickness(Integer.valueOf(compareGraphBulletBorderThickness));
    }
    String compareGraphBulletColor = stockGraphElement.attributeValue("compareGraphBulletColor");
    if (StringUtils.isNotEmpty(compareGraphBulletColor)) {
        stockGraph.setCompareGraphBulletColor(Color.valueOf(compareGraphBulletColor));
    }
    String compareGraphBulletSize = stockGraphElement.attributeValue("compareGraphBulletSize");
    if (StringUtils.isNotEmpty(compareGraphBulletSize)) {
        stockGraph.setCompareGraphBulletSize(Integer.valueOf(compareGraphBulletSize));
    }
    String compareGraphCornerRadiusTop = stockGraphElement.attributeValue("compareGraphCornerRadiusTop");
    if (StringUtils.isNotEmpty(compareGraphCornerRadiusTop)) {
        stockGraph.setCompareGraphCornerRadiusTop(Integer.valueOf(compareGraphCornerRadiusTop));
    }
    String compareGraphDashLength = stockGraphElement.attributeValue("compareGraphDashLength");
    if (StringUtils.isNotEmpty(compareGraphDashLength)) {
        stockGraph.setCompareGraphDashLength(Integer.valueOf(compareGraphDashLength));
    }
    String compareGraphFillAlphas = stockGraphElement.attributeValue("compareGraphFillAlphas");
    if (StringUtils.isNotEmpty(compareGraphFillAlphas)) {
        stockGraph.setCompareGraphFillAlphas(Double.valueOf(compareGraphFillAlphas));
    }
    Element compareGraphFillColors = stockGraphElement.element("compareGraphFillColors");
    if (compareGraphFillColors != null) {
        List<Color> colors = loadColors(compareGraphFillColors);
        if (CollectionUtils.isNotEmpty(colors)) {
            stockGraph.setCompareGraphFillColors(colors);
        }
    }
    String compareGraphLineAlpha = stockGraphElement.attributeValue("compareGraphLineAlpha");
    if (StringUtils.isNotEmpty(compareGraphLineAlpha)) {
        stockGraph.setCompareGraphLineAlpha(Double.valueOf(compareGraphLineAlpha));
    }
    String compareGraphLineColor = stockGraphElement.attributeValue("compareGraphLineColor");
    if (StringUtils.isNotEmpty(compareGraphLineColor)) {
        stockGraph.setCompareGraphLineColor(Color.valueOf(compareGraphLineColor));
    }
    String compareGraphLineThickness = stockGraphElement.attributeValue("compareGraphLineThickness");
    if (StringUtils.isNotEmpty(compareGraphLineThickness)) {
        stockGraph.setCompareGraphLineThickness(Integer.valueOf(compareGraphLineThickness));
    }
    String compareGraphType = stockGraphElement.attributeValue("compareGraphType");
    if (StringUtils.isNotEmpty(compareGraphType)) {
        stockGraph.setCompareGraphType(GraphType.valueOf(compareGraphType));
    }
    String compareGraphVisibleInLegend = stockGraphElement.attributeValue("compareGraphVisibleInLegend");
    if (StringUtils.isNotEmpty(compareGraphVisibleInLegend)) {
        stockGraph.setCompareGraphVisibleInLegend(Boolean.valueOf(compareGraphVisibleInLegend));
    }
    String periodValue = stockGraphElement.attributeValue("periodValue");
    if (StringUtils.isNotEmpty(periodValue)) {
        stockGraph.setPeriodValue(StockGraphValue.valueOf(periodValue));
    }
    String recalculateValue = stockGraphElement.attributeValue("recalculateValue");
    if (StringUtils.isNotEmpty(recalculateValue)) {
        stockGraph.setRecalculateValue(StockGraphValue.valueOf(recalculateValue));
    }
    String showEventsOnComparedGraphs = stockGraphElement.attributeValue("showEventsOnComparedGraphs");
    if (StringUtils.isNotEmpty(showEventsOnComparedGraphs)) {
        stockGraph.setShowEventsOnComparedGraphs(Boolean.valueOf(showEventsOnComparedGraphs));
    }
    String useDataSetColors = stockGraphElement.attributeValue("useDataSetColors");
    if (StringUtils.isNotEmpty(useDataSetColors)) {
        stockGraph.setUseDataSetColors(Boolean.valueOf(useDataSetColors));
    }
}
Also used : Graph(io.jmix.charts.model.graph.Graph) JsFunction(io.jmix.charts.model.JsFunction) Element(org.dom4j.Element)

Example 4 with Graph

use of io.jmix.charts.model.graph.Graph in project jmix by jmix-framework.

the class GanttChartLoader method loadConfiguration.

@Override
protected void loadConfiguration(GanttChart chart, Element element) {
    super.loadConfiguration(chart, element);
    Element valueAxisElement = element.element("valueAxis");
    if (valueAxisElement != null) {
        chart.setValueAxis(loadValueAxis(valueAxisElement));
    }
    Element graphElement = element.element("graph");
    if (graphElement != null) {
        Graph graph = new Graph();
        loadGraph(graph, graphElement);
        chart.setGraph(graph);
    }
    String additionalSegmentFields = element.attributeValue("additionalSegmentFields");
    if (StringUtils.isNotEmpty(additionalSegmentFields)) {
        List<String> fields = Splitter.on(",").omitEmptyStrings().trimResults().splitToList(additionalSegmentFields);
        chart.addAdditionalSegmentFields(fields.toArray(new String[fields.size()]));
    }
    String brightnessStep = element.attributeValue("brightnessStep");
    if (StringUtils.isNotEmpty(brightnessStep)) {
        chart.setBrightnessStep(Integer.valueOf(brightnessStep));
    }
    String colorField = element.attributeValue("colorField");
    if (StringUtils.isNotEmpty(colorField)) {
        chart.setColorField(colorField);
    }
    String columnWidthField = element.attributeValue("columnWidthField");
    if (StringUtils.isNotEmpty(columnWidthField)) {
        chart.setColumnWidthField(columnWidthField);
    }
    String durationField = element.attributeValue("durationField");
    if (StringUtils.isNotEmpty(durationField)) {
        chart.setDurationField(durationField);
    }
    String endDateField = element.attributeValue("endDateField");
    if (StringUtils.isNotEmpty(endDateField)) {
        chart.setEndDateField(endDateField);
    }
    String endField = element.attributeValue("endField");
    if (StringUtils.isNotEmpty(endField)) {
        chart.setEndField(endField);
    }
    String period = element.attributeValue("period");
    if (StringUtils.isNotEmpty(period)) {
        DatePeriod dp = DatePeriod.fromId(period);
        if (dp == null) {
            dp = DatePeriod.valueOf(period);
        }
        chart.setPeriod(dp);
    }
    String segmentsField = element.attributeValue("segmentsField");
    if (StringUtils.isNotEmpty(segmentsField)) {
        chart.setSegmentsField(segmentsField);
    }
    String startDate = element.attributeValue("startDate");
    if (StringUtils.isNotEmpty(startDate)) {
        chart.setStartDate(loadDate(startDate));
    }
    String startDateField = element.attributeValue("startDateField");
    if (StringUtils.isNotEmpty(startDateField)) {
        chart.setStartDateField(startDateField);
    }
    String startField = element.attributeValue("startField");
    if (StringUtils.isNotEmpty(startField)) {
        chart.setStartField(startField);
    }
}
Also used : Graph(io.jmix.charts.model.graph.Graph) Element(org.dom4j.Element) DatePeriod(io.jmix.charts.model.date.DatePeriod)

Example 5 with Graph

use of io.jmix.charts.model.graph.Graph in project jmix by jmix-framework.

the class ChartsSerializationTest method testXYChart.

@Test
public void testXYChart() throws IOException, URISyntaxException {
    ListDataProvider dataProvider = new ListDataProvider();
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "1", "ax", 1.0, "ay", 0.5, "bx", 1.0, "by", 2.2)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "2", "ax", 2.0, "ay", 1.3, "bx", 2.0, "by", 4.9)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "3", "ax", 3.0, "ay", 2.3, "bx", 3.0, "by", 5.1)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "4", "ax", 4.0, "ay", 2.8, "bx", 4.0, "by", 5.3)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "5", "ax", 5.0, "ay", 3.5, "bx", 5.0, "by", 6.1)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "6", "ax", 6.0, "ay", 5.1, "bx", 6.0, "by", 8.3)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "7", "ax", 7.0, "ay", 6.7, "bx", 7.0, "by", 10.5)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "8", "ax", 8.0, "ay", 8.0, "bx", 8.0, "by", 12.3)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "9", "ax", 9.0, "ay", 8.9, "bx", 9.0, "by", 14.5)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "10", "ax", 10.0, "ay", 9.7, "bx", 10.0, "by", 15.0)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "11", "ax", 11.0, "ay", 10.4, "bx", 11.0, "by", 18.8)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "12", "ax", 12.0, "ay", 11.7, "bx", 12.0, "by", 19.0)));
    AbstractChart chart = new XYChartModelImpl().setDataProvider(dataProvider).setStartDuration(1.0).setMarginLeft(64).setMarginBottom(60).setChartCursor(new Cursor()).setChartScrollbar(new Scrollbar()).addGraphs(new Graph().setBullet(BulletType.TRIANGLE_UP).setLineAlpha(0.0).setXField("ax").setYField("ay").setLineColor(Color.valueOf("#FF6600")).setFillAlphas(0.0), new Graph().setBullet(BulletType.TRIANGLE_DOWN).setLineAlpha(0.0).setXField("bx").setYField("by").setLineColor(Color.valueOf("#FCD202")).setFillAlphas(0.0)).addTrendLines(new TrendLine().setFinalValue(12.0).setFinalXValue(12.0).setInitialValue(2.0).setInitialXValue(1.0).setLineColor(Color.valueOf("#FF6600")), new TrendLine().setFinalValue(19.0).setFinalXValue(12.0).setInitialValue(1.0).setInitialXValue(1.0).setLineColor(Color.valueOf("#FCD202"))).addValueAxes(new ValueAxis().setAxisAlpha(0.0).setDashLength(1).setTitle("X Axis").setPosition(Position.BOTTOM), new ValueAxis().setAxisAlpha(0.0).setDashLength(1).setTitle("Y Axis").setPosition(Position.LEFT));
    ChartSerializer serializer = getTestSerializer();
    String json = serializer.serialize(chart);
    String expected = readFile("XYChart.json");
    assertEquals(prettyJson(expected), prettyJson(json));
}
Also used : ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) Graph(io.jmix.charts.model.graph.Graph) ChartSerializer(io.jmix.charts.widget.amcharts.serialization.ChartSerializer) ValueAxis(io.jmix.charts.model.axis.ValueAxis) TrendLine(io.jmix.charts.model.trendline.TrendLine) Cursor(io.jmix.charts.model.cursor.Cursor) MapDataItem(io.jmix.ui.data.impl.MapDataItem) Scrollbar(io.jmix.charts.model.Scrollbar) Test(org.junit.jupiter.api.Test)

Aggregations

Graph (io.jmix.charts.model.graph.Graph)5 Scrollbar (io.jmix.charts.model.Scrollbar)3 ValueAxis (io.jmix.charts.model.axis.ValueAxis)3 Cursor (io.jmix.charts.model.cursor.Cursor)3 ChartSerializer (io.jmix.charts.widget.amcharts.serialization.ChartSerializer)3 ListDataProvider (io.jmix.ui.data.impl.ListDataProvider)3 Test (org.junit.jupiter.api.Test)3 Export (io.jmix.charts.model.export.Export)2 MapDataItem (io.jmix.ui.data.impl.MapDataItem)2 Element (org.dom4j.Element)2 JsFunction (io.jmix.charts.model.JsFunction)1 CategoryAxis (io.jmix.charts.model.axis.CategoryAxis)1 DatePeriod (io.jmix.charts.model.date.DatePeriod)1 TrendLine (io.jmix.charts.model.trendline.TrendLine)1 DataProvider (io.jmix.ui.data.DataProvider)1