Commit 054a35b7 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

adding color management for spectra...

parent d5525a87
Loading
Loading
Loading
Loading
+21 −2
Original line number Diff line number Diff line
@@ -82,6 +82,13 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts
            set { SetProperty(ref isSpectrumContinuumRemoved, value); }
        }

        private bool isChartUpdateLayoutRequired;
        public bool IsChartUpdateLayoutRequired
        {
            get { return isChartUpdateLayoutRequired; }
            set { SetProperty(ref isChartUpdateLayoutRequired, value); }
        }

        private ObservableCollection<SpectrumModel> spectra;
        public ObservableCollection<SpectrumModel> Spectra
        {
@@ -150,12 +157,19 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts
            IsAlignedSpectrumSaved = false;
            IsAnySpectrumLoaded = false;
            IsSpectrumAligned = false;
            IsChartUpdateLayoutRequired = false;

            XAxisMajorStepValues = new List<double>(2);
            XAxisMajorStepValues.Add(Constants.Constants.X_AXIS_MAJOR_STEP_0DOT1);
            XAxisMajorStepValues.Add(Constants.Constants.X_AXIS_MAJOR_STEP_100);
        }

        public void raiseIsAnySpectrumLoaded()
        {
            IsAnySpectrumLoaded = true;
            isAnySpectrumLoaded = false;// trick to enable for the next added spectrum
        }

        public async Task removeSpectrumOfTypeAsync(SpectrumType type)
        {
            var requestedSpectrum = tryGetSpectrumOfType(type);
@@ -237,8 +251,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts
            Spectra.Add(spectrum);

            /* enable navigation to chart page */
            IsAnySpectrumLoaded = true;
            isAnySpectrumLoaded = false;// trick to enable for the next added spectrum
            raiseIsAnySpectrumLoaded();
        }

        #region summaries
@@ -324,6 +337,12 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts
            return (xMin, xMax, yMin, yMax);
        }

        public void raiseIsUpdateLayoutRequired()
        {
            IsChartUpdateLayoutRequired = true;
            isChartUpdateLayoutRequired = false;
        }

        private async Task setBoundariesAsync()
        {
            (double xMin, double xMax, double yMin, double yMax) result = await getSpectrumAxesBoundariesAsync();
+16 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ using INAF.Libraries.NetStandard.SLabCommonModels.Models.Files;
using INAF.Libraries.NetStandard.ScienceModels;
using Telerik.UI.Xaml.Controls.Chart;
using System;
using System.ComponentModel;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Extensions
{
@@ -147,6 +149,20 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions
        #endregion
        #endregion

        public static string GetDescription(this Enum enumValue)
        {
            var fieldInfo = enumValue.GetType().GetField(enumValue.ToString());

            var descriptionAttributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);

            return descriptionAttributes.Length > 0 ? descriptionAttributes[0].Description : enumValue.ToString();
        }

        public static string ToColorKey(this SpectrumType type)
        {
            return string.Join(string.Empty, "color", type.ToString().ToLowerInvariant());
        }

        public static SolidColorBrush ToSolidColorBrush(this string hexstring)
        {
            hexstring = hexstring.Replace("#", string.Empty);
+12 −1
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.Models;
using INAF.Apps.Uwp.SLabDataManager.ViewModels;
using INAF.Libraries.NetStandard.ScienceModels.Spectra;
using INAF.Libraries.Uwp.Logging;
using Microsoft.Toolkit.Mvvm.ComponentModel;
@@ -228,7 +229,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart
                return null;

            SpectrumModel clonedSpectrum = (SpectrumModel)workingItems.SpectraContainer.tryGetSpectrumOfType(SpectrumType.Aligned).Clone();
            clonedSpectrum.setType(SpectrumType.Aligned);
            clonedSpectrum.setType(SpectrumType.ContinuumRemoved);
            clonedSpectrum.updateTitle();
            return clonedSpectrum;
        }
@@ -273,6 +274,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart

            if (string.IsNullOrEmpty(exMsg))
            {
                Ioc.Default.GetRequiredService<ChartViewModel>().IsAddingPointsForContinuumRemovalAllowed = false;
                workingItems.SpectraContainer.IsSpectrumContinuumRemoved = true;
                workingItems.SpectraContainer.addSpectrum(continuumRemovedSpectrum);
            }
@@ -282,6 +284,15 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI.Chart
                raiseIsDialogRequired();
            }
        }

        public async Task removeContinnumProcedureAsync()
        {
            await removeContinuumAsync();

            await workingItems.SpectraContainer.updateBoundariesAsync();

            workingItems.SpectraContainer.raiseIsUpdateLayoutRequired();
        }
        #endregion
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -184,6 +184,7 @@
    <Compile Include="Charts\SpectrumAlignmentConfigModel.cs" />
    <Compile Include="Helpers\VisualTreeHelpers.cs" />
    <Compile Include="Models\RecentFilesContainer.cs" />
    <Compile Include="Models\Spectrum\SpectrumColorModel.cs" />
    <Compile Include="Models\Spectrum\SpectrumModelExtensions.cs" />
    <Compile Include="Models\SpectrumSummaryModel.cs" />
    <Compile Include="Models\Spectrum\SpectrumModelFactory.cs" />
+29 −0
Original line number Diff line number Diff line
using Microsoft.Toolkit.Mvvm.ComponentModel;
using Windows.UI.Xaml.Media;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Models.Spectrum
{
    public class SpectrumColorModel : ObservableObject
    {
        public SpectrumColorModel(SpectrumType type, string displayName, string colorKey, SolidColorBrush color)
        {
            DisplayName = displayName;
            ColorKey = colorKey;
            Color = color;
        }

        public string ColorKey { get; private set; }

        public string DisplayName { get; private set; }

        private SolidColorBrush color;
        public SolidColorBrush Color
        {
            get { return color; }
            set { SetProperty(ref color, value); }
        }

        public SpectrumType Type { get; set; }
    }
}
Loading