Commit 6ca0aa03 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

fixed chart colors

parent 11e30a9f
Loading
Loading
Loading
Loading
+21 −11
Original line number Diff line number Diff line
@@ -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... */
@@ -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;
        }

@@ -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)
        {
@@ -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);
@@ -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;
@@ -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);
                    }
@@ -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);
                }
@@ -418,7 +428,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts
            if (string.IsNullOrEmpty(exMsg))
            {
                IsSpectrumAligned = true;
                Spectra.Add(aligningSpectrum);
                addSpectrum(alignedSpectrum);
            }
            else
            {
+3 −3
Original line number Diff line number Diff line
@@ -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";
+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;
@@ -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;
            }

+1 −1
Original line number Diff line number Diff line
@@ -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
+9 −3
Original line number Diff line number Diff line
@@ -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
@@ -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
@@ -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