-
Notifications
You must be signed in to change notification settings - Fork 93
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reenable MathDataSet and ParameterMeasurements #616
Conversation
Scenic view adds dependencies on jfx 11 which sometimes override the jfx13 dependencies of chart-fx. This leads to errors with renderers which depend on jfx13 features, leading to MethodNotFound exceptions.
The panner plugin has been long superseded and deprecated by the Zooomer plugin and this is a good chance to finally retire it, since it could cause confusion if zoomer and panner where both added to a chart.
Delete to force fixing all occurences of the old event system.
Pull Request ReviewHey there! 👋 I hope you're doing well. I've summarized the previous results for you to write a Pull Request review markdown doc. Let's get started! Changes
Suggestions
Bugs
Improvements
RatingRate the code from 0 to 10 based on the following criteria:
Please provide a brief explanation for each criterion. That's it! You're all set to write your Pull Request review markdown doc. Good luck! 🚀 |
a2a9c65
to
1727046
Compare
Codecov ReportPatch coverage:
Additional details and impacted files@@ Coverage Diff @@
## main #616 +/- ##
============================================
+ Coverage 48.00% 48.11% +0.11%
- Complexity 6180 6210 +30
============================================
Files 394 373 -21
Lines 38176 38206 +30
Branches 6085 6101 +16
============================================
+ Hits 18325 18383 +58
+ Misses 18703 18676 -27
+ Partials 1148 1147 -1
☔ View full report in Codecov by Sentry. |
98097db
to
2a1125a
Compare
2a1125a
to
8939d07
Compare
* Port Measurements and MathDataSets to new event system * indicators: use and set dirty flags * event processors: thread and animation timer based * split trending measurements from dataset measurements * feedback from @ennerf: * changed to fireInvalidated shorthand * removed locks from bitstate * ValueIndicators: move from bitstate to directly calling postListener * YIndicator: fix drag offset
8939d07
to
cfadee2
Compare
SonarCloud Quality Gate failed. 1 Bug No Coverage information Catch issues before they fail your Quality Gate with our IDE extension SonarLint |
Reenable the DataSet processing capabilities with the new DirtyFlag based Event system.
MathDataSet and Measurements have their own dirty flag, which subscribes with an invalidationListener to the dirty flags of the datasets, indicators and measurements it depends upon. This flag, together with an update function is added to an EventProcessor, which reevaluates all modified entities.
There can be multiple EventProcessor implementations, this PR provides an AnimationTimer based one, which computes updates on the FxApplicationThread (but outside of the render loops dataset locks!) and a Thread based one which computes all updates on a single background daemon thread. This can be extended in the future to use e.g. a ThreadPool.
One thing to keep in mind is to be careful with locking datasets inside of the functions supplied to the MathDataSet. Since the renderer holds read locks to all shown datasets, getting a write lock on more than the MathDataSet itself will cause Deadlocks
The MathDataset can be observed in the TSpectrumSample and the HistogramRendererBasicSample. The ParameterMeasurements can e.g. be used in the ErrorDataSetRenderer sample from the dropdown toolbar menu.
The main part of the changes is in the last commit, the previous commits are mostly independent small changes.