Search in sources :

Example 1 with Export

use of io.jmix.charts.model.export.Export 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 Export

use of io.jmix.charts.model.export.Export 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 Export

use of io.jmix.charts.model.export.Export in project jmix by jmix-framework.

the class StockChartSerializationTest method testStockChartWithIntradayDatas.

@Test
public void testStockChartWithIntradayDatas() throws ParseException, IOException, URISyntaxException {
    ListDataProvider chartData = new ListDataProvider();
    populateStockDatasourceWithTime(chartData, 40L, 100L);
    StockChartGroup stockChart = new StockChartGroup().setCategoryAxesSettings(new CategoryAxesSettings().setMinPeriod("mm")).addDataSets(new DataSet().setId("dataSet").setDataProvider(chartData).setColor(Color.valueOf("#b0de09")).setCategoryField("date").addFieldMappings(new FieldMapping().setFromField("value").setToField("value"), new FieldMapping().setFromField("volume").setToField("volume"))).addPanels(new StockPanel().setId("p1").setTitle("Value").setPercentHeight(70).setShowCategoryAxis(false).addStockGraphs(new StockGraph().setId("sg4").setValueField("value").setLineThickness(2).setType(GraphType.SMOOTHED_LINE).setBullet(BulletType.ROUND)).setStockLegend(new StockLegend().setValueTextRegular(" ").setMarkerType(MarkerType.NONE)), new StockPanel().setId("p2").setTitle("Volume").setPercentHeight(30).addStockGraphs(new StockGraph().setValueField("volume").setCornerRadiusTop(2).setType(GraphType.COLUMN).setFillAlphas(1.0)).setStockLegend(new StockLegend().setValueTextRegular(" ").setMarkerType(MarkerType.NONE))).setChartScrollbarSettings(new ChartScrollbarSettings().setGraph("sg4").setUsePeriod("10mm").setPosition(ChartScrollbarPosition.TOP)).setChartCursorSettings(new ChartCursorSettings().setValueLineBalloonEnabled(true)).setPeriodSelector(new PeriodSelector().setPosition(Position.TOP).setInputFieldWidth(150).addPeriods(new Period().setPeriod(PeriodType.HOURS).setCount(1).setLabel("1 hour").setSelected(true), new Period().setPeriod(PeriodType.HOURS).setCount(2).setLabel("2 hours"), new Period().setPeriod(PeriodType.HOURS).setCount(5).setLabel("5 hours"), new Period().setPeriod(PeriodType.HOURS).setCount(12).setLabel("12 hours"), new Period().setPeriod(PeriodType.MAX).setLabel("MAX"))).setPanelsSettings(new PanelsSettings().setUsePrefixes(true)).setExport(new Export().setPosition(ExportPosition.BOTTOM_RIGHT));
    StockChartSerializer serializer = getTestSerializer();
    String json = serializer.serialize(stockChart);
    String expected = readFile("StockChartWithIntradayDatas.json");
    assertEquals(prettyJson(expected), prettyJson(json));
}
Also used : ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) DataSet(io.jmix.charts.model.dataset.DataSet) StockPanel(io.jmix.charts.model.chart.impl.StockPanel) FieldMapping(io.jmix.charts.model.dataset.FieldMapping) PanelsSettings(io.jmix.charts.model.settings.PanelsSettings) StockGraph(io.jmix.charts.model.stock.StockGraph) Period(io.jmix.charts.model.period.Period) ChartScrollbarSettings(io.jmix.charts.model.settings.ChartScrollbarSettings) StockChartSerializer(io.jmix.charts.widget.amcharts.serialization.StockChartSerializer) JmixStockChartSerializer(io.jmix.charts.serialization.JmixStockChartSerializer) CategoryAxesSettings(io.jmix.charts.model.axis.CategoryAxesSettings) Export(io.jmix.charts.model.export.Export) ChartCursorSettings(io.jmix.charts.model.settings.ChartCursorSettings) StockLegend(io.jmix.charts.model.stock.StockLegend) StockChartGroup(io.jmix.charts.model.chart.impl.StockChartGroup) PeriodSelector(io.jmix.charts.model.period.PeriodSelector) Test(org.junit.jupiter.api.Test)

