Releases: fair-acc/chart-fx
Minor Release
What's Changed
- Zoomer: add a user definable predicate for panning by @ichaus-we in #631
- LimitedIndexedTreeDataSet: fix yErrors by @wirew0rm in #653
- Initial zoom in Zoomer is incorrect by @ToniMarc1990 in #660
New Contributors
- @ichaus-we made their first contribution in #631
- @ToniMarc1990 made their first contribution in #660
Full Changelog: 11.3.0...11.3.1
11.3.0 Major release
Hello everyone 👋
It's been quite some time since the last release and the announcement of starting to work on a major release to fix some of the outstanding maintainability issues, but now we are finally at a state to release ChartFx 11.3.0! The release brings a lot of performance and stability improvements, cleans up a lot of the organically grown code to make it easier to maintain and fix bugs within in the future and fixes some long outstanding bugs some of which were deeply rooted in the way things were set up previously.
Major Improvements:
- New layout and event system #594. This is by far the biggest improvement and change and we're very thankful for all the hard work @ennerf has put into this.
- layout: removes lots of notorious rendering inconsistencies by using a global preLayout listener to update all the chart wide state
- befor/after comparisons: #579 (comment)
- event system: DirtyBit based event system for chart events. this ensures that expensive computations and rendering steps are in in
almost all cases performed exactly once.- before/after comparisons: #530 (comment)
- all datasets now belong to a renderer. The shared datasets were removed from the chart.
- the error surface hatch is now shifted and can show overlapping error surfaces
- for technical details take a look at the individual PRs/issues and the Architecture.md file.
- layout: removes lots of notorious rendering inconsistencies by using a global preLayout listener to update all the chart wide state
- Consistent CSS styling for all chart components #598
- Several renderer styling parameters moved to the datasets (line width, color, etc)
- replaces custom ColorScheme classes and Style parsers
- might need some adjustments where ChartFx used non-standard CSS property names before
- follow-up PR also allows complete style control for datasets using CSS #603. Because DataSets can be in multiple Renderers/Charts, but stylable nodes can be in the scene graph only once, a DatasetNode unique to the renderer is created. This is transparent to the user but it can be accessed to change the style from code. For more Details see the PR description.
- improved axis label generation based on the schubfach algorithm removing the huge (20Mb) icu4j dependency #575
- use controlsfx's sampler to display our samples instead of having the launcher with a list of buttons #578 + #593 (thanks at @uosis for the followup fix #581)
- added code to optionally collect and/or display latency histogram data for different parts of the code #604, #614, #618
Bugfixes:
- fix 2d histogram getGrid() #628, thanks to @ajackson2681
- ErrorDataSetRenderer: fix bubble chart error value handling #596, thanks @protogenes for finding the bug and solution.
- make ChartFx applications and samples terminate properly #598
- Zoomer: perform zoom actions based on display coordinates #602. This allows to properly zoom in logarithmic plots.
- DragResizerUtil: fix copy and paste error #606, thanks to @rsuna
- Allow CSS styling of line cap and join for line charts and add sensible defaults, javafx defaults can create display artifacts outside of the acutal data range #626, thanks @protogenes for bringing this up
CI:
- changed the package names from
de.gsi.chart
toio.fair_acc.chartfx
. This should by far be the biggest user facing change but unfortunately was necessary for deployment reasons. Sorry for the inconvenience, but the changes should be mostly mechanical. - changed code level to java 17 and added a java 20 build, dropping java 11 support
- code-formatting: switch to clang-format-16, disable restyler PRs (apply fixes by downloading the diff by clicking on "Details" for the failed CI check) and apply consistent formatting to the whole project
- Added a logo, banner and updated outdated badges #619, thanks to @milo-gsi for the original logo design and iterations!
- conveyor packaging for the sample application to easily showcase ChartFx on different systems #580
- remove fastutil dependency by sharding the few classes used by ChartFx #576
Please let us know if there are any bigger problems in upgrading, any regressions we missed or just your (hopefully positive) experience with the new release in the linked discussion.
Minor Release
New Features
- add visibility state and toggling of datasets (#481)
- added visibility state to datasets and the error renderer
- changed EditDataSet to not allow modifications on hidden datasets
- Thanks for @ennerf for contributing this feature
- add
TimeAxisNonLinearSample
which shows how to implement custom axes.
Bugfixes
- Allow to apply colors for bar charts per data point using the
dataset.addDataStyle(index, "fillColor=cyan;")
API. Thanks @edkennard for reporting, fixing and contributing! 👍 - Fix axis range for padded axes
solves #469 by also using the computed autoRange() result which includes
the padding when calculating the tick marks. - Prevent relayouting of the chart on indicator change (#485)
Set the layout property of the indicator triangle to unmanaged s.t.
changes on the triangle will not invalidate the layout of its parent.
fixes #476
Housekeeping
- github actions: continue on error for codacy coverage
- bump jackson-databind from 2.9.10.7 to 2.9.10.8 in /microservice
Announcement
This will be the last version for de.gsi.*
packages. Starting with 11.3.0
chart-fx will move to the io.fair-acc.*
prefix and this repository will be moved to the fair-acc github organisation to align with our other open source packages. This should not change too much for you as a user except that you will have to update your imports (sorry for that), but will simplify our development and open source deployment processes a lot.
After this move we then want to also tackle some bigger improvements.
Maintenance Release
New feature/enhancements and fixes for user-reported bugs and those identified via static-code-analysis (Codacy, lgtm & coverity)
new functionalities:
- user agent style sheet for default css and corresponding sample
- Financial Footprint Chart Renderer added. (#415)
- allow the ci to be run for external PRs
- peak-width-via-integral estimator
- new Formatter interface definition (#444)
bug fixes:
- fix padded auto grow ranging & added PaddedAutoGrowAxisSample
- inverted non-auto-range axes defaulting to +-1 (#383)
- show DataPointTooltip for first dataset for overlapping points (#457)
- ValueIndicator: disable dragging for non editable indicators
- Add test dataset for different error types to ErrorDataSetRendererSample
- Fix DefaultDataReducer, correct treatment of NaN values, and added unit-test
- fixed DataSetMath integration and ErrorDataSetRenderer bug
- YWatchValueIndicator: improvements, prevent occlusion of value labels and fix YWatchValueIndicatorTest (#443)
- miscellaneous fixes for issues detected by static-code analysis tools (Codacy, lgtm & coverity)
Maintenance Release - HotFix for 11.2.4
No new features but an important bug-fix for an issue that has been introduced with the 11.2.4 release.
bug fixes:
- fixes autoranging for CircularDoubleErrorDataSet (issue #378)
- some additional unit-tests and follow-up fixes
Maintenance Release
This release has a few new features and mostly bug-fixes for user-reported issues.
Special thanks to @raven2cz and @dedeibel! 👍
new features:
- financial charts: positions and orders added
- move from Travis to Github Actions (#348)
bug fixes:
- add missing invokeListener(..) on set(DataSet, boolean) methods
- fixes issue366 (#367)
- fix337 tooltip synchronization (#339)
- TableViewer: fix calls to hashCode of DataSetsRow & unit-test (#343)
- TableViewer: table cells can now be selected again (#341)
- miscellaneous fixes reported by Coverity and Codacy
Pre-Holiday Release
This release has a few bug-fixes and notably new renderers targeting financial applications.
Special thanks to @raven2cz and @HanSolo who contributed to this release. 👍
new features:
- CandleStickRenderer, HighLowRenderer, Basic Financial API (#316, #326)
For details, please have a look at the snapshots and demos provided. - GitHub action that runs the tests on each push also for users outside the organisation
bug fixes:
- Correct automatic module names (N.B. may not contain '-' since JDK9 #321)
- Fixed MultiArray and DoubleGrid DataSets to use row-major storage as documented (#329)
This is an internal change and most users should not be affected by this.
N.B. rationale: depending on the math sub-domain:- algebra (matrices, tensors, etc.) commonly use row-major notation, while
- charting typically requires column-major order. ie. abscissa (e.g. 'x'-coordinate)==column before ordinate (e.g. 'y'-coordinate) ==row.
Transposing the dimensions/shape is now done in the top-most DataSet interface that is being plotted.
Finally, a quick show-case of one of the many new financial chart related features:
Maintainance Release
This release has a few new features and bug-fixes for user-reported issues.
new features:
- generic RESTful 'Clipboard' (#272) that facilitates a simple web-export of Java, JavaFX, and (of course) Chart-fx content.
- new HistogramRenderer with support for non-equidistant binning (#292, notably issues: #80 #246 #265)
- upgraded DataSetMath: support math-operation on DataSets with different x-axis sampling
- upgrades to DataPointTooltip plugin:
- show tool tip for all data in chart
- make 'Label' fully customisable through overwridable DataPointTooltip::updateLabel(...)
- use AbstractAxisFormatting facilities instead of custom code in the Tooltip plugin
- uploaded initial concepts for a new middle-ware and microservice backend (WIP: #272, #273, #298, #307, #312)
bug fixes:
- fixed setAutoRangePadding() regression bug (#277)
- add table view only to chart if really shown (#280, special thanks to @dedeibel)
- fixed slow axis memory-leak by replacing WeakHashMap with SoftHashMap<...,TickMark> - based cache implementation (#291)
- fixed indexing error HistogramRenderer::drawPolyLineStairCase(..)
- fix scroll zoom bug (special thanks to @milo-gsi)
Maintainance Release
This release contains only small bugfixes from issues or leftovers from the 11.2. refactoring:
- Histogram indexing fixed and clarified bin boundaries when using the constructor
- Axes now get consistently updated on range change (#259)
- Inverted x-Axis did not show labels bc of overlap detection (#261)
- Error DataSetRenderer for inverted x-Axis
- Wrong errors on last point after data reduction (#265)
- Oscilloscope axis was broken and needed adjustments
- FXML support was broken due to a missing default constructor
- Additional unit tests (AbstractAxis) and code cleanup