Loading INAF.Apps.Uwp.SLabDataManager/Charts/SpectraContainer.cs +21 −11 Original line number Diff line number Diff line Loading @@ -231,6 +231,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts #region spectra public async Task addOrUpdateSpectrumAsync(SpectrumModel spectrum) { tryGetSummaryOfType(spectrum.Type).init(spectrum); if (Spectra.Any(x => x.Type == spectrum.Type)) { /* if a spectrum of same type is already present, then replace it... */ Loading @@ -244,12 +246,10 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts else { /* ...otherwise, add it... */ Spectra.Add(spectrum); addSpectrum(spectrum); await setBoundariesAsync(); } tryGetSummaryOfType(spectrum.Type).init(spectrum); spectrum.PropertyChanged += Spectrum_PropertyChanged; } Loading @@ -266,6 +266,16 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts } #endregion private void addSpectrum(SpectrumModel spectrum) { spectrum.setColor(); Spectra.Add(spectrum); /* enable navigation to chart page */ IsAnySpectrumLoaded = true; isAnySpectrumLoaded = false;// trick to enable for the next added spectrum } #region summaries public void addOrUpdateSpectrumSummary(SpectrumSummaryModel spectrumSummary) { Loading Loading @@ -331,7 +341,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts #endregion #region alignment private SpectrumModel createAligningSpectrum() private SpectrumModel createAlignedSpectrum() { var aligningSpectrum = (SpectrumModel)tryGetSpectrumOfType(SpectrumType.Raw).Clone(); aligningSpectrum.setType(SpectrumType.Aligned); Loading @@ -344,14 +354,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts IsDialogRequired = false; DialogMessage = string.Empty; SpectrumModel aligningSpectrum = null; SpectrumModel alignedSpectrum = null; string exMsg = string.Empty; await Task.Run(() => { try { aligningSpectrum = createAligningSpectrum(); alignedSpectrum = createAlignedSpectrum(); /* try to retrieve the ref white max value for normalizing raw spectrum during alignment process */ double refWhiteMaxY = 1d; Loading Loading @@ -383,7 +393,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts /* normalize spectrum, if possible */ if (refWhiteSpectrum != null && refSpectrum != null) { multiplyByRef(ref aligningSpectrum, multiplyByRef(ref alignedSpectrum, refWhiteMaxY, refSpectrum); } Loading @@ -392,19 +402,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts var refLowSeparator = SpectrumAlignmentConfig.WavelengthSeparators.FirstOrDefault(x => x.CurrentValue >= SelectedRefBand.XMin && x.CurrentValue <= SelectedRefBand.XMax); var refHighSeparator = SpectrumAlignmentConfig.WavelengthSeparators.FirstOrDefault(x => x.CurrentValue > refLowSeparator.CurrentValue); var refSegment = aligningSpectrum.GetCenterSegmentElements(refLowSeparator.CurrentValue, refHighSeparator.CurrentValue); var refSegment = alignedSpectrum.GetCenterSegmentElements(refLowSeparator.CurrentValue, refHighSeparator.CurrentValue); double refSegmentLeftMean = refSegment.GetSegmentLeftMeanValue(SpectrumAlignmentConfig.NumOfPointsForAlignment); double refSegmentRightMean = refSegment.GetSegmentRightMeanValue(SpectrumAlignmentConfig.NumOfPointsForAlignment); /* retrieve segments on the left of selected one for later alignment */ alignLeftSide(ref aligningSpectrum, alignLeftSide(ref alignedSpectrum, refLowSeparator, refSegmentLeftMean); /* retrieve segments on the right of the selected one for later alignment */ alignRightSide(ref aligningSpectrum, alignRightSide(ref alignedSpectrum, refHighSeparator, refSegmentRightMean); } Loading @@ -418,7 +428,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts if (string.IsNullOrEmpty(exMsg)) { IsSpectrumAligned = true; Spectra.Add(aligningSpectrum); addSpectrum(alignedSpectrum); } else { Loading INAF.Apps.Uwp.SLabDataManager/Constants/Constants.cs +3 −3 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ { public class Constants { public static readonly string GREEN = "108D1C"; public static readonly string RED = "BB1717"; public static readonly string YELLOW = "D1AB43"; public static readonly string GREEN = "FF108D1C"; public static readonly string RED = "FFBB1717"; public static readonly string YELLOW = "FFD1AB43"; public static readonly string X_AXIS_MAJOR_STEP = "xaxismajorstep"; public static readonly string WAVELENGTH_MEASURE_UNITS = "wavelengthmeasureunits"; Loading INAF.Apps.Uwp.SLabDataManager/Converters/SpectrumSummaryConverters.cs +4 −3 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Extensions; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.ViewModels; Loading Loading @@ -99,13 +100,13 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters switch (status) { case FileReadingStatus.Ok: solidColorBrush = new SolidColorBrush().FromHexString(Constants.Constants.GREEN); solidColorBrush = Constants.Constants.GREEN.ToSolidColorBrush(); break; case FileReadingStatus.Warning: solidColorBrush = new SolidColorBrush().FromHexString(Constants.Constants.YELLOW); solidColorBrush = Constants.Constants.YELLOW.ToSolidColorBrush(); break; case FileReadingStatus.Error: solidColorBrush = new SolidColorBrush().FromHexString(Constants.Constants.RED); solidColorBrush = Constants.Constants.RED.ToSolidColorBrush(); break; } Loading INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +1 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions #endregion #endregion public static SolidColorBrush SolidColorBrushFromHexString(this string hexstring) public static SolidColorBrush ToSolidColorBrush(this string hexstring) { hexstring = hexstring.Replace("#", string.Empty); // from #RRGGBB string Loading INAF.Apps.Uwp.SLabDataManager/Models/Spectrum/SpectrumModelExtensions.cs +9 −3 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ using INAF.Libraries.NetStandard.SLabCommonModels.Models.Files; using Microsoft.Extensions.DependencyInjection; using System; using System.Threading.Tasks; using Windows.UI; using Windows.UI.Xaml; using Windows.UI.Xaml.Media; namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum Loading @@ -21,9 +21,15 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum { this.serviceProvider = serviceProvider; checkIsSavedOnCloudAsync(); //setColor(); } public SolidColorBrush Color { get; set; } private SolidColorBrush color; public SolidColorBrush Color { get { return color; } set { color = value; RaisePropertyChanged(nameof(Color)); } } private bool isSavedOnCloud; public bool IsSavedOnCloud Loading @@ -46,7 +52,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum public void setColor() { Color = new SolidColorBrush(Colors.Red); Color = (SolidColorBrush)Application.Current.Resources[Type.ToString().ToLowerInvariant()]; } public new object Clone() Loading Loading
INAF.Apps.Uwp.SLabDataManager/Charts/SpectraContainer.cs +21 −11 Original line number Diff line number Diff line Loading @@ -231,6 +231,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts #region spectra public async Task addOrUpdateSpectrumAsync(SpectrumModel spectrum) { tryGetSummaryOfType(spectrum.Type).init(spectrum); if (Spectra.Any(x => x.Type == spectrum.Type)) { /* if a spectrum of same type is already present, then replace it... */ Loading @@ -244,12 +246,10 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts else { /* ...otherwise, add it... */ Spectra.Add(spectrum); addSpectrum(spectrum); await setBoundariesAsync(); } tryGetSummaryOfType(spectrum.Type).init(spectrum); spectrum.PropertyChanged += Spectrum_PropertyChanged; } Loading @@ -266,6 +266,16 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts } #endregion private void addSpectrum(SpectrumModel spectrum) { spectrum.setColor(); Spectra.Add(spectrum); /* enable navigation to chart page */ IsAnySpectrumLoaded = true; isAnySpectrumLoaded = false;// trick to enable for the next added spectrum } #region summaries public void addOrUpdateSpectrumSummary(SpectrumSummaryModel spectrumSummary) { Loading Loading @@ -331,7 +341,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts #endregion #region alignment private SpectrumModel createAligningSpectrum() private SpectrumModel createAlignedSpectrum() { var aligningSpectrum = (SpectrumModel)tryGetSpectrumOfType(SpectrumType.Raw).Clone(); aligningSpectrum.setType(SpectrumType.Aligned); Loading @@ -344,14 +354,14 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts IsDialogRequired = false; DialogMessage = string.Empty; SpectrumModel aligningSpectrum = null; SpectrumModel alignedSpectrum = null; string exMsg = string.Empty; await Task.Run(() => { try { aligningSpectrum = createAligningSpectrum(); alignedSpectrum = createAlignedSpectrum(); /* try to retrieve the ref white max value for normalizing raw spectrum during alignment process */ double refWhiteMaxY = 1d; Loading Loading @@ -383,7 +393,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts /* normalize spectrum, if possible */ if (refWhiteSpectrum != null && refSpectrum != null) { multiplyByRef(ref aligningSpectrum, multiplyByRef(ref alignedSpectrum, refWhiteMaxY, refSpectrum); } Loading @@ -392,19 +402,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts var refLowSeparator = SpectrumAlignmentConfig.WavelengthSeparators.FirstOrDefault(x => x.CurrentValue >= SelectedRefBand.XMin && x.CurrentValue <= SelectedRefBand.XMax); var refHighSeparator = SpectrumAlignmentConfig.WavelengthSeparators.FirstOrDefault(x => x.CurrentValue > refLowSeparator.CurrentValue); var refSegment = aligningSpectrum.GetCenterSegmentElements(refLowSeparator.CurrentValue, refHighSeparator.CurrentValue); var refSegment = alignedSpectrum.GetCenterSegmentElements(refLowSeparator.CurrentValue, refHighSeparator.CurrentValue); double refSegmentLeftMean = refSegment.GetSegmentLeftMeanValue(SpectrumAlignmentConfig.NumOfPointsForAlignment); double refSegmentRightMean = refSegment.GetSegmentRightMeanValue(SpectrumAlignmentConfig.NumOfPointsForAlignment); /* retrieve segments on the left of selected one for later alignment */ alignLeftSide(ref aligningSpectrum, alignLeftSide(ref alignedSpectrum, refLowSeparator, refSegmentLeftMean); /* retrieve segments on the right of the selected one for later alignment */ alignRightSide(ref aligningSpectrum, alignRightSide(ref alignedSpectrum, refHighSeparator, refSegmentRightMean); } Loading @@ -418,7 +428,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts if (string.IsNullOrEmpty(exMsg)) { IsSpectrumAligned = true; Spectra.Add(aligningSpectrum); addSpectrum(alignedSpectrum); } else { Loading
INAF.Apps.Uwp.SLabDataManager/Constants/Constants.cs +3 −3 Original line number Diff line number Diff line Loading @@ -2,9 +2,9 @@ { public class Constants { public static readonly string GREEN = "108D1C"; public static readonly string RED = "BB1717"; public static readonly string YELLOW = "D1AB43"; public static readonly string GREEN = "FF108D1C"; public static readonly string RED = "FFBB1717"; public static readonly string YELLOW = "FFD1AB43"; public static readonly string X_AXIS_MAJOR_STEP = "xaxismajorstep"; public static readonly string WAVELENGTH_MEASURE_UNITS = "wavelengthmeasureunits"; Loading
INAF.Apps.Uwp.SLabDataManager/Converters/SpectrumSummaryConverters.cs +4 −3 Original line number Diff line number Diff line using INAF.Apps.Uwp.SLabDataManager.Charts; using INAF.Apps.Uwp.SLabDataManager.Extensions; using INAF.Apps.Uwp.SLabDataManager.Helpers; using INAF.Apps.Uwp.SLabDataManager.Helpers.UI; using INAF.Apps.Uwp.SLabDataManager.ViewModels; Loading Loading @@ -99,13 +100,13 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters switch (status) { case FileReadingStatus.Ok: solidColorBrush = new SolidColorBrush().FromHexString(Constants.Constants.GREEN); solidColorBrush = Constants.Constants.GREEN.ToSolidColorBrush(); break; case FileReadingStatus.Warning: solidColorBrush = new SolidColorBrush().FromHexString(Constants.Constants.YELLOW); solidColorBrush = Constants.Constants.YELLOW.ToSolidColorBrush(); break; case FileReadingStatus.Error: solidColorBrush = new SolidColorBrush().FromHexString(Constants.Constants.RED); solidColorBrush = Constants.Constants.RED.ToSolidColorBrush(); break; } Loading
INAF.Apps.Uwp.SLabDataManager/Extensions/Extensions.cs +1 −1 Original line number Diff line number Diff line Loading @@ -132,7 +132,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions #endregion #endregion public static SolidColorBrush SolidColorBrushFromHexString(this string hexstring) public static SolidColorBrush ToSolidColorBrush(this string hexstring) { hexstring = hexstring.Replace("#", string.Empty); // from #RRGGBB string Loading
INAF.Apps.Uwp.SLabDataManager/Models/Spectrum/SpectrumModelExtensions.cs +9 −3 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ using INAF.Libraries.NetStandard.SLabCommonModels.Models.Files; using Microsoft.Extensions.DependencyInjection; using System; using System.Threading.Tasks; using Windows.UI; using Windows.UI.Xaml; using Windows.UI.Xaml.Media; namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum Loading @@ -21,9 +21,15 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum { this.serviceProvider = serviceProvider; checkIsSavedOnCloudAsync(); //setColor(); } public SolidColorBrush Color { get; set; } private SolidColorBrush color; public SolidColorBrush Color { get { return color; } set { color = value; RaisePropertyChanged(nameof(Color)); } } private bool isSavedOnCloud; public bool IsSavedOnCloud Loading @@ -46,7 +52,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum public void setColor() { Color = new SolidColorBrush(Colors.Red); Color = (SolidColorBrush)Application.Current.Resources[Type.ToString().ToLowerInvariant()]; } public new object Clone() Loading