Skip to content
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

ParameterMeasurement: Reuse Indicators for charts with multiple axes/renderers #204

Open
Tracked by #527
wirew0rm opened this issue Jun 5, 2020 · 1 comment
Open
Tracked by #527
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@wirew0rm
Copy link
Member

wirew0rm commented Jun 5, 2020

If axes have multiple axes the DataSet measurements have to determine, which one belongs to the selected DataSet and generate the corresponding indicators.
Until recently only the first global axes where used so it was impossible to have indicators/measurements for multiple renderers/axes.
For now this is mitigated by disabling the re-use of indicators by default when more than 2 axes are present:

image

This intermediate solution has some limitations and drawbacks:

  • There is no indication of which axis a marker belongs to
  • It is impossible to reuse existing markers on different DataSets for the same position.

The proposed change is be to return the values for all axes of the same orientation as the indicator.

@wirew0rm wirew0rm added the enhancement New feature or request label Jun 5, 2020
@wirew0rm
Copy link
Member Author

wirew0rm commented Sep 4, 2020

  • currently the data value is stored in the indicator
    • should we store a value for each matching axis?
    • what happens if the range of a single axis changes / new axes get added?
    • irrelevant because of the next point
  • acutally the ValueIndicator knows its axis, it is passed to it in the constructor and exposed via getAxis()
    • we can filter axes to find the axis relevant for the dataSet
    • this fact should be represented in the UI, e.g. by moving the indicator triangle into the corresponding axis?

New Problem: how to map DataSets to axes? A ChartMeasurement knows its DataSet(s), but not the axis which is used to render it.

  • Iterate over all Renderers that contain the DataSet and get the axis for the required dimension, then filter Indicators for this axis.
  • DataSets can be added to more than one Renderer, possibly with different axes
    • rare case, just take the first matching axis? OTOH DataSetMeasurements always create a new axis (could probably be changed)
  • What happens for Measurements with multiple DataSets?
    • it should probably be enforced that they are using the same axis, at least for the one relevant to the indicators

filter for DataSet selector: disable all datasets whose renderer has the wrong axis in the dimension needend by the measurements
filter for Indicator selector: disable all indicators which are not using the axis used by the dataset's renderer(s)
validation method in Measurement::handle: check if there is only one axis for all renderers containing the dataset(s) and all indicators. If this is not the case, disable the measurement until it is reconfigured correctly.

@wirew0rm wirew0rm changed the title ValueIndicators: Handle multiple axes ParemeterMeasurement: Reuse Indicators for charts with multiple axes/renderers Apr 14, 2021
@RalphSteinhagen RalphSteinhagen changed the title ParemeterMeasurement: Reuse Indicators for charts with multiple axes/renderers ParameterMeasurement: Reuse Indicators for charts with multiple axes/renderers Apr 14, 2021
@wirew0rm wirew0rm mentioned this issue Jun 28, 2022
27 tasks
@wirew0rm wirew0rm added this to the chartfx 11.3 milestone Jun 28, 2022
@wirew0rm wirew0rm self-assigned this Aug 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant