Commit 32524666 authored by Francesco Carraro's avatar Francesco Carraro
Browse files

refactored MainPage UI by creating a single UserControl for the reading file status

parent 443240a8
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -119,6 +119,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers
            set { SetProperty(ref isWorkInProgress, value); }
        }

        public SpectrumType LastOpenedSpectrumType { get; private set; }

        public string YAxisTitle { get; protected set; }

        protected ObservableCollection<SpectrumSummaryModel> summaries;
@@ -166,6 +168,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers
        #region spectra methods
        public async Task addOrUpdateSpectrumAsync(IChartSpectrumModel spectrum)
        {
            LastOpenedSpectrumType = spectrum.Type;

            if (isAnySummaryOfType(spectrum.Type))
                tryGetSummaryOfType(spectrum.Type).create(spectrum);

@@ -265,6 +269,8 @@ namespace INAF.Apps.Uwp.SLabDataManager.Charts.Containers

        public void init()
        {
            LastOpenedSpectrumType = SpectrumType.None;

            IsAnySpectrumLoaded = false;
            IsAnySpectrumLoadedOrRemoved = false;
            IsAnySpectrumRemoved = false;
+6 −6
Original line number Diff line number Diff line
@@ -32,7 +32,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
                    spectrumTypes.Add((string)parameter);
                }

                SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                SpectraContainer spectraContainer = Ioc.Default.GetService<SpectraContainer>();
                bool areSpectraFound = true;

                foreach (string spectrumType in spectrumTypes)
@@ -77,7 +77,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
                    spectrumTypes.Add((string)parameter);
                }

                SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                SpectraContainer spectraContainer = Ioc.Default.GetService<SpectraContainer>();
                bool isSpectrumFound = false;

                foreach (string spectrumType in spectrumTypes)
@@ -122,7 +122,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
                    spectrumTypes.Add((string)parameter);
                }

                SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                SpectraContainer spectraContainer = Ioc.Default.GetService<SpectraContainer>();
                bool isSpectrumFound = false;

                foreach (string spectrumType in spectrumTypes)
@@ -156,7 +156,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
            {
                var smoothingViewModel = Ioc.Default.GetRequiredService<SmoothingViewModel>();

                var spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                var spectraContainer = Ioc.Default.GetService<SpectraContainer>();

                var destSpectrumType = smoothingViewModel.getDestSpectrumType(smoothingViewModel.SelectedSpectrumType);

@@ -183,7 +183,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
                string _spectrumType = (string)parameter;
                SpectrumType spectrumType = _spectrumType.ToSpectrumType();

                SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                SpectraContainer spectraContainer = Ioc.Default.GetService<SpectraContainer>();
                IChartSpectrumModel spectrum = spectraContainer.tryGetSpectrumOfType(spectrumType);
                if (spectrum != null)
                    return spectrum.IsSavedOnCloud;
@@ -211,7 +211,7 @@ namespace INAF.Apps.Uwp.SLabDataManager.Converters
                string _spectrumType = (string)parameter;
                SpectrumType spectrumType = _spectrumType.ToSpectrumType();

                SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                SpectraContainer spectraContainer = Ioc.Default.GetService<SpectraContainer>();
                return spectraContainer.tryGetSpectrumOfType(spectrumType);
            }
            catch (Exception)
+0 −140
Original line number Diff line number Diff line
using CommunityToolkit.Mvvm.DependencyInjection;
using CommunityToolkit.Mvvm.Input;
using INAF.Apps.Uwp.SLabDataManager.Charts.Containers;
using INAF.Apps.Uwp.SLabDataManager.Extensions;
using INAF.Apps.Uwp.SLabDataManager.Helpers.UI;
using INAF.Apps.Uwp.SLabDataManager.Models;
using INAF.Apps.Uwp.SLabDataManager.ViewModels;
using INAF.Libraries.NetStandard.SLabCommonModels.Extensions;
using System;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Converters
{
    public sealed class SpectrumSummaryFilepathConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            try
            {
                string spectrumType = (string)parameter;

                SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;
                return XamlHelpers.GetSpectrumFilepath(spectraContainer, spectrumType);
            }
            catch (Exception)
            {
                return string.Empty;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class SpectrumSummaryFileReadingStatusToImageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            string spectrumType = (string)parameter;
            SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;

            BitmapImage bitmapImage = null;

            FileReadingStatus status = XamlHelpers.GetSpectrumFileReadingStatus(spectraContainer, spectrumType);
            switch (status)
            {
                case FileReadingStatus.Ok:
                    bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/icons/Ok.png"));
                    break;
                case FileReadingStatus.Warning:
                    bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/icons/Warning.png"));
                    break;
                case FileReadingStatus.Error:
                    bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/icons/Error.png"));
                    break;
            }

            return bitmapImage;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class SpectrumSummaryFileReadingStatusToMessageConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            string spectrumType = (string)parameter;
            SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;

            return XamlHelpers.GetSpectrumFileReadingText(spectraContainer, spectrumType);
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class SpectrumSummaryFileReadingStatusToSolidColorBrushConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            string spectrumType = (string)parameter;
            SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;

            SolidColorBrush solidColorBrush = null;

            FileReadingStatus status = XamlHelpers.GetSpectrumFileReadingStatus(spectraContainer, spectrumType);
            switch (status)
            {
                case FileReadingStatus.Ok:
                    solidColorBrush = Constants.Constants.GREEN.ToSolidColorBrush();
                    break;
                case FileReadingStatus.Warning:
                    solidColorBrush = Constants.Constants.YELLOW.ToSolidColorBrush();
                    break;
                case FileReadingStatus.Error:
                    solidColorBrush = Constants.Constants.RED.ToSolidColorBrush();
                    break;
            }

            return solidColorBrush;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class SpectrumSummaryFileReadingStatusToVisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            string spectrumType = (string)parameter;
            SpectraContainer spectraContainer = Ioc.Default.GetService<WorkingItemsModel>().SpectraContainer;

            Visibility visibility = Visibility.Collapsed;

            FileReadingStatus status = XamlHelpers.GetSpectrumFileReadingStatus(spectraContainer, spectrumType);
            switch (status)
            {
                case FileReadingStatus.None:
                    visibility = Visibility.Collapsed;
                    break;
                case FileReadingStatus.Ok:
                case FileReadingStatus.Warning:
                case FileReadingStatus.Error:
                    visibility = Visibility.Visible;
                    break;
            }

            return visibility;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            throw new NotImplementedException();
        }
    }

    public sealed class SpectrumSummarySaveFileConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
+7 −0
Original line number Diff line number Diff line
@@ -14,12 +14,14 @@ using INAF.Libraries.NetStandard.SLabCommonModels.Models.Spectrum.ProcessedSpect
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using Telerik.UI.Xaml.Controls.Chart;
using Windows.Data.Xml.Dom;
using Windows.UI;
using Windows.UI.Xaml.Media;
using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Extensions
@@ -597,6 +599,11 @@ namespace INAF.Apps.Uwp.SLabDataManager.Extensions
            return string.Join(string.Empty, "color", type.ToString().ToLowerInvariant());
        }

        public static string ToFileExt(this FileExt fileExt)
        {
            return string.Join(string.Empty, ".", fileExt.GetDescription());
        }

        public static SegmentFitSettingsModel ToFitSegmentModel(this Models.Fit.SegmentFitModel segment)
        {
            return new SegmentFitSettingsModel(segment.Id,
+88 −4
Original line number Diff line number Diff line
@@ -3,7 +3,14 @@ using INAF.Apps.Uwp.SLabDataManager.Charts.Containers;
using INAF.Apps.Uwp.SLabDataManager.Models;
using INAF.Apps.Uwp.SLabDataManager.Models.Chart;
using INAF.Libraries.NetStandard.SLabCommonModels.Extensions;
using System.Reflection.Metadata;
using System;
using Windows.UI.Xaml.Media.Imaging;
using static INAF.Apps.Uwp.SLabDataManager.Constants.Enums;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Media;
using INAF.Apps.Uwp.SLabDataManager.Extensions;
using static INAF.Libraries.NetStandard.SLabCommonModels.Enums.Enums;

namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI
{
@@ -36,21 +43,97 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI
            return string.Empty;
        }

        #region spectra
        public static IChartSpectrumModel GetSpectrumOfType(SpectraContainer spectraContainer, string type)
        {
            return spectraContainer.tryGetSpectrumOfType(type.ToSpectrumType());
        }

        public static SpectrumSummaryModel GetSpectrumSummaryOfType(SpectraContainer spectraContainer, string type)
        public static bool IsAnySpectrumOfType(SpectraContainer spectraContainer, string type)
        {
            return spectraContainer.tryGetSummaryOfType(type.ToSpectrumType());
            return spectraContainer.isAnySpectrumOfType(type.ToSpectrumType());
        }
        #endregion

        public static bool IsAnySpectrumOfType(SpectraContainer spectraContainer, string type)
        #region spectra summaries
        public static BitmapImage GetSpectrumSummaryFileReadingStatusImage(SpectraContainer spectraContainer, string spectrumType)
        {
            return spectraContainer.isAnySpectrumOfType(type.ToSpectrumType());
            BitmapImage bitmapImage = null;

            FileReadingStatus status = XamlHelpers.GetSpectrumFileReadingStatus(spectraContainer, spectrumType);
            switch (status)
            {
                case FileReadingStatus.Ok:
                    bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/icons/Ok.png"));
                    break;
                case FileReadingStatus.Warning:
                    bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/icons/Warning.png"));
                    break;
                case FileReadingStatus.Error:
                    bitmapImage = new BitmapImage(new Uri("ms-appx:///Assets/icons/Error.png"));
                    break;
            }

            return bitmapImage;
        }

        public static SolidColorBrush GetSpectrumSummaryFileReadingStatusSolidColorBrush(SpectraContainer spectraContainer, string spectrumType)
        {
            SolidColorBrush solidColorBrush = null;

            FileReadingStatus status = XamlHelpers.GetSpectrumFileReadingStatus(spectraContainer, spectrumType);
            switch (status)
            {
                case FileReadingStatus.Ok:
                    solidColorBrush = Constants.Constants.GREEN.ToSolidColorBrush();
                    break;
                case FileReadingStatus.Warning:
                    solidColorBrush = Constants.Constants.YELLOW.ToSolidColorBrush();
                    break;
                case FileReadingStatus.Error:
                    solidColorBrush = Constants.Constants.RED.ToSolidColorBrush();
                    break;
            }

            return solidColorBrush;
        }

        public static Visibility GetSpectrumSummaryFileReadingStatusVisibility(SpectraContainer spectraContainer, string spectrumType)
        {
            Visibility visibility = Visibility.Collapsed;

            FileReadingStatus status = XamlHelpers.GetSpectrumFileReadingStatus(spectraContainer, spectrumType);
            switch (status)
            {
                case FileReadingStatus.None:
                    visibility = Visibility.Collapsed;
                    break;
                case FileReadingStatus.Ok:
                case FileReadingStatus.Warning:
                case FileReadingStatus.Error:
                    visibility = Visibility.Visible;
                    break;
            }

            return visibility;
        }

        public static SpectrumSummaryModel GetSpectrumSummaryOfType(SpectraContainer spectraContainer, string spectrumType)
        {
            return spectraContainer.tryGetSummaryOfType(spectrumType.ToSpectrumType());
        }

        public static bool GetIsSpectrumSavedOnCloudConverter(SpectraContainer spectraContainer, string spectrumType)
        {
            IChartSpectrumModel spectrum = spectraContainer.tryGetSpectrumOfType(spectrumType.ToSpectrumType());
            if (spectrum != null)
                return spectrum.IsSavedOnCloud;
            else
                return false;
        }
        #endregion

        #region cloud permissions
        public static bool IsSaveOnCloudPermissionDenied()
        {
            var permissionHelper = Ioc.Default.GetRequiredService<PermissionsHelper>();
@@ -62,5 +145,6 @@ namespace INAF.Apps.Uwp.SLabDataManager.Helpers.UI
            var permissionHelper = Ioc.Default.GetRequiredService<PermissionsHelper>();
            return permissionHelper.isSaveOnCloudFromAppAllowed();
        }
        #endregion
    }
}
Loading