Feature/data manipulation distinction#82
Conversation
Documentation build overview
48 files changed ·
|
There was a problem hiding this comment.
Pull request overview
This PR introduces a clearer separation between visual customization and data manipulation for plotted grids, and adds support for selecting an interpolation method when data is interpolated (needed for follow-up work in PR #74).
Changes:
- Split the customization entrypoint into two actions: Data manipulation vs Visual customization.
- Add interpolation-method discovery (
/info/data_manipulation_methods) and propagateinterpolated_methodthrough plot state and fetch paths. - Update plotting/customization flows (downsampling, range restore, error bands, metadata fetch) to respect the selected interpolation method.
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| frontend/src/tests/plot-ui.spec.ts | Updates E2E selector to use the new visual customization button test id. |
| frontend/src/renderer/utils/plot.ts | Threads interpolated_method through plot creation, interpolation refresh, error bands, and reload logic. |
| frontend/src/renderer/utils/fetchData.ts | Adds interpolation method plumbing and new API call for manipulation methods. |
| frontend/src/renderer/types/plot.ts | Adds interpolated_method to plot state types and removes duplicate downsampling fields. |
| frontend/src/renderer/types/data.ts | Adds interpolated_method to plot response typing and introduces manipulation-method response types. |
| frontend/src/renderer/types/configuration.ts | Changes customizedGridLayout from an id to {id,type} to support the split customization modes. |
| frontend/src/renderer/pages/visualization/VisualizationMetaData.tsx | Fetches metadata coordinates using the currently selected interpolation method and dependencies. |
| frontend/src/renderer/pages/visualization/DataplotCustomization.tsx | Renders different accordions based on customization type and propagates interpolated_method. |
| frontend/src/renderer/pages/visualization/customizableElements/index.ts | Re-exports customization components, including interpolation. |
| frontend/src/renderer/pages/visualization/customizableElements/CustomizeInterpolation.tsx | New UI + logic to select interpolation method and re-fetch interpolated data/error bands. |
| frontend/src/renderer/pages/visualization/customizableElements/CustomizeDownsampling.tsx | Ensures downsampling refetch keeps interpolation dependencies/method. |
| frontend/src/renderer/pages/visualization/customizableElements/CustomizeDataRange.tsx | Ensures range restore refetch keeps interpolation dependencies/method. |
| frontend/src/renderer/layout/MainLayout.tsx | Includes interpolated_method when preparing plot layout state. |
| frontend/src/renderer/components/tree/TreeLibrariesAccordion.tsx | Adapts to new customizedGridLayout shape by passing .id. |
| frontend/src/renderer/components/grid/HoverButtons.tsx | Adds separate “Data manipulation” and “Visual customization” buttons. |
| frontend/src/renderer/components/grid/GridLayoutPlot.tsx | Updates customization handler to store {id,type}. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Done @olivhoenen |
|
Thx @mfiaudrin-epsyl. The menu splitting works and the icons are explicit. I'm merging this and expect that the data manipulation functionalities and issues will be addressed in #73 Note that while testing I faced initially an issue while synchronizing two plots: the synchronization was somehow one way only, meaning that the sync icon was present on a single plot, when I was moving the slider from this plot the second plot without icon was also moving, but when I was moving the second plot's slider the first plot stayed still. I can not reproduce this after testing develop and again the PR, so no action but something that we should monitor later. |
This feature add :
IMPORTANT
Since this feature is needed to continue #74 implementation, I need to merge it in priority in order to not be blocked.