diff --git a/Framework/AutoDialog/AutoDialog/src/main/java/org/peakaboo/framework/autodialog/model/style/layouts/FramedLayoutStyle.java b/Framework/AutoDialog/AutoDialog/src/main/java/org/peakaboo/framework/autodialog/model/style/layouts/FramedLayoutStyle.java index 9b0a4f4e4..b61ea1b17 100644 --- a/Framework/AutoDialog/AutoDialog/src/main/java/org/peakaboo/framework/autodialog/model/style/layouts/FramedLayoutStyle.java +++ b/Framework/AutoDialog/AutoDialog/src/main/java/org/peakaboo/framework/autodialog/model/style/layouts/FramedLayoutStyle.java @@ -2,20 +2,26 @@ public class FramedLayoutStyle extends SimpleLayoutStyle { - private boolean hiddenOnDisable; + private boolean hiddenOnDisable = false, showBorder = true; public FramedLayoutStyle() { super("layout-frames"); } - public FramedLayoutStyle(boolean hideWhenDisabled) { + public FramedLayoutStyle(boolean hideWhenDisabled, boolean showBorder) { this(); this.hiddenOnDisable = hideWhenDisabled; + this.showBorder = showBorder; } public boolean isHiddenOnDisable() { return hiddenOnDisable; } + + public boolean isShowBorder() { + return showBorder; + } + diff --git a/Framework/AutoDialog/AutoDialogSwing/src/main/java/org/peakaboo/framework/autodialog/view/swing/layouts/FramesSwingLayout.java b/Framework/AutoDialog/AutoDialogSwing/src/main/java/org/peakaboo/framework/autodialog/view/swing/layouts/FramesSwingLayout.java index 4c62d5361..27f464eab 100644 --- a/Framework/AutoDialog/AutoDialogSwing/src/main/java/org/peakaboo/framework/autodialog/view/swing/layouts/FramesSwingLayout.java +++ b/Framework/AutoDialog/AutoDialogSwing/src/main/java/org/peakaboo/framework/autodialog/view/swing/layouts/FramesSwingLayout.java @@ -7,16 +7,23 @@ import javax.swing.border.TitledBorder; import org.peakaboo.framework.autodialog.model.style.layouts.FramedLayoutStyle; +import org.peakaboo.framework.stratus.api.Spacing; public class FramesSwingLayout extends SimpleSwingLayout { @Override public JComponent getComponent() { + FramedLayoutStyle style = (FramedLayoutStyle) group.getStyle(); + JPanel panel = new JPanel(new BorderLayout()); panel.add(root, BorderLayout.CENTER); - panel.setBorder(new TitledBorder(group.getName())); + var border = new TitledBorder(group.getName()); + if (!style.isShowBorder()) { + border.setBorder(Spacing.bNone()); + } + panel.setBorder(border); + - FramedLayoutStyle style = (FramedLayoutStyle) group.getStyle(); if (style.isHiddenOnDisable()) { panel.setVisible(group.isEnabled()); group.getEnabledHook().addListener(e -> { diff --git a/LibPeakaboo/src/main/java/org/peakaboo/curvefit/curve/fitting/FittingParameters.java b/LibPeakaboo/src/main/java/org/peakaboo/curvefit/curve/fitting/FittingParameters.java index fbe788914..49a8d1ea5 100644 --- a/LibPeakaboo/src/main/java/org/peakaboo/curvefit/curve/fitting/FittingParameters.java +++ b/LibPeakaboo/src/main/java/org/peakaboo/curvefit/curve/fitting/FittingParameters.java @@ -30,7 +30,7 @@ public FittingParameters(FittingParametersView params, FittingSet fits) { /** * Constructs a new "dead" or "unwired" FittingParameters object without a - * reference to a parent {@link FittingSet} since a readonly params does not + * reference to a parent {@link FittingSet} since a params view does not * provide access to that. */ public FittingParameters(FittingParametersView params) { diff --git a/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/advanced/SpectrumNormalizationFilter.java b/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/advanced/SpectrumNormalizationFilter.java index b0f6d6dd2..02c833268 100644 --- a/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/advanced/SpectrumNormalizationFilter.java +++ b/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/advanced/SpectrumNormalizationFilter.java @@ -19,8 +19,8 @@ import org.peakaboo.framework.autodialog.model.style.editors.RealStyle; import org.peakaboo.framework.autodialog.model.style.layouts.FramedLayoutStyle; import org.peakaboo.framework.cyclops.spectrum.ArraySpectrum; -import org.peakaboo.framework.cyclops.spectrum.SpectrumView; import org.peakaboo.framework.cyclops.spectrum.SpectrumCalculations; +import org.peakaboo.framework.cyclops.spectrum.SpectrumView; public class SpectrumNormalizationFilter extends AbstractFilter { @@ -45,7 +45,7 @@ public enum SmoothingIntensity { private static final String MODE_RANGE = "Channel Range"; private static final String MODE_MAX = "Strongest Channel"; private static final String MODE_SUM = "All Channels"; - private static final String MODE_FIT = "Element"; + private static final String MODE_FIT = "Element Fitting"; @Override public String pluginVersion() { @@ -55,32 +55,32 @@ public String pluginVersion() { @Override public void initialize() { - pMode = new SelectionParameter<>("Mode", new ListStyle(), MODE_FIT, this::validate); + pMode = new SelectionParameter<>("Mode", new ListStyle(), MODE_SUM, this::validate); pMode.setPossibleValues(MODE_FIT, MODE_RANGE, MODE_MAX, MODE_SUM); addParameter(pMode); - pHeight = new Parameter<>("Normalized Intensity", new RealStyle(), 10f, this::validate); + pHeight = new Parameter<>("Target Intensity", new RealStyle(), 10f, this::validate); addParameter(pHeight); - pSmooth = new SelectionParameter<>("Noise Reduction", new ListStyle<>(), SmoothingIntensity.Low, new EnumClassInfo<>(SmoothingIntensity.class), this::validate); + pSmooth = new SelectionParameter<>("Denoise", new ListStyle<>(), SmoothingIntensity.Low, new EnumClassInfo<>(SmoothingIntensity.class), this::validate); pSmooth.setPossibleValues(SmoothingIntensity.values()); addParameter(pSmooth); pStartChannel = new Parameter<>("Start Channel", new IntegerStyle(), 1, this::validate); pEndChannel = new Parameter<>("End Channel", new IntegerStyle(), 10, this::validate); - gChannelRange = new Group("Channel Range", new FramedLayoutStyle(true), pStartChannel, pEndChannel); + gChannelRange = new Group("Channel Range", new FramedLayoutStyle(true, false), pStartChannel, pEndChannel); addParameter(gChannelRange); - pElement = new SelectionParameter<>("Fiting Element", new ListStyle<>(), Element.Ar, new EnumClassInfo<>(Element.class), this::validate); + pElement = new SelectionParameter<>("Element", new ListStyle<>(), Element.Ar, new EnumClassInfo<>(Element.class), this::validate); pElement.setPossibleValues(Element.values()); pElement.setEnabled(false); - pShell = new SelectionParameter<>("Fitting Shell", new ListStyle<>(), TransitionShell.K, new EnumClassInfo<>(TransitionShell.class), this::validate); + pShell = new SelectionParameter<>("Shell", new ListStyle<>(), TransitionShell.K, new EnumClassInfo<>(TransitionShell.class), this::validate); pShell.setPossibleValues(TransitionShell.K, TransitionShell.L, TransitionShell.M); pShell.setEnabled(false); - gElement = new Group("Element Selection", new FramedLayoutStyle(true), pElement, pShell); + gElement = new Group("Fitting Selection", new FramedLayoutStyle(true, false), pElement, pShell); addParameter(gElement); validate(null); @@ -127,14 +127,18 @@ protected SpectrumView filterApplyTo(SpectrumView data, Optional ITransitionSeries ts = PeakTable.SYSTEM.get(pElement.getValue(), pShell.getValue()); FilterContext context = requireContext(ctx); - - float energy = ts.getStrongestTransition().energyValue; - int channel = context.fittings().getFittingParameters().getCalibration().channelFromEnergy(energy); - startChannel = Math.max(channel-5, 0); - endChannel = Math.min(channel+5, data.size()-1); - int frange = (endChannel - startChannel) + 1; - currentIntensity = filteredData.subSpectrum(startChannel, endChannel).sum() / frange; - + var calibration = context.fittings().getFittingParameters().getCalibration(); + if (calibration.isZero()) { + //Can't filter, return original data + return data; + } else { + float energy = ts.getStrongestTransition().energyValue; + int channel = context.fittings().getFittingParameters().getCalibration().channelFromEnergy(energy); + startChannel = Math.max(channel-5, 0); + endChannel = Math.min(channel+5, data.size()-1); + int frange = (endChannel - startChannel) + 1; + currentIntensity = filteredData.subSpectrum(startChannel, endChannel).sum() / frange; + } } float ratio = currentIntensity / desiredIntensity; diff --git a/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/noise/SavitskyGolayNoiseFilter.java b/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/noise/SavitskyGolayNoiseFilter.java index 0612eda33..aed991cd4 100644 --- a/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/noise/SavitskyGolayNoiseFilter.java +++ b/LibPeakaboo/src/main/java/org/peakaboo/filter/plugins/noise/SavitskyGolayNoiseFilter.java @@ -14,8 +14,8 @@ import org.peakaboo.framework.autodialog.model.style.editors.RealStyle; import org.peakaboo.framework.autodialog.model.style.editors.SeparatorStyle; import org.peakaboo.framework.cyclops.spectrum.ArraySpectrum; -import org.peakaboo.framework.cyclops.spectrum.SpectrumView; import org.peakaboo.framework.cyclops.spectrum.Spectrum; +import org.peakaboo.framework.cyclops.spectrum.SpectrumView; //From Handbook of X-Ray Spectrometry public class SavitskyGolayNoiseFilter extends AbstractFilter { @@ -51,7 +51,7 @@ public void initialize() { reach = new Parameter<>("Half-Window Size", new IntegerStyle(), 4, this::validate); order = new Parameter<>("Polynomial Order", new IntegerStyle(), 3, this::validate); - Parameter sep = new Parameter<>(null, new SeparatorStyle(), 0); + Parameter sep = new Parameter<>("separator", new SeparatorStyle(), 0); ignore = new Parameter<>("Only Smooth Weak Signal", new BooleanStyle(), false, this::validate); max = new Parameter<>("Smoothing Cutoff: (counts)", new RealStyle(), 4.0f, this::validate); max.setEnabled(false);