Example 4 with Export

use of io.jmix.charts.model.export.Export in project jmix by jmix-framework.

the class StockChartSerializationTest method testStockChartWithMultipleDataSets.

@Test
public void testStockChartWithMultipleDataSets() throws ParseException, IOException, URISyntaxException {
    ListDataProvider chartData1 = new ListDataProvider();
    populateDataProvider(chartData1, 40L, 100L, 1000L, 500L, 2L);
    ListDataProvider chartData2 = new ListDataProvider();
    populateDataProvider(chartData2, 100L, 200L, 1000L, 600L, 2L);
    ListDataProvider chartData3 = new ListDataProvider();
    populateDataProvider(chartData3, 100L, 200L, 1000L, 600L, 2L);
    ListDataProvider chartData4 = new ListDataProvider();
    populateDataProvider(chartData4, 100L, 200L, 100L, 600L, 1L);
    StockChartGroup stockChart = new StockChartGroup().addDataSets(new DataSet().setId("dataSet1").setTitle("first data set").setDataProvider(chartData1).setCategoryField("date").addFieldMappings(new FieldMapping().setFromField("value").setToField("value"), new FieldMapping().setFromField("volume").setToField("volume")), new DataSet().setId("dataSet2").setTitle("second data set").setDataProvider(chartData2).setCategoryField("date").addFieldMappings(new FieldMapping().setFromField("value").setToField("value"), new FieldMapping().setFromField("volume").setToField("volume")), new DataSet().setId("dataSet3").setTitle("third data set").setDataProvider(chartData3).setCategoryField("date").addFieldMappings(new FieldMapping().setFromField("value").setToField("value"), new FieldMapping().setFromField("volume").setToField("volume")), new DataSet().setId("dataSet4").setTitle("forth data set").setDataProvider(chartData4).setCategoryField("date").addFieldMappings(new FieldMapping().setFromField("value").setToField("value"), new FieldMapping().setFromField("volume").setToField("volume"))).addPanels(new StockPanel().setId("panel1").setShowCategoryAxis(false).setTitle("Value").setPercentHeight(70).addStockGraphs(new StockGraph().setId("sg1").setValueField("value").setComparable(true).setCompareField("value").setBalloonText("[[title]]:<b>[[value]]</b>").setCompareGraphBalloonText("[[title]]:<b>[[value]]</b>")).setStockLegend(new StockLegend().setPeriodValueTextComparing("[[percents.value.close]]%").setPeriodValueTextRegular("[[value.close]]")), new StockPanel().setId("panel2").setTitle("Volume").setPercentHeight(30).addStockGraphs(new StockGraph().setValueField("volume").setType(GraphType.COLUMN).setShowBalloon(false).setFillAlphas(1.0)).setStockLegend(new StockLegend().setPeriodValueTextRegular("[[value.close]]"))).setChartScrollbarSettings(new ChartScrollbarSettings().setGraph("sg1")).setChartCursorSettings(new ChartCursorSettings().setValueBalloonsEnabled(true).setValueLineAlpha(0.5).setCursorAlpha(0.1).setValueBalloonsEnabled(true).setValueLineEnabled(true).setFullWidth(true)).setPeriodSelector(new PeriodSelector().addPeriods(new Period().setPeriod(PeriodType.MONTHS).setSelected(true).setCount(1).setLabel("1 month"), new Period().setPeriod(PeriodType.YEARS).setCount(1).setLabel("1 year"), new Period().setPeriod(PeriodType.YTD).setLabel("YTD"), new Period().setPeriod(PeriodType.MAX).setLabel("MAX"))).setDataSetSelector(new DataSetSelector().setPosition(Position.LEFT)).setExport(new Export());
    StockChartSerializer serializer = getTestSerializer();
    String json = serializer.serialize(stockChart);
    String expected = readFile("StockChartWithMultipleDataSets.json");
    assertEquals(prettyJson(expected), prettyJson(json));
}
Also used : ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) DataSet(io.jmix.charts.model.dataset.DataSet) StockPanel(io.jmix.charts.model.chart.impl.StockPanel) FieldMapping(io.jmix.charts.model.dataset.FieldMapping) StockGraph(io.jmix.charts.model.stock.StockGraph) Period(io.jmix.charts.model.period.Period) ChartScrollbarSettings(io.jmix.charts.model.settings.ChartScrollbarSettings) DataSetSelector(io.jmix.charts.model.dataset.DataSetSelector) StockChartSerializer(io.jmix.charts.widget.amcharts.serialization.StockChartSerializer) JmixStockChartSerializer(io.jmix.charts.serialization.JmixStockChartSerializer) Export(io.jmix.charts.model.export.Export) ChartCursorSettings(io.jmix.charts.model.settings.ChartCursorSettings) StockLegend(io.jmix.charts.model.stock.StockLegend) StockChartGroup(io.jmix.charts.model.chart.impl.StockChartGroup) PeriodSelector(io.jmix.charts.model.period.PeriodSelector) Test(org.junit.jupiter.api.Test)

