Skip to content

Commit 0a9471b

Browse files
committed
Merge branch 'develop' into update-from-template-merged
2 parents d38b73d + e0ccacd commit 0a9471b

File tree

172 files changed

+12780
-35
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

172 files changed

+12780
-35
lines changed

.github/ISSUE_TEMPLATE/bug_report.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ body:
1515
attributes:
1616
label: "Checklist"
1717
options:
18-
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/template-placeholder/releases/latest)"
18+
- label: "I am able to reproduce the bug with the [latest version](https://github.com/xdev-software/chartjs-java-model/releases/latest)"
1919
required: true
20-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
20+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/chartjs-java-model/issues) or [closed](https://github.com/xdev-software/chartjs-java-model/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
2121
required: true
2222
- label: "I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise."
2323
required: true

.github/ISSUE_TEMPLATE/enhancement.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ body:
1313
attributes:
1414
label: "Checklist"
1515
options:
16-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
16+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/chartjs-java-model/issues) or [closed](https://github.com/xdev-software/chartjs-java-model/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1717
required: true
1818
- label: "I have taken the time to fill in all the required details. I understand that the feature request will be dismissed otherwise."
1919
required: true

.github/ISSUE_TEMPLATE/question.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
attributes:
1313
label: "Checklist"
1414
options:
15-
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/template-placeholder/issues) or [closed](https://github.com/xdev-software/template-placeholder/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
15+
- label: "I made sure that there are *no existing issues* - [open](https://github.com/xdev-software/chartjs-java-model/issues) or [closed](https://github.com/xdev-software/chartjs-java-model/issues?q=is%3Aissue+is%3Aclosed) - which I could contribute my information to."
1616
required: true
1717
- label: "I have taken the time to fill in all the required details. I understand that the question will be dismissed otherwise."
1818
required: true

.github/workflows/check-build.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030

3131
strategy:
3232
matrix:
33-
java: [17, 21]
33+
java: [11, 17, 21]
3434
distribution: [temurin]
3535

3636
steps:
@@ -44,7 +44,8 @@ jobs:
4444
cache: 'maven'
4545

4646
- name: Build with Maven
47-
run: ./mvnw -B clean package
47+
# Java 17 is required for tests
48+
run: ./mvnw -B clean package ${{ matrix.java >=17 && '-P run-integration-tests' || '-Dmaven.test.skip=true' }}
4849

4950
- name: Check for uncommited changes
5051
run: |
@@ -71,6 +72,14 @@ jobs:
7172
path: ${{ env.DEMO_MAVEN_MODULE }}/target/${{ env.DEMO_MAVEN_MODULE }}.jar
7273
if-no-files-found: error
7374

75+
- name: Upload screenshots of test failures
76+
if: failure()
77+
uses: actions/upload-artifact@v4
78+
with:
79+
name: test-fail-screenshots-${{ matrix.java }}
80+
path: ${{ env.PRIMARY_MAVEN_MODULE }}/target/screenshots
81+
if-no-files-found: ignore
82+
7483
checkstyle:
7584
runs-on: ubuntu-latest
7685
if: ${{ github.event_name != 'pull_request' || !startsWith(github.head_ref, 'renovate/') }}

.run/Run Demo.run.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<component name="ProjectRunConfigurationManager">
22
<configuration default="false" name="Run Demo" type="Application" factoryName="Application">
33
<option name="MAIN_CLASS_NAME" value="software.xdev.Application" />
4-
<module name="template-placeholder-demo" />
4+
<module name="chartjs-java-model-demo" />
55
<option name="WORKING_DIRECTORY" value="$MODULE_DIR$" />
66
<extension name="coverage">
77
<pattern>

CHANGELOG.md

Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# 2.8.1
2+
* Migrated deployment to _Sonatype Maven Central Portal_ [#155](https://github.com/xdev-software/standard-maven-template/issues/155)
3+
4+
# 2.8.0
5+
* Synced ``TooltipOptions`` from ChartJS source code #330
6+
7+
# 2.7.0
8+
* ``Title``: Make it possible to set custom padding and multi-line text #316
9+
10+
# 2.6.0
11+
* Synced ``Doughnut/PieOptions`` from ChartJS source code #293
12+
* Synced ``GridLineConfiguration`` from ChartJS source code / improved Types for more options #289
13+
* Updated dependencies
14+
15+
# 2.5.0
16+
* Synced ``Legend`` from ChartJS source code #285
17+
18+
# 2.4.0
19+
* PointStyle can also contain non-string constants #280
20+
* Use ``CoreInteractionOptions`` for ``Options#interaction`` and ``Options#hover`` #281
21+
* Updated dependencies
22+
23+
# 2.3.1
24+
* Synced ``LineOptions/DataSet`` ``stepped`` and ``tension`` with ChartJS source #262
25+
* Updated dependencies
26+
27+
# 2.3.0
28+
* Update available datasets fields from ChartJS source code #244
29+
* Removed deprecated code
30+
31+
# 2.2.0
32+
* Improve color handling #238
33+
* Change ``Color`` to ``RGBAColor`` as it only handles RGBA
34+
* Change all occurrences of ``Color`` to ``Object`` so that other color models (e.g. HSLA or Hex) can be applied
35+
* Created ``HSLAColor`` that can be used like ``RGBAColor``
36+
37+
# 2.1.0
38+
* Charts no longer check if they are drawable #198
39+
* ChartJS behavior: If a chart can't be drawn it will render a empty canvas
40+
* Deprecated methods: ``Chart#toJsonNative`` and ``Chart#isDrawable``
41+
* Make ``IndexAxis`` available in all options
42+
43+
# 2.0.2
44+
_Same as version 2.1.0 - Version was not incremented correctly_
45+
46+
# 2.0.1
47+
* Restored ``DisplayFormats`` #186
48+
49+
# 2.0.0
50+
* Scales have been reworked and are now nearly identical to the [types defined in ChartJS](https://github.com/chartjs/Chart.js/blob/v4.4.3/src/types/index.d.ts)
51+
* The use of ``Color`` for various coloring related options is no longer required.
52+
* It's now possible to use e.g. strings
53+
54+
# 1.5.0
55+
* Added ``JsonIgnore`` to certain fields to help prevent infinite loops #174
56+
* Corrected model for ``Title`` and ``Font`` #175
57+
58+
# 1.4.1
59+
* Use ``Number`` instead of ``BigDecimal`` in some additional places #159 (@aripddev)
60+
61+
# 1.4.0
62+
* Simplify API by using ``Number`` instead of ``BigDecimal``, ``int`` and ``double`` for ``Datapoints`` #154 (@aripddev)
63+
64+
# 1.3.1
65+
* Add subtitle option #141 (@aripddev)
66+
* Add ``PointStyle#rectRounded`` #143 (@aripddev)
67+
* Add ``BubbleDataset#pointStyle`` #144 (@aripddev)
68+
* ``reverse`` property should be on the ``Scale`` object #145
69+
* Added all available properties for ``Legend``
70+
71+
# 1.3.0
72+
* Allows creation of mixed charts #128
73+
* New chart class: ``MixedChart``
74+
* Some classes have been renamed
75+
* ``Data`` -> ``HomogeneousData``
76+
* ``AbstractChart`` -> ``HomogeneousChart``
77+
* Slim down test dependencies
78+
79+
# 1.2.0
80+
* Add TimeScale and TimeTicks to allow building linear time charts #90 (@astappiev)
81+
* Add options for the [Zoom plugin](https://www.chartjs.org/chartjs-plugin-zoom/latest/) #117 (@astappiev)
82+
* Updated dependencies
83+
84+
# 1.1.3
85+
* Add ``toJsonNative`` method which doesn't run the ``isDrawable`` check #91
86+
87+
# 1.1.2
88+
* ⚠️ GroupId changed from ``com.xdev-software`` to ``software.xdev``
89+
90+
# 1.1.1
91+
* ``AngleLines#lineWidth`` now uses ``BigDecimal`` #76
92+
* Updated dependencies
93+
94+
# 1.1.0
95+
* Added support for more [data structures](https://www.chartjs.org/docs/4.4.0/general/data-structures.html) inside ``Dataset#data``
96+
* ``Dataset#data`` can now contain ``Object``s
97+
98+
# 1.0.2
99+
* Support Java 11
100+
* Updated dependencies
101+
102+
# 1.0.1
103+
* Added support for [stacked bar chart with groups](https://www.chartjs.org/docs/4.4.0/samples/bar/stacked-groups.html) (@dlemaignent)
104+
105+
# 1.0.0
106+
Initial release
107+
108+
Support for Chart.js v4
109+
110+
Noteworthy changes compared to [Chart.java](https://github.com/mdewilde/chart):
111+
* Changed the package to ``software.xdev.chartjs.model``
112+
* All charts (e.g. ``BarChart``, ``LineChart``, ...) are now inside the ``charts`` package
113+
* Breaking API changes due to compatibility with Chart.js v4; You may checkout the migration guides
114+
* [3.x Migration Guide](https://www.chartjs.org/docs/4.3.0/migration/v3-migration.html)
115+
* [4.x Migration Guide](https://www.chartjs.org/docs/4.3.0/migration/v4-migration.html)
116+
* JSON is no longer pretty printed by default due to performance reasons
117+
* Implemented integration tests
118+
* Requires Java 17

CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ You should have the following things installed:
3434
* Ensure that the JDK/Java-Version is correct
3535

3636

37-
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/release.yml?branch=master)](https://github.com/xdev-software/template-placeholder/actions/workflows/release.yml)
37+
## Releasing [![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/chartjs-java-model/release.yml?branch=master)](https://github.com/xdev-software/chartjs-java-model/actions/workflows/release.yml)
3838

3939
Before releasing:
40-
* Consider doing a [test-deployment](https://github.com/xdev-software/template-placeholder/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
40+
* Consider doing a [test-deployment](https://github.com/xdev-software/chartjs-java-model/actions/workflows/test-deploy.yml?query=branch%3Adevelop) before actually releasing.
4141
* Check the [changelog](CHANGELOG.md)
4242

4343
If the ``develop`` is ready for release, create a pull request to the ``master``-Branch and merge the changes

LICENSE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,7 @@
187187
identification within third-party archives.
188188

189189
Copyright 2024 XDEV Software
190+
Copyright 2020 Marceau Dewilde
190191

191192
Licensed under the Apache License, Version 2.0 (the "License");
192193
you may not use this file except in compliance with the License.

README.md

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,47 @@
1-
[![Latest version](https://img.shields.io/maven-central/v/software.xdev/template-placeholder?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/template-placeholder)
2-
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/template-placeholder/check-build.yml?branch=develop)](https://github.com/xdev-software/template-placeholder/actions/workflows/check-build.yml?query=branch%3Adevelop)
3-
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=xdev-software_template-placeholder&metric=alert_status)](https://sonarcloud.io/dashboard?id=xdev-software_template-placeholder)
1+
[![Latest version](https://img.shields.io/maven-central/v/software.xdev/chartjs-java-model?logo=apache%20maven)](https://mvnrepository.com/artifact/software.xdev/chartjs-java-model)
2+
[![Build](https://img.shields.io/github/actions/workflow/status/xdev-software/chartjs-java-model/check-build.yml?branch=develop)](https://github.com/xdev-software/chartjs-java-model/actions/workflows/check-build.yml?query=branch%3Adevelop)
3+
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=xdev-software_chartjs-java-model&metric=alert_status)](https://sonarcloud.io/dashboard?id=xdev-software_chartjs-java-model)
4+
[![ChartJS Documentation](https://img.shields.io/badge/Chart.js-documentation-ff6384?logo=Chart.js)](https://www.chartjs.org/docs/latest/)
45

5-
# template-placeholder
6+
# <img src="https://www.chartjs.org/media/logo.svg" height="38" /> chartjs-java-model
7+
Provides Java models for [Chart.js](https://www.chartjs.org/) so that e.g. a Java Server can build a chart and then instruct a JavaScript client what needs to be shown.
68

9+
This repo extends the abandoned [Chart.java](https://github.com/mdewilde/chart) and adds support for Chart.js Version 4+.
10+
11+
> [!NOTE]
12+
> We try our best to implement the ChartJS v4 API however there are a lot of configuration options.<br/>
13+
> Therefore some parts might still be missing or use the outdated v2 API from the original repo.<br/>
14+
> If you think you found a missing or incorrect API please open an issue and/or provide a pull request.
15+
16+
## Usage
17+
18+
Configuring a chart is straight forward and follows a builder like pattern:
19+
```java
20+
new BarChart(new BarData()
21+
.addLabels("A", "B")
22+
.addDataset(new BarDataset()
23+
.setLabel("X")
24+
.addData(1)
25+
.addData(2)))
26+
.toJson(); // Do something with the json like sending it to the client
27+
```
28+
29+
If you need more examples:
30+
* Have a look at the [demo](./chartjs-java-model-demo/)
31+
* or checkout how we do it in our [tests](./chartjs-java-model/src/test/java/software/xdev/chartjs/model/)
32+
* there are also [screenshots](./chartjs-java-model/src/test/resources/screenshotReferences/) available
733

834
## Installation
9-
[Installation guide for the latest release](https://github.com/xdev-software/template-placeholder/releases/latest#Installation)
35+
[Installation guide for the latest release](https://github.com/xdev-software/chartjs-java-model/releases/latest#Installation)
36+
37+
#### Compatibility with Chart.js
38+
| Chart.js | ``chartjs-java-model`` version |
39+
| --- | --- |
40+
| 4.x | ``1+`` |
41+
42+
#### Integrations
43+
* Vaadin - You can utilize the library in combination with our [Chart.js Wrapper for Vaadin](https://github.com/xdev-software/vaadin-chartjs-wrapper)
44+
* [Primefaces's Charts](https://showcase.primefaces.org/ui/chart/bar.xhtml)
1045

1146
## Support
1247
If you need support as soon as possible and you can't wait for any pull request, feel free to use [our support](https://xdev.software/en/services/support).
@@ -15,4 +50,10 @@ If you need support as soon as possible and you can't wait for any pull request,
1550
See the [contributing guide](./CONTRIBUTING.md) for detailed instructions on how to get started with our project.
1651

1752
## Dependencies and Licenses
18-
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/template-placeholder/dependencies)
53+
View the [license of the current project](LICENSE) or the [summary including all dependencies](https://xdev-software.github.io/chartjs-java-model/dependencies)
54+
55+
## Acknowledgment
56+
* To all [contributors](https://github.com/xdev-software/chartjs-java-model/graphs/contributors) that helped to improve this library
57+
* Especially to the devs at [PrimeTek/PrimeFaces](https://www.primefaces.org/) that regularly provide feedback and PRs
58+
59+
<sub>Disclaimer: This is not an official Chart.js product and not associated</sub>

SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
## Reporting a Vulnerability
44

5-
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/template-placeholder/security/advisories/new).
5+
Please report a security vulnerability [on GitHub Security Advisories](https://github.com/xdev-software/chartjs-java-model/security/advisories/new).

0 commit comments

Comments
 (0)