cheminfo / nmrium

React component to display and process nuclear magnetic resonance (NMR) spectra.
https://docs.nmrium.org
MIT License
48 stars 24 forks source link

Advanced apodization options in processing panel #2721

Open lpatiny opened 8 months ago

lpatiny commented 8 months ago

@jobo322 is currently implementing many apodization functions and it is not possible anymore to only have options in the top bar like it is done currently:

image

While we could keep for basic processing (only LB I think) in the top bar, more advanced options should be moved to the processing panel that should be completely reconsidered to plan more functionalities in the future.

Each filter should be rather a open / close section in which many options could be setup and be interactive as well (meaning changing those option may have in case preview is selected a live effect on the spectrum).

In the header of the filter we will have the open/close section, name of the filter, the delete icon and the 'Enable' checkbox as we have currently.

When we open the filter we will have many options that could be, like it the case of apodization of 2D spectra, a panel with 2 tabs for F1 / F2.

For apodization there should be a big refactor of the options because we should have for each processing a checkbox that toggle on / off individually. We should also consider to have only one filter for 2D that does apodization on F1 and F2. There should nevertheless be different filters for 1D and 2D processing.

@jobo322 Could you propose a new structure for the preferences ?

hamed-musallam commented 8 months ago

What about having a new button advanced options which will open a new dialog that contains all the options or we could open the processing panel with all the options for the selected filter?

jobo322 commented 8 months ago

For 1D it would be perfect because usually, the user goes for an exponential or Lorentz-Gaussian window. But for 2D the same panel is not that interesting because the sine Bell or Gaussian windows functions are usually used.

lpatiny commented 6 months ago

The idea is to remove the interaction of the properties and wait for this issue to be closed:

After clicking on the property will trigger this animation in order to get a new panel with the custom filter preferences.

image

lpatiny commented 4 months ago

@hamed-musallam Could you start implementation of the advanced options.

We can have an 'Edit' on each line for which we have advanced options. At first just for Apodization.

You can get inspired by: https://react-science.pages.dev/stories/?path=/story/components-panelheader--with-accordion-panel-toolbar-stacked-panel

When we click on Apodization in the header there could be a simple form that contains only 'Line broadening' and in the Processings panel an advanced form showing the 3 current options.

The 'Apply' button would have the same effect as 'v' from the stacked panel

image