Example 5 with Export

use of io.jmix.charts.model.export.Export in project jmix by jmix-framework.

the class ChartsSerializationTest method testPieChart.

@Test
public void testPieChart() throws IOException, URISyntaxException {
    DataProvider dataProvider = new ListDataProvider();
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "1", "country", "Czech Republic", "litres", 256.9)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "2", "country", "Ireland", "litres", 131.1)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "3", "country", "Germany", "litres", 115.8)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "4", "country", "Australia", "litres", 109.9)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "5", "country", "Austria", "litres", 108.3)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "6", "country", "UK", "litres", 65.0)));
    dataProvider.addItem(new MapDataItem(ParamsMap.of("id", "7", "country", "Belgium", "litres", 40.0)));
    AbstractChart chart = new PieChartModelImpl().setDataProvider(dataProvider).setDepth3D(15).setAngle(30).setValueField("litres").setTitleField("country").setBalloonText("[[title]] - [[percents]]%").setLegend(new Legend().setMarkerType(MarkerType.CIRCLE).setPosition(LegendPosition.RIGHT).setMarginRight(80).setAutoMargins(false)).setExport(new Export());
    ChartSerializer serializer = getTestSerializer();
    String json = serializer.serialize(chart);
    String expected = readFile("PieChart.json");
    assertEquals(prettyJson(expected), prettyJson(json));
}
Also used : ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) DataProvider(io.jmix.ui.data.DataProvider) ListDataProvider(io.jmix.ui.data.impl.ListDataProvider) Legend(io.jmix.charts.model.legend.Legend) ChartSerializer(io.jmix.charts.widget.amcharts.serialization.ChartSerializer) Export(io.jmix.charts.model.export.Export) MapDataItem(io.jmix.ui.data.impl.MapDataItem) Test(org.junit.jupiter.api.Test)

Aggregations

Export (io.jmix.charts.model.export.Export)5 ListDataProvider (io.jmix.ui.data.impl.ListDataProvider)5 Test (org.junit.jupiter.api.Test)5 ChartSerializer (io.jmix.charts.widget.amcharts.serialization.ChartSerializer)3 Scrollbar (io.jmix.charts.model.Scrollbar)2 ValueAxis (io.jmix.charts.model.axis.ValueAxis)2 StockChartGroup (io.jmix.charts.model.chart.impl.StockChartGroup)2 StockPanel (io.jmix.charts.model.chart.impl.StockPanel)2 Cursor (io.jmix.charts.model.cursor.Cursor)2 DataSet (io.jmix.charts.model.dataset.DataSet)2 FieldMapping (io.jmix.charts.model.dataset.FieldMapping)2 Graph (io.jmix.charts.model.graph.Graph)2 Period (io.jmix.charts.model.period.Period)2 PeriodSelector (io.jmix.charts.model.period.PeriodSelector)2 ChartCursorSettings (io.jmix.charts.model.settings.ChartCursorSettings)2 ChartScrollbarSettings (io.jmix.charts.model.settings.ChartScrollbarSettings)2 StockGraph (io.jmix.charts.model.stock.StockGraph)2 StockLegend (io.jmix.charts.model.stock.StockLegend)2 JmixStockChartSerializer (io.jmix.charts.serialization.JmixStockChartSerializer)2 StockChartSerializer (io.jmix.charts.widget.amcharts.serialization.StockChartSerializer